- Timestamp:
- 03/20/08 13:24:03 (4 years ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
src/color.py (modified) (1 diff)
-
tests/color.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/color.py
r45 r78 49 49 clamp(0.0, 1.0, b + amount)) 50 50 51 def generateColorscheme(masterColor, keys , light=0.098):51 def generateColorscheme(masterColor, keys): 52 52 """Generates a dictionary where the keys match the keys argument and 53 53 the values are colors derivated from the masterColor. 54 54 55 Each color is a lighter version of masterColor separated by a difference56 given by the light argument.55 Each color is a lighter version of masterColor. This difference is 56 computed based on the number of keys. 57 57 58 58 The masterColor is given in a hex string format. 59 59 """ 60 60 r, g, b = hex2rgb(masterColor) 61 light = 1.0 / (len(keys)*2) 61 62 return dict([(key, lighten(r, g, b, light * i)) 62 63 for i, key in enumerate(keys)]) -
trunk/tests/color.py
r44 r78 68 68 scheme = pycha.color.generateColorscheme(color, keys) 69 69 70 71 70 self._assertColors(scheme['k1'], (1, 0, 0), 3) 72 self._assertColors(scheme['k2'], (1, 0.098, 0.098), 3) 73 self._assertColors(scheme['k3'], (1, 0.196, 0.196), 3) 74 self._assertColors(scheme['k4'], (1, 0.294, 0.294), 3) 75 76 scheme = pycha.color.generateColorscheme(color, keys, 0.1) 77 self._assertColors(scheme['k1'], (1, 0, 0), 1) 78 self._assertColors(scheme['k2'], (1, 0.1, 0.1), 1) 79 self._assertColors(scheme['k3'], (1, 0.2, 0.2), 1) 80 self._assertColors(scheme['k4'], (1, 0.3, 0.3), 1) 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) 81 74 82 75 def test_defaultColorScheme(self): … … 92 85 self.assert_(pycha.color.colorSchemes.has_key(color)) 93 86 87 def test_autoLighting(self): 88 """This test ensures that the colors don't get to white too fast. 89 90 See bug #8. 91 """ 92 # we have a lot of keys 93 n = 50 94 keys = range(n) 95 color = '#ff0000' 96 scheme = pycha.color.generateColorscheme(color, keys) 97 98 # ensure that the last color is not completely white 99 color = scheme[n-1] 100 self.assertAlmostEqual(color[0], 1.0, 4) # the red component was already 1 101 self.assertNotAlmostEqual(color[1], 1.0, 4) 102 self.assertNotAlmostEqual(color[2], 1.0, 4) 103 94 104 def test_suite(): 95 105 return unittest.TestSuite((
