aboutsummaryrefslogtreecommitdiff
path: root/src/argaze.test/GazeAnalysis/NGram.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/argaze.test/GazeAnalysis/NGram.py')
-rw-r--r--src/argaze.test/GazeAnalysis/NGram.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/argaze.test/GazeAnalysis/NGram.py b/src/argaze.test/GazeAnalysis/NGram.py
new file mode 100644
index 0000000..9608b90
--- /dev/null
+++ b/src/argaze.test/GazeAnalysis/NGram.py
@@ -0,0 +1,57 @@
+#!/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 NGram
+from argaze.utils import MiscFeatures
+
+GazeFeaturesTest = MiscFeatures.importFromTestPackage('GazeFeatures')
+
+class TestAOIScanPathAnalyzer(unittest.TestCase):
+ """Test AOIScanPathAnalyzer class."""
+
+ def test_analyze(self):
+ """Test analyze method."""
+
+ ngram_analyzer = NGram.AOIScanPathAnalyzer()
+
+ aoi_scan_path = GazeFeaturesTest.build_aoi_scan_path(['Foo', 'Bar', 'Shu'], ['Bar', 'Shu', 'Foo', 'Bar', 'Shu', 'Foo'])
+
+ # Check aoi scan path
+ self.assertEqual(len(aoi_scan_path), 6)
+
+ ngram_analysis = ngram_analyzer.analyze(aoi_scan_path, 2)
+
+ # Check 2-gram analysis
+ self.assertEqual(len(ngram_analysis), 3)
+ self.assertEqual(ngram_analysis[('Bar', 'Shu')], 2)
+ self.assertEqual(ngram_analysis[('Shu', 'Foo')], 2)
+ self.assertEqual(ngram_analysis[('Foo', 'Bar')], 1)
+
+ ngram_analysis = ngram_analyzer.analyze(aoi_scan_path, 3)
+
+ # Check 3-gram analysis
+ self.assertEqual(len(ngram_analysis), 3)
+ self.assertEqual(ngram_analysis[('Bar', 'Shu', 'Foo')], 2)
+ self.assertEqual(ngram_analysis[('Shu', 'Foo', 'Bar')], 1)
+ self.assertEqual(ngram_analysis[('Foo', 'Bar', 'Shu')], 1)
+
+ ngram_analysis = ngram_analyzer.analyze(aoi_scan_path, 4)
+
+ # Check 4-gram analysis
+ self.assertEqual(len(ngram_analysis), 3)
+ self.assertEqual(ngram_analysis[('Bar', 'Shu', 'Foo', 'Bar')], 1)
+ self.assertEqual(ngram_analysis[('Shu', 'Foo', 'Bar', 'Shu')], 1)
+ self.assertEqual(ngram_analysis[('Foo', 'Bar', 'Shu', 'Foo')], 1)
+
+if __name__ == '__main__':
+
+ unittest.main() \ No newline at end of file