AMMICO/ammico/test/test_faces.py
Inga Ulusoy 38498e3e10
use simpler image for testing emotion detector (#190)
* use simpler image for testing

* include age in faces test again

* fix typo

* try with newer tensorflow version

* remove testing for age again

* try with tensorflow newer versions only for breaking change in transformers

* force transformers to use pytorch
2024-05-31 11:43:26 +02:00

36 строки
1.1 KiB
Python

import ammico.faces as fc
import json
import pytest
def test_set_keys():
ed = fc.EmotionDetector({})
assert ed.subdict["face"] == "No"
assert ed.subdict["multiple_faces"] == "No"
assert ed.subdict["wears_mask"] == ["No"]
assert ed.subdict["emotion"] == [None]
with pytest.raises(ValueError):
fc.EmotionDetector({}, emotion_threshold=150)
with pytest.raises(ValueError):
fc.EmotionDetector({}, emotion_threshold=-50)
with pytest.raises(ValueError):
fc.EmotionDetector({}, race_threshold=150)
with pytest.raises(ValueError):
fc.EmotionDetector({}, race_threshold=-50)
def test_analyse_faces(get_path):
mydict = {
"filename": get_path + "pexels-pixabay-415829.jpg",
}
mydict.update(fc.EmotionDetector(mydict).analyse_image())
with open(get_path + "example_faces.json", "r") as file:
out_dict = json.load(file)
# delete the filename key
mydict.pop("filename", None)
# do not test for age, as this is not a reliable metric
mydict.pop("age", None)
for key in mydict.keys():
assert mydict[key] == out_dict[key]