AMMICO/ammico/test/test_colors.py
GwydionJon d98a5d3c0e
force_rounding_of_all_colors (#140)
* force_rounding_of_all_colors

* update test

* fixed bug in color analysis

* changed color rounding to seperate loop
2023-08-16 10:05:48 +02:00

78 строки
2.1 KiB
Python

from ammico.colors import ColorDetector
import pytest
from numpy import isclose
def test_init():
delta_e_method = "CIE 1976"
cd = ColorDetector({})
assert cd.delta_e_method == delta_e_method
delta_e_method = "CIE 1994"
cd = ColorDetector({}, delta_e_method)
assert cd.delta_e_method == delta_e_method
delta_e_method = "nonsense"
with pytest.raises(ValueError):
ColorDetector({}, delta_e_method)
def test_set_keys():
colors = {
"red": 0,
"green": 0,
"blue": 0,
"yellow": 0,
"cyan": 0,
"orange": 0,
"purple": 0,
"pink": 0,
"brown": 0,
"grey": 0,
"white": 0,
"black": 0,
}
cd = ColorDetector({})
for color_key, value in colors.items():
assert cd.subdict[color_key] == value
def test_rgb2name(get_path):
cd = ColorDetector({})
assert cd.rgb2name([0, 0, 0]) == "black"
assert cd.rgb2name([255, 255, 255]) == "white"
assert cd.rgb2name([205, 133, 63]) == "brown"
assert cd.rgb2name([255, 255, 255], merge_color=False) == "white"
assert cd.rgb2name([0, 0, 0], merge_color=False) == "black"
assert cd.rgb2name([205, 133, 63], merge_color=False) == "peru"
with pytest.raises(ValueError):
cd.rgb2name([1, 2])
with pytest.raises(ValueError):
cd.rgb2name([1, 2, 3, 4])
def test_analyze_images(get_path):
mydict_1 = {
"filename": get_path + "IMG_2809.png",
}
mydict_2 = {
"filename": get_path + "IMG_2809.png",
}
test1 = ColorDetector(mydict_1, delta_e_method="CIE 2000").analyse_image()
assert isclose(test1["red"], 0.0, atol=0.01)
assert isclose(test1["green"], 0.63, atol=0.01)
test2 = ColorDetector(mydict_2).analyse_image()
assert isclose(test2["red"], 0.0, atol=0.01)
assert isclose(test2["green"], 0.06, atol=0.01)
mydict_1["test"] = "test"
test3 = ColorDetector(mydict_1).analyse_image()
assert isclose(test3["red"], 0.0, atol=0.01)
assert isclose(test3["green"], 0.06, atol=0.01)
assert test3["test"] == "test"