Changeset 169 for trunk/tests/color.py

Show
Ignore:
Timestamp:
03/17/09 05:27:31 (3 years ago)
Author:
lgs
Message:

Big refactor about how the colors scheme are created and used. See #29

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/tests/color.py

    r112 r169  
    1 # Copyright (c) 2007-2008 by Lorenzo Gil Sanchez <lorenzo.gil.sanchez@gmail.com> 
     1# Copyright(c) 2007-2008 by Lorenzo Gil Sanchez <lorenzo.gil.sanchez@gmail.com> 
     2#              2009 by Yaco S.L. <lgs@yaco.es> 
    23# 
    34# This file is part of PyCha. 
     
    1920 
    2021import pycha.color 
     22 
     23 
     24class SimpleColorScheme(pycha.color.ColorScheme): 
     25    pass 
     26 
    2127 
    2228class ColorTests(unittest.TestCase): 
     
    6369            self.assertAlmostEqual(c1[i], c2[i], precission) 
    6470 
    65     def test_generateColorscheme(self): 
    66         keys = ('k1', 'k2', 'k3', 'k4') 
    67         color = '#ff0000' 
    68         scheme = pycha.color.generateColorscheme(color, keys) 
    69  
    70         self._assertColors(scheme['k1'], (1, 0, 0), 3) 
    71         self._assertColors(scheme['k2'], (1, 0.125, 0.125), 3) 
    72         self._assertColors(scheme['k3'], (1, 0.250, 0.250), 3) 
    73         self._assertColors(scheme['k4'], (1, 0.375, 0.375), 3) 
    74  
    75     def test_defaultColorScheme(self): 
    76         keys = ('k1', 'k2', 'k3', 'k4') 
    77         scheme1 = pycha.color.defaultColorscheme(keys) 
    78         color = pycha.color.DEFAULT_COLOR 
    79         scheme2 = pycha.color.generateColorscheme(color, keys) 
    80         self.assertEqual(scheme1, scheme2) 
    81  
    82     def test_colorScheme(self): 
     71    def test_basicColors(self): 
    8372        colors = ('red', 'green', 'blue', 'grey', 'black', 'darkcyan') 
    8473        for color in colors: 
    85             self.assert_(pycha.color.colorSchemes.has_key(color)) 
     74            self.assert_(color in pycha.color.basicColors) 
     75 
     76    def test_ColorSchemeRegistry(self): 
     77        self.assertEquals(SimpleColorScheme, 
     78                          pycha.color.ColorScheme.getColorScheme('simple')) 
     79        self.assertEquals(None, 
     80                          pycha.color.ColorScheme.getColorScheme('foo')) 
     81 
     82    def test_GradientColorScheme(self): 
     83        keys = range(5) 
     84        scheme = pycha.color.GradientColorScheme(keys, "000000") 
     85        self._assertColors(scheme[0], (0.0, 0.0, 0.0), 3) 
     86        self._assertColors(scheme[1], (0.1, 0.1, 0.1), 3) 
     87        self._assertColors(scheme[2], (0.2, 0.2, 0.2), 3) 
     88        self._assertColors(scheme[3], (0.3, 0.3, 0.3), 3) 
     89        self._assertColors(scheme[4], (0.4, 0.4, 0.4), 3) 
    8690 
    8791    def test_autoLighting(self): 
     
    9498        keys = range(n) 
    9599        color = '#ff0000' 
    96         scheme = pycha.color.generateColorscheme(color, keys) 
     100        scheme = pycha.color.GradientColorScheme(keys, color) 
    97101 
    98102        # ensure that the last color is not completely white 
    99103        color = scheme[n-1] 
    100         self.assertAlmostEqual(color[0], 1.0, 4) # the red component was already 1 
     104 
     105        # the red component was already 1 
     106        self.assertAlmostEqual(color[0], 1.0, 4) 
    101107        self.assertNotAlmostEqual(color[1], 1.0, 4) 
    102108        self.assertNotAlmostEqual(color[2], 1.0, 4) 
     109 
    103110 
    104111def test_suite(): 
     
    107114    )) 
    108115 
     116 
    109117if __name__ == '__main__': 
    110118    unittest.main(defaultTest='test_suite')