diff options
Diffstat (limited to 'src/argaze.test/PupilFeatures.py')
-rw-r--r-- | src/argaze.test/PupilFeatures.py | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/src/argaze.test/PupilFeatures.py b/src/argaze.test/PupilFeatures.py deleted file mode 100644 index ecc94cd..0000000 --- a/src/argaze.test/PupilFeatures.py +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/env python - -""" """ - -__author__ = "Théo de la Hogue" -__credits__ = [] -__copyright__ = "Copyright 2023, Ecole Nationale de l'Aviation Civile (ENAC)" -__license__ = "BSD" - -import unittest - -from argaze import PupilFeatures - -import numpy - -def random_pupil_diameters(size): - """ Generate random TimeStampedPupilDiameters for testing purpose. - Timestamps are current time. - PupilDiameters are random values. - """ - - import random - import time - - ts_pupil_diameters = PupilFeatures.TimeStampedPupilDiameters() - - for i in range(0, size): - - # Edit pupil diameter - random_pupil_diameter = PupilFeatures.PupilDiameter(random.random()) - - # Store pupil diameter - ts_pupil_diameters[time.time()] = random_pupil_diameter - - return ts_pupil_diameters - -class TestPupilDiameterClass(unittest.TestCase): - """Test PupilDiameter class.""" - - def test_new(self): - """Test PupilDiameter creation.""" - - # Check empty PupilDiameter - empty_pupil_diameter = PupilFeatures.PupilDiameter() - - self.assertEqual(empty_pupil_diameter.value, 0.) - self.assertEqual(empty_pupil_diameter.valid, False) - - # Check float PupilDiameter - float_pupil_diameter = PupilFeatures.PupilDiameter(1.23) - - self.assertEqual(float_pupil_diameter.value, 1.23) - self.assertEqual(float_pupil_diameter.valid, True) - - def test_properties(self): - """Test PupilDiameter properties cannot be modified after creation.""" - - pupil_diameter = PupilFeatures.PupilDiameter() - - # Check that pupil diameter value setting fails - with self.assertRaises(AttributeError): - - pupil_diameter.value = 123 - - self.assertNotEqual(pupil_diameter.value, 123) - self.assertEqual(pupil_diameter.value, 0.) - - def test___repr__(self): - """Test PupilDiameter string representation.""" - - # Check empty PupilDiameter representation - self.assertEqual(repr(PupilFeatures.PupilDiameter()), "{\"value\": 0.0}") - -class TestUnvalidPupilDiameterClass(unittest.TestCase): - """Test UnvalidPupilDiameter class.""" - - def test_new(self): - """Test UnvalidPupilDiameter creation.""" - - unvalid_pupil_diameter = PupilFeatures.UnvalidPupilDiameter() - - self.assertEqual(unvalid_pupil_diameter.value, 0.) - self.assertEqual(unvalid_pupil_diameter.valid, False) - - def test___repr__(self): - """Test UnvalidPupilDiameter string representation.""" - - self.assertEqual(repr(PupilFeatures.UnvalidPupilDiameter()), "{\"message\": null, \"value\": 0.0}") - -class TestTimeStampedPupilDiametersClass(unittest.TestCase): - """Test TimeStampedPupilDiameters class.""" - - def test___setitem__(self): - """Test __setitem__ method.""" - - ts_pupil_diameters = PupilFeatures.TimeStampedPupilDiameters() - ts_pupil_diameters[0] = PupilFeatures.PupilDiameter() - ts_pupil_diameters[1] = PupilFeatures.UnvalidPupilDiameter() - ts_pupil_diameters[2] = {"value": 1.23} - - # Check PupilDiameter is correctly stored and accessible as a PupilDiameter - self.assertIsInstance(ts_pupil_diameters[0], PupilFeatures.PupilDiameter) - self.assertEqual(ts_pupil_diameters[0].valid, False) - - # Check UnvalidPupilDiameter is correctly stored and accessible as a UnvalidPupilDiameter - self.assertIsInstance(ts_pupil_diameters[1], PupilFeatures.UnvalidPupilDiameter) - self.assertEqual(ts_pupil_diameters[1].valid, False) - - # Check dict with "value" and "precision" keys is correctly stored and accessible as a PupilDiameter - self.assertIsInstance(ts_pupil_diameters[2], PupilFeatures.PupilDiameter) - self.assertEqual(ts_pupil_diameters[2].valid, True) - - # Check that bad data type insertion fails - with self.assertRaises(AssertionError): - - ts_pupil_diameters[3] = "This string is not a pupil diameter value." - - # Check that dict with bad keys insertion fails - with self.assertRaises(AssertionError): - - ts_pupil_diameters[4] = {"bad_key": 0.} - - def test___repr__(self): - """Test inherited string representation.""" - - ts_pupil_diameters = PupilFeatures.TimeStampedPupilDiameters() - - self.assertEqual(repr(PupilFeatures.TimeStampedPupilDiameters()), "{}") - - ts_pupil_diameters[0] = PupilFeatures.PupilDiameter() - - self.assertEqual(repr(ts_pupil_diameters), "{\"0\": {\"value\": 0.0}}") - - ts_pupil_diameters[0] = PupilFeatures.UnvalidPupilDiameter() - - self.assertEqual(repr(ts_pupil_diameters), "{\"0\": {\"message\": null, \"value\": 0.0}}") - - def test_as_dataframe(self): - """Test inherited as_dataframe method.""" - - ts_pupil_diameters_dataframe = random_pupil_diameters(10).as_dataframe() - - # Check dataframe conversion - self.assertEqual(ts_pupil_diameters_dataframe.index.name, "timestamp") - self.assertEqual(ts_pupil_diameters_dataframe.index.size, 10) - - self.assertEqual(ts_pupil_diameters_dataframe.columns.size, 1) - self.assertEqual(ts_pupil_diameters_dataframe.columns[0], "value") - - self.assertEqual(ts_pupil_diameters_dataframe["value"].dtype, 'float64') - - # Check unvalid diameter conversion - ts_pupil_diameters = PupilFeatures.TimeStampedPupilDiameters() - ts_pupil_diameters[0] = PupilFeatures.UnvalidPupilDiameter() - ts_pupil_diameters_dataframe = ts_pupil_diameters.as_dataframe() - - self.assertEqual(ts_pupil_diameters_dataframe.index.name, "timestamp") - self.assertEqual(ts_pupil_diameters_dataframe.index.size, 1) - - self.assertEqual(ts_pupil_diameters_dataframe.columns.size, 1) - self.assertEqual(ts_pupil_diameters_dataframe.columns[0], "value") - - self.assertEqual(ts_pupil_diameters_dataframe["value"].dtype, 'float64') - -if __name__ == '__main__': - - unittest.main()
\ No newline at end of file |