From 72d6409892d5b9df05f60351bb06072b7f9e1951 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Mon, 24 Apr 2023 12:40:59 +0200 Subject: Adding PupilFeatures file and PupilAnalysis folder. --- src/argaze.test/PupilAnalysis/WorkloadIndex.py | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/argaze.test/PupilAnalysis/WorkloadIndex.py (limited to 'src/argaze.test/PupilAnalysis/WorkloadIndex.py') diff --git a/src/argaze.test/PupilAnalysis/WorkloadIndex.py b/src/argaze.test/PupilAnalysis/WorkloadIndex.py new file mode 100644 index 0000000..98a1e45 --- /dev/null +++ b/src/argaze.test/PupilAnalysis/WorkloadIndex.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +import unittest +import math + +from argaze import PupilFeatures +from argaze.PupilAnalysis import WorkloadIndex + +class TestWorkloadIndexClass(unittest.TestCase): + """Test WorkloadIndex class.""" + + def test_analysis(self): + """Test WorkloadIndex analysis.""" + + ts_pupil_diameters = { + 0: PupilFeatures.PupilDiameter(1.), + 1: PupilFeatures.PupilDiameter(1.1), + 2: PupilFeatures.PupilDiameter(1.2), + 3: PupilFeatures.PupilDiameter(1.3), + 4: PupilFeatures.PupilDiameter(1.2), + 5: PupilFeatures.PupilDiameter(1.1), + 6: PupilFeatures.PupilDiameter(1.), + 7: PupilFeatures.PupilDiameter(0.9), + 8: PupilFeatures.PupilDiameter(0.8), + 9: PupilFeatures.PupilDiameter(0.7) + } + + pupil_diameter_analyzer = WorkloadIndex.PupilDiameterAnalyzer(reference=PupilFeatures.PupilDiameter(1.), period=3) + ts_analysis = pupil_diameter_analyzer.browse(PupilFeatures.TimeStampedPupilDiameters(ts_pupil_diameters)) + + # Check result size + self.assertEqual(len(ts_analysis), 3) + + # Check each workload index + ts_1, analysis_1 = ts_analysis.pop_first() + self.assertTrue(math.isclose(analysis_1, 0.1, abs_tol=1e-2)) + + ts_2, analysis_2 = ts_analysis.pop_first() + self.assertTrue(math.isclose(analysis_2, 0.2, abs_tol=1e-2)) + + ts_3, analysis_3 = ts_analysis.pop_first() + self.assertTrue(math.isclose(analysis_3, 0.1, abs_tol=1e-2)) + +if __name__ == '__main__': + + unittest.main() \ No newline at end of file -- cgit v1.1