diff options
author | Théo de la Hogue | 2023-05-31 11:57:32 +0200 |
---|---|---|
committer | Théo de la Hogue | 2023-05-31 11:57:32 +0200 |
commit | 516ed19d801f9fe27ad3b70e72e3b0f9c057efdf (patch) | |
tree | a6df917d60ebf4b7736f1a8bfdd5c68a744ef25e | |
parent | 9fd1954be304ec7691667b635f10eb61bd5e25d8 (diff) | |
download | argaze-516ed19d801f9fe27ad3b70e72e3b0f9c057efdf.zip argaze-516ed19d801f9fe27ad3b70e72e3b0f9c057efdf.tar.gz argaze-516ed19d801f9fe27ad3b70e72e3b0f9c057efdf.tar.bz2 argaze-516ed19d801f9fe27ad3b70e72e3b0f9c057efdf.tar.xz |
Testing and commenting transition matrix.
-rw-r--r-- | src/argaze.test/GazeAnalysis/TransitionMatrix.py | 51 | ||||
-rw-r--r-- | src/argaze/GazeAnalysis/TransitionMatrix.py | 8 |
2 files changed, 57 insertions, 2 deletions
diff --git a/src/argaze.test/GazeAnalysis/TransitionMatrix.py b/src/argaze.test/GazeAnalysis/TransitionMatrix.py new file mode 100644 index 0000000..14a34ce --- /dev/null +++ b/src/argaze.test/GazeAnalysis/TransitionMatrix.py @@ -0,0 +1,51 @@ +#!/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 GazeFeatures +from argaze.GazeAnalysis import TransitionMatrix +from argaze.utils import MiscFeatures + +GazeFeaturesTest = MiscFeatures.importFromTestPackage('GazeFeatures') + +class TestAOIScanPathAnalyzer(unittest.TestCase): + """Test AOIScanPathAnalyzer class.""" + + def test_analyse(self): + """Test analyse method.""" + + aoi_scan_path = GazeFeaturesTest.build_aoi_scan_path(['Foo', 'Bar', 'Shu'], ['Bar', 'Shu', 'Foo', 'Bar']) + + transition_matrix_analyser = TransitionMatrix.AOIScanPathAnalyzer() + transition_matrix_probabilities, transition_matrix_density = transition_matrix_analyser.analyze(aoi_scan_path) + + # Check aoi scan path + self.assertEqual(len(aoi_scan_path), 4) + + # Check transition matrix probabilities ([destination][departure]) + self.assertEqual(transition_matrix_probabilities['Foo']['Foo'], 0) + self.assertEqual(transition_matrix_probabilities['Bar']['Bar'], 0) + self.assertEqual(transition_matrix_probabilities['Shu']['Shu'], 0) + + self.assertEqual(transition_matrix_probabilities['Foo']['Bar'], 0) + self.assertEqual(transition_matrix_probabilities['Foo']['Shu'], 1) + + self.assertEqual(transition_matrix_probabilities['Bar']['Foo'], 1) + self.assertEqual(transition_matrix_probabilities['Bar']['Shu'], 0) + + self.assertEqual(transition_matrix_probabilities['Shu']['Foo'], 0) + self.assertEqual(transition_matrix_probabilities['Shu']['Bar'], 1) + + # Check transition matrix density + self.assertEqual(transition_matrix_density, 0.3333333333333333) + +if __name__ == '__main__': + + unittest.main()
\ No newline at end of file diff --git a/src/argaze/GazeAnalysis/TransitionMatrix.py b/src/argaze/GazeAnalysis/TransitionMatrix.py index cc5e6af..7294bc9 100644 --- a/src/argaze/GazeAnalysis/TransitionMatrix.py +++ b/src/argaze/GazeAnalysis/TransitionMatrix.py @@ -24,8 +24,12 @@ class AOIScanPathAnalyzer(GazeFeatures.AOIScanPathAnalyzer): pass - def analyze(self, aoi_scan_path: GazeFeatures.AOIScanPathType) -> Any: - """Analyze aoi scan path.""" + def analyze(self, aoi_scan_path: GazeFeatures.AOIScanPathType) -> Tuple[pandas.DataFrame, float]: + """Analyze aoi scan path. + + * **Returns:** + - transition matrix probabilities + - transition matrix density""" assert(len(aoi_scan_path) > 1) |