def three_segments(self): # set up 3 equal segments return [ gradient.Segment(0, self.black, 1.0 / 3.0, self.grey_33), gradient.Segment(1.0 / 3.0, self.grey_33, 2.0 / 3.0, self.grey_66), gradient.Segment(2.0 / 3.0, self.grey_66, 1.0, self.white) ]
def testSaveSegment(self): s = gradient.Segment(0.0, [0.0, 0.1, 0.2, 0.3], 0.5, [0.4, 0.5, 0.6, 0.7]) sio = io.StringIO() s.save(sio) self.assertEqual( "0.000000 0.250000 0.500000 0.000000 0.100000 0.200000 0.300000 0.400000 0.500000 0.600000 0.700000 0 0\n", sio.getvalue()) s2 = gradient.Segment(0.5, [0.4, 0.5, 0.6, 0.7], 0.8, [0.01, 0.02, 0.03, 0.04]) self.assertEqual(True, s.left_of(s2)) self.assertEqual(False, s.left_of(s)) self.assertEqual(False, s2.left_of(s)) self.assertEqual(True, s2.right_of(s)) self.assertEqual(False, s.right_of(s)) self.assertEqual(False, s.right_of(s2)) s2.save(sio) self.assertEqual( """0.000000 0.250000 0.500000 0.000000 0.100000 0.200000 0.300000 0.400000 0.500000 0.600000 0.700000 0 0 0.500000 0.650000 0.800000 0.400000 0.500000 0.600000 0.700000 0.010000 0.020000 0.030000 0.040000 0 0 """, sio.getvalue()) sio = io.StringIO() s.save(sio) s2.save(sio, True) self.assertEqual( """0.000000 0.250000 0.500000 0.000000 0.100000 0.200000 0.300000 0.400000 0.500000 0.600000 0.700000 0 0 +0.650000 0.800000 0.010000 0.020000 0.030000 0.040000 0 0 """, sio.getvalue())
def create_rgb_gradient(self): # make a simple gradient which goes from R -> G -> B g = gradient.Gradient() g.segments = [ gradient.Segment(0.0, self.red, 0.333, self.red), gradient.Segment(0.333, self.green, 0.667, self.green), gradient.Segment(0.667, self.blue, 1.0, self.blue) ] return g
def testLinearSegment(self): seg = gradient.Segment(0.0, self.red, 0.333, self.red) self.assertEqual(seg.get_linear_factor(0.0, 0.5), 0.0) self.assertEqual(seg.get_linear_factor(0.5, 0.5), 0.5) self.assertEqual(seg.get_linear_factor(1.0, 0.5), 1.0) # middle close to left end self.assertEqual(seg.get_linear_factor(0.0, 0.0), 0.0) self.assertEqual(seg.get_linear_factor(0.5, 0.0), 0.75) self.assertEqual(seg.get_linear_factor(1.0, 0.0), 1.0) # middle close to right end self.assertEqual(seg.get_linear_factor(0.0, 1.0), 0.0) self.assertEqual(seg.get_linear_factor(0.5, 1.0), 0.25) self.assertEqual(seg.get_linear_factor(1.0, 1.0), 0.5)
def testVeryShortSegment(self): seg = gradient.Segment(0.0, self.black, 0.0, self.white) self.assertEqual(seg.get_color_at(0.0), self.mid_grey) self.assertEqual(seg.get_color_at(0.5), self.mid_grey) self.assertEqual(seg.get_color_at(1.0), self.mid_grey)