From fa3ea8959af9a08b91efe6d26a5a553cbdcfd472 Mon Sep 17 00:00:00 2001 From: Madison May Date: Wed, 29 Oct 2014 17:51:50 -0400 Subject: [PATCH] Updated tests for image apis --- tests/data/fear.png | Bin 0 -> 21701 bytes tests/data/happy.png | Bin 0 -> 17862 bytes tests/remote/test_remote.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 tests/data/fear.png create mode 100644 tests/data/happy.png diff --git a/tests/data/fear.png b/tests/data/fear.png new file mode 100644 index 0000000000000000000000000000000000000000..fbbd38cf58fb64f854c14b0c8c704502f25935b0 GIT binary patch literal 21701 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
  • IKd!oM3YqDs7QGmENCqd_+~t{Os%BfJPV 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 literal 0 HcmV?d00001 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([