From 15b7265a00d405d6115f45ba0b1f26019ef1a52b Mon Sep 17 00:00:00 2001 From: Paul Pogonyshev Date: Tue, 12 May 2009 00:47:51 +0300 Subject: 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. --- tests/test_color.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tests') 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)) -- cgit v1.2.1