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)
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)])
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)
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))
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)
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)
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))
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))
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)
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)
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)
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)
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, [])
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)
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, [])
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))
def test_toString(self): palette = fractal.Palette() self.assertEqual("palette string", str(palette))
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)
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))
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))
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)