Example #1
0
 def setUp(self):
     self.phraseVector = {
         'project': 1,
         'cluster': 1,
         'highdimensional': 1,
         'streams': 1
     }
     self.phraseTextAndDimensionMap = TwoWayMap()
     self.phraseTextAndDimensionMap.set(TwoWayMap.MAP_FORWARD, 'project', 0)
     self.phraseTextAndDimensionMap.set(TwoWayMap.MAP_FORWARD, 'cluster', 1)
     self.phraseTextToPhraseObjectMap = {
         'project':
         Phrase('project', test_time, score=8),
         'cluster':
         Phrase('cluster', test_time, score=8),
         'abcd':
         Phrase(
             'abcd',
             test_time -
             3 * stream_settings['max_phrase_inactivity_time_in_seconds'],
             score=8)
     }
     self.vector = Vector({0: 1, 1: 1, 2: 1, 3: 1})
     self.initial_max_dimensions = stream_settings['dimensions']
     stream_settings['dimensions'] = 2
Example #2
0
 def test_pruningConditionRandom(self):
     phrase1 = Phrase(
         'dsf', test_time -
         3 * stream_settings['max_phrase_inactivity_time_in_seconds'], 1)
     phrase2 = Phrase('dsf', test_time, 1)
     self.assertTrue(
         UtilityMethods.pruningConditionRandom(phrase1, test_time,
                                               **stream_settings))
     self.assertFalse(
         UtilityMethods.pruningConditionRandom(phrase2, test_time,
                                               **stream_settings))
Example #3
0
 def test_pruneUnnecessaryPhrases(self):
     phraseTextToPhraseObjectMap = {
         'dsf':
         Phrase(
             'dsf', test_time -
             3 * stream_settings['max_phrase_inactivity_time_in_seconds'],
             1),
         'abc':
         Phrase('abc', test_time, 1)
     }
     UtilityMethods.pruneUnnecessaryPhrases(
         phraseTextToPhraseObjectMap, test_time,
         UtilityMethods.pruningConditionRandom, **stream_settings)
     self.assertTrue('dsf' not in phraseTextToPhraseObjectMap)
     self.assertTrue('abc' in phraseTextToPhraseObjectMap)
Example #4
0
 def test_updateDimensions_when_phraseTextToIdMap_is_filled_to_max_dimensions(
         self):
     for phrase, score in zip(['added'], range(10, 11)):
         self.phraseTextToPhraseObjectMap[phrase] = Phrase(phrase,
                                                           test_time,
                                                           score=score)
     UtilityMethods.updateDimensions(self.phraseTextAndDimensionMap,
                                     self.phraseTextToPhraseObjectMap,
                                     test_time, **stream_settings)
     self.assertEqual({
         'project': 0,
         'added': 1
     }, self.phraseTextAndDimensionMap.getMap(TwoWayMap.MAP_FORWARD))
Example #5
0
 def test_updateDimensions_when_phrases_with_lower_id_are_removed_from_phraseTextToIdMap(
         self):
     stream_settings['dimensions'] = 3
     for phrase, score in zip(['new', 'phrases', 'are'], range(100, 103)):
         self.phraseTextToPhraseObjectMap[phrase] = Phrase(phrase,
                                                           test_time,
                                                           score=score)
     self.phraseTextAndDimensionMap.set(TwoWayMap.MAP_FORWARD, 'cluster', 2)
     self.phraseTextToPhraseObjectMap['cluster'].score = 100
     UtilityMethods.updateDimensions(self.phraseTextAndDimensionMap,
                                     self.phraseTextToPhraseObjectMap,
                                     test_time, **stream_settings)
     self.assertEqual(
         range(3),
         sorted(
             self.phraseTextAndDimensionMap.getMap(
                 TwoWayMap.MAP_FORWARD).values()))
Example #6
0
 def test_updateDimensions_when_dimensions_have_to_be_removed(self):
     stream_settings['dimensions'] = 4
     self.phraseTextAndDimensionMap.set(TwoWayMap.MAP_FORWARD, 'abcdx', 2)
     self.phraseTextAndDimensionMap.set(TwoWayMap.MAP_FORWARD, 'abcdxy', 3)
     for phrase, score in zip(['new_text'], range(7, 8)):
         self.phraseTextToPhraseObjectMap[phrase] = Phrase(phrase,
                                                           test_time,
                                                           score=score)
     self.phraseTextToPhraseObjectMap[
         'cluster'].latestOccuranceTime = test_time - 3 * stream_settings[
             'max_phrase_inactivity_time_in_seconds']
     UtilityMethods.updateDimensions(self.phraseTextAndDimensionMap,
                                     self.phraseTextToPhraseObjectMap,
                                     test_time, **stream_settings)
     self.assertEqual(
         set({
             'project': 0,
             'new_text': 1
         }),
         set(self.phraseTextAndDimensionMap.getMap(TwoWayMap.MAP_FORWARD)))
Example #7
0
 def test_updateDimensions_when_phraseTextToIdMap_has_lesser_than_max_dimensions(
         self):
     stream_settings['dimensions'] = 4
     for phrase, score in zip(['new', 'phrases', 'are', 'added'],
                              range(7, 11)):
         self.phraseTextToPhraseObjectMap[phrase] = Phrase(phrase,
                                                           test_time,
                                                           score=score)
     UtilityMethods.updateDimensions(self.phraseTextAndDimensionMap,
                                     self.phraseTextToPhraseObjectMap,
                                     test_time, **stream_settings)
     self.assertEqual(
         set({
             'project': 0,
             'phrases': 1,
             'are': 2,
             'added': 3
         }),
         set(self.phraseTextAndDimensionMap.getMap(TwoWayMap.MAP_FORWARD)))
     self.assertEqual(4, len(self.phraseTextAndDimensionMap))
Example #8
0
 def setUp(self):
     self.phrase1 = Phrase('abc', test_time, score=8)
     self.phrase2 = Phrase('xyz', test_time, score=7)