From e35e90d161ffb9202459631a0049448cde905b3c Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Wed, 31 May 2023 15:35:28 +0200 Subject: Testing all gaze analysis algorithm. Unifying paper citation. --- src/argaze.test/GazeAnalysis/NGram.py | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/argaze.test/GazeAnalysis/NGram.py (limited to 'src/argaze.test/GazeAnalysis/NGram.py') 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 -- cgit v1.1