예제 #1
0
    def test_opacity_at_when_empty(self):
        palette = fractal.Palette()

        palette.remove_opacity(0)
        palette.remove_opacity(1)

        self.assertEqual(palette.opacity_at(0.5), 1)
예제 #2
0
    def test_remove_opacity_valid(self):
        palette = fractal.Palette()

        # Check if we can remove valid opacity
        result = palette.remove_opacity(0)
        self.assertEqual(result, True)
        self.assertEqual(len(palette.get_opacities()), 1)
        self.assertEqual(palette.get_opacities(), [(1, 1)])
예제 #3
0
    def test_palette_memory_leak(self):
        layer = fractal.HistogramLayer()
        new_palette = fractal.Palette()

        layer.palette = new_palette
        layer_palette = layer.palette

        self.assertEqual(new_palette, layer_palette)
예제 #4
0
    def test_color_at_when_empty(self):
        palette = fractal.Palette()

        palette.remove_color(0)
        palette.remove_color(1)
        palette.interior_color = (10, 11, 12)

        self.assertEqual(palette.color_at(0.5), (10, 11, 12))
예제 #5
0
    def test_add_opacity_invalid_opacity(self):
        palette = fractal.Palette()

        # Test with negative opacity
        self.assertEqual(palette.add_opacity(-0.0001, 0.5), False)
        # Test with too high a opacity
        self.assertEqual(palette.add_opacity(1.0001, 0.5), False)
        # Test with too high a non-numerical value
        self.assertRaises(AttributeError, palette.add_opacity, "o", 0.5)
예제 #6
0
    def test_add_color_invalid_color(self):
        palette = fractal.Palette()

        # Test with negative color
        self.assertEqual(palette.add_color((-1, 0, 0), 0.5), False)
        # Test with too high a color color
        self.assertEqual(palette.add_color((0, 256, 0), 0.5), False)
        # Test with a float value
        self.assertRaises(AttributeError, palette.add_color, (0, 0, 0.5), 0.5)
예제 #7
0
    def test_get_colors(self):
        palette = fractal.Palette()
        palette.add_color((100, 100, 100), 0.5)

        color_list = palette.get_colors()

        self.assertEqual(len(color_list), 3)
        self.assertEqual(color_list[0], (0, 0, 0, 0))
        self.assertEqual(color_list[1], (100, 100, 100, 0.5))
        self.assertEqual(color_list[2], (255, 255, 255, 1))
예제 #8
0
    def test_get_opacities(self):
        palette = fractal.Palette()
        palette.add_opacity(0.2, 0.5)

        opacity_list = palette.get_opacities()

        self.assertEqual(len(opacity_list), 3)
        self.assertEqual(opacity_list[0], (1, 0))
        self.assertEqual(opacity_list[1], (0.2, 0.5))
        self.assertEqual(opacity_list[2], (1, 1))
예제 #9
0
    def test_opacity_at_valid(self):
        palette = fractal.Palette()

        # Test only a single opacity
        palette.remove_opacity(0)
        self.assertEqual(palette.opacity_at(0.5), 1)

        # Test basic interpolation
        palette.add_opacity(0, 0)
        self.assertEqual(palette.opacity_at(0.5), 0.5)
예제 #10
0
    def test_add_opacity_invalid_location(self):
        palette = fractal.Palette()

        # Test for duplicate location
        result = palette.add_opacity(0, 0.0)
        self.assertEqual(result, False)

        # Test for above and below valid location
        result = palette.add_opacity(0, -0.001)
        self.assertEqual(result, False)
        result = palette.add_opacity(0, 1.001)
        self.assertEqual(result, False)
예제 #11
0
    def test_remove_opacity_invalid_location(self):
        palette = fractal.Palette()

        # Test for invalid location within valid location range
        result = palette.remove_opacity(0.5)
        self.assertEqual(result, False)

        # Test for above and below valid location range
        result = palette.remove_opacity(-0.001)
        self.assertEqual(result, False)
        result = palette.remove_opacity(1.001)
        self.assertEqual(result, False)
예제 #12
0
    def test_palette(self):
        layer = fractal.HistogramLayer()

        # Ensure that the getter points to the real one
        pal = layer.palette
        pal.add_color((1, 1, 1), 0.5)
        self.assertEqual(len(layer.palette.get_colors()), 3)

        # Ensure the setter works
        newPal = fractal.Palette()
        newPal.remove_color(0)
        layer.palette = newPal
        self.assertEqual(len(layer.palette.get_colors()), 1)
예제 #13
0
    def test_palette_three_points(self):
        palette = fractal.Palette()
        palette.add_color((255, 255, 255), 0.5)

        error_pixels = []
        i = 0.25
        while i <= 75:
            c = palette.color_at(i)
            if c[0] < 0 or c[0] > 255 or c[1] < 0 or c[1] > 255 or c[
                    2] < 0 or c[2] > 255:
                error_pixels.append((i, c))

            i += 0.01

        self.assertEqual(error_pixels, [])
예제 #14
0
    def test_palette_white_not_at_edge(self):
        palette = fractal.Palette()
        palette.remove_color(1)
        palette.add_color((255, 255, 255), 0.75)

        error_pixels = 0
        i = 0.75
        while i <= 1.0:
            color = palette.color_at(i)
            if color != (255, 255, 255):
                error_pixels += 1

            i += 0.01

        self.assertEqual(error_pixels, 0)
예제 #15
0
    def test_palette_black_not_at_edge(self):
        palette = fractal.Palette()
        palette.remove_color(0)
        palette.add_color((0, 0, 0), 0.25)

        error_pixels = []
        i = 0
        while i <= 0.25:
            color = palette.color_at(0.01)
            if color != (0, 0, 0):
                error_pixels.append(i)

            i += 0.01

        self.assertEqual(error_pixels, [])
예제 #16
0
    def test_color_at_valid(self):
        palette = fractal.Palette()

        # Test only a single color
        palette.remove_color(0)
        self.assertEqual(palette.color_at(0), (255, 255, 255))

        palette.add_color((0, 0, 0), 0)

        self.assertEqual(palette.color_at(0.5),
                         ((int)(255 / 2), (int)(255 / 2), (int)(255 / 2)))
        self.assertEqual(palette.color_at(1), (255, 255, 255))

        palette.add_color((0, 0, 0), 0.9)
        self.assertEqual(palette.color_at(0.5), (0, 0, 0))
예제 #17
0
 def test_toString(self):
     palette = fractal.Palette()
     self.assertEqual("palette string", str(palette))
예제 #18
0
    def test_add_opacity_valid(self):
        palette = fractal.Palette()

        result = palette.add_opacity(0.5, 0.0009) and palette.add_opacity(
            0.5, 0.00091)
        self.assertEqual(result, True)
예제 #19
0
    def test_remove_color_valid(self):
        palette = fractal.Palette()

        result = palette.remove_color(0)
        self.assertEqual(result, True)
        self.assertEqual(palette.color_at(0.5), (255, 255, 255))
예제 #20
0
    def test_interior_color_valid(self):
        palette = fractal.Palette()
        self.assertEqual(palette.interior_color, (255, 255, 255))

        palette.interior_color = (10, 11, 12)
        self.assertEqual(palette.interior_color, (10, 11, 12))
예제 #21
0
    def test_add_color_valid(self):
        palette = fractal.Palette()

        result = palette.add_color((0, 0, 0), 0.0009) and palette.add_color(
            (0, 0, 0), 0.00091)
        self.assertEqual(result, True)