summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaul Pogonyshev <pogonyshev@gmx.net>2009-05-12 00:47:51 +0300
committerPaul Pogonyshev <pogonyshev@gmx.net>2009-05-15 22:49:56 +0300
commit15b7265a00d405d6115f45ba0b1f26019ef1a52b (patch)
tree647ba8393bd2279b63099171398a5d45a2e9bc51 /tests
parent029b2905baec78b370e76e1b2340dc2ee2ddaea1 (diff)
downloadpygtk-15b7265a00d405d6115f45ba0b1f26019ef1a52b.tar.gz
Add floating-point support to gtk.gdk.Color
Make constructor accept floating-point arguments. Add 'red_float', 'green_float' and 'blue_float' read-write properties. Test and document new features. Part of bug #546019.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_color.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_color.py b/tests/test_color.py
index 72ad6693..d8484ae3 100644
--- a/tests/test_color.py
+++ b/tests/test_color.py
@@ -15,6 +15,14 @@ class Tests(unittest.TestCase):
self.assertEqual(c.green, 2)
self.assertEqual(c.blue, 3)
+ c = gtk.gdk.Color(1.0, 0.7, 0.2)
+ self.assertAlmostEqual(c.red_float, 1.0, 4)
+ self.assertAlmostEqual(c.green_float, 0.7, 4)
+ self.assertAlmostEqual(c.blue_float, 0.2, 4)
+
+ # Mixing integers and floats is not allowed.
+ self.assertRaises(TypeError, lambda: gtk.gdk.Color(0, 0.5))
+
c = gtk.gdk.Color(pixel=0xffff)
self.assertEqual(c.pixel, 0xffff)
@@ -36,6 +44,19 @@ class Tests(unittest.TestCase):
self.assertRaises(TypeError, lambda: gtk.gdk.Color([]))
+ def test_float_attribute(self):
+ c = gtk.gdk.Color(0, 10000, 65535)
+ self.assertAlmostEqual(c.red_float, 0.0)
+ self.assertAlmostEqual(c.green_float, 10000.0 / 65535.0)
+ self.assertAlmostEqual(c.blue_float, 1.0)
+
+ c.red_float = 0.57
+ self.assert_(c.red == int(0.57 * 65535) or c.red == int(0.57 * 65535) + 1)
+ self.assertAlmostEqual(c.red_float, 0.57, 4)
+
+ c.green = 12345
+ self.assertAlmostEqual(c.green_float, 12345.0 / 65535.0)
+
def test_equal(self):
self.assertEqual(gtk.gdk.Color(0, 0, 0), gtk.gdk.Color(0, 0, 0))
self.assertEqual(gtk.gdk.Color(100, 200, 300), gtk.gdk.Color(100, 200, 300))