diff --git a/tests/data/fear.png b/tests/data/fear.png new file mode 100644 index 0000000..fbbd38c Binary files /dev/null and b/tests/data/fear.png differ diff --git a/tests/data/happy.png b/tests/data/happy.png new file mode 100644 index 0000000..c1d522c Binary files /dev/null and b/tests/data/happy.png differ diff --git a/tests/remote/test_remote.py b/tests/remote/test_remote.py index c9f18bb..8b46096 100644 --- a/tests/remote/test_remote.py +++ b/tests/remote/test_remote.py @@ -1,12 +1,21 @@ import unittest +import os import numpy as np +import skimage.io from indicoio import political, sentiment, fer, facial_features, language, image_features +DIR = os.path.dirname(os.path.realpath(__file__)) + class FullAPIRun(unittest.TestCase): + def load_image(self, relpath, as_grey=False): + image_path = os.path.normpath(os.path.join(DIR, relpath)) + image = skimage.io.imread(image_path, as_grey=True).tolist() + return image + def test_political(self): political_set = set(['Libertarian', 'Liberal', 'Conservative', 'Green']) test_string = "Guns don't kill people, people kill people." @@ -41,6 +50,18 @@ class FullAPIRun(unittest.TestCase): self.assertTrue(isinstance(response, dict)) self.assertEqual(fer_set, set(response.keys())) + def test_happy_fer(self): + test_face = self.load_image("../data/happy.png", as_grey=True) + response = fer(test_face) + self.assertTrue(isinstance(response, dict)) + self.assertTrue(response['Happy'] > 0.5) + + def test_fear_fer(self): + test_face = self.load_image("../data/fear.png", as_grey=True) + response = fer(test_face) + self.assertTrue(isinstance(response, dict)) + self.assertTrue(response['Fear'] > 0.25) + def test_bad_fer(self): fer_set = set(['Angry', 'Sad', 'Neutral', 'Surprise', 'Fear', 'Happy']) test_face = np.random.rand(56,56).tolist() @@ -55,6 +76,9 @@ class FullAPIRun(unittest.TestCase): self.assertTrue(isinstance(response, list)) self.assertEqual(len(response), 48) + self.assertTrue(np.asarray(response).max() > 0.1) + self.assertTrue(np.asarray(response).min() < 0.9) + self.assertTrue(np.ptp(np.asarray(response)) > 0.5) def test_good_image_features_greyscale(self): test_image = np.random.rand(64, 64).tolist() @@ -62,6 +86,8 @@ class FullAPIRun(unittest.TestCase): self.assertTrue(isinstance(response, list)) self.assertEqual(len(response), 2048) + self.assertTrue(np.asarray(response).max() > 0.1) + self.assertTrue(np.asarray(response).min() < 0.9) def test_good_image_features_rgb(self): test_image = np.random.rand(64, 64, 3).tolist() @@ -69,6 +95,9 @@ class FullAPIRun(unittest.TestCase): self.assertTrue(isinstance(response, list)) self.assertEqual(len(response), 2048) + self.assertTrue(np.asarray(response).max() > 0.1) + self.assertTrue(np.asarray(response).min() < 0.9) + self.assertTrue(np.ptp(np.asarray(response)) > 0.5) def test_language(self): language_set = set([