예제 #1
0
 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)
     ]
예제 #2
0
    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())
예제 #3
0
 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
예제 #4
0
    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)
예제 #5
0
 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)