зеркало из
https://github.com/ssciwr/AMMICO.git
synced 2025-10-29 13:06:04 +02:00
* force_rounding_of_all_colors * update test * fixed bug in color analysis * changed color rounding to seperate loop
78 строки
2.1 KiB
Python
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"
|