diff options
author | Théo de la Hogue | 2023-05-10 12:00:23 +0200 |
---|---|---|
committer | Théo de la Hogue | 2023-05-10 12:00:23 +0200 |
commit | 44bf76527e59dafc46e2075605454bf23523a666 (patch) | |
tree | e07dbf8b305bb24e9c9e3ab6701c87128a7c618b | |
parent | 6a77674c4c7b0589ffa7b13edbbde41c371b3d4f (diff) | |
download | argaze-44bf76527e59dafc46e2075605454bf23523a666.zip argaze-44bf76527e59dafc46e2075605454bf23523a666.tar.gz argaze-44bf76527e59dafc46e2075605454bf23523a666.tar.bz2 argaze-44bf76527e59dafc46e2075605454bf23523a666.tar.xz |
Adding VisualScanStep and VisualScanPath tests.
-rw-r--r-- | src/argaze.test/GazeFeatures.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/argaze.test/GazeFeatures.py b/src/argaze.test/GazeFeatures.py index cbe6056..dd3c49b 100644 --- a/src/argaze.test/GazeFeatures.py +++ b/src/argaze.test/GazeFeatures.py @@ -209,6 +209,96 @@ class TestTimeStampedGazePositionsClass(unittest.TestCase): self.assertEqual(ts_gaze_positions_dataframe["value"].dtype, 'object') self.assertEqual(ts_gaze_positions_dataframe["precision"].dtype, 'O') # Python object type +class TestVisualScanStepClass(unittest.TestCase): + """Test VisualScanStep class.""" + + def test_new(self): + """Test VisualScanStep creation.""" + + movements = GazeFeatures.TimeStampedGazeMovements() + + fixation = GazeFeatures.Fixation(random_gaze_positions(10)) + ts, _ = fixation.positions.first + movements[ts] = fixation + + saccade = GazeFeatures.Saccade(random_gaze_positions(2)) + ts, _ = saccade.positions.first + movements[ts] = saccade + + visual_scan_step = GazeFeatures.VisualScanStep(movements, 'Test') + + # Check visual scan step creation + self.assertEqual(len(visual_scan_step.movements), 2) + self.assertEqual(visual_scan_step.aoi, 'Test') + self.assertEqual(visual_scan_step.first_fixation, fixation) + self.assertEqual(visual_scan_step.last_saccade, saccade) + self.assertGreater(visual_scan_step.duration, 0) + + def test_error(self): + """Test VisualScanStep creation error.""" + + movements = GazeFeatures.TimeStampedGazeMovements() + + saccade = GazeFeatures.Saccade(random_gaze_positions(2)) + ts, _ = saccade.positions.first + movements[ts] = saccade + + fixation = GazeFeatures.Fixation(random_gaze_positions(10)) + ts, _ = fixation.positions.first + movements[ts] = fixation + + # Check that visual scan step creation fail + with self.assertRaises(GazeFeatures.VisualScanStepError): + + visual_scan_step = GazeFeatures.VisualScanStep(movements, 'Test') + +class TestVisualScanPathClass(unittest.TestCase): + """Test VisualScanPath class.""" + + def test_new(self): + """Test VisualScanPath creation.""" + + # Check visual scan step creation + visual_scan_path = GazeFeatures.VisualScanPath() + + self.assertEqual(len(visual_scan_path), 0) + + def test_append(self): + """Test VisualScanPath append methods.""" + + visual_scan_path = GazeFeatures.VisualScanPath() + + # Append fixation on A aoi + fixation = GazeFeatures.Fixation(random_gaze_positions(10)) + ts, _ = fixation.positions.first + + new_step = visual_scan_path.append_fixation(ts, fixation, 'A') + + # Check that no visual scan step have been created yet + self.assertEqual(len(visual_scan_path), 0) + self.assertEqual(new_step, None) + + # Append saccade + saccade = GazeFeatures.Saccade(random_gaze_positions(2)) + ts, _ = saccade.positions.first + + new_step = visual_scan_path.append_saccade(ts, saccade) + + # Check that no visual scan step have been created yet + self.assertEqual(len(visual_scan_path), 0) + self.assertEqual(new_step, None) + + # Append fixation on B aoi + fixation = GazeFeatures.Fixation(random_gaze_positions(10)) + ts, _ = fixation.positions.first + + new_step = visual_scan_path.append_fixation(ts, fixation, 'B') + + # Check a new visual scan step have been created + self.assertEqual(len(visual_scan_path), 1) + self.assertEqual(len(new_step.movements), 2) + self.assertEqual(new_step.aoi, 'A') + if __name__ == '__main__': unittest.main()
\ No newline at end of file |