Пример #1
0
 def test_negative_removal(self):
     eID = None
     query = "foo and bar"
     rss = RefinableSearchState(eID, query, self.dk_iqr, self.classifier_config, self.mdb_info, "results")
     rss.register_negative_feedback(1)
     rss.remove_negative_feedback(1)
     self.assertSetEqual(rss.negatives, set())
Пример #2
0
 def test_setting_negatives(self):
     eID = None
     query = "foo and bar"
     rss = RefinableSearchState(eID, query, self.dk_iqr, self.classifier_config, self.mdb_info, "results")
     assert rss.negatives == set()
     rss.register_negative_feedback(1)
     assert rss.negatives == set((1,))
Пример #3
0
 def test_negative_removal(self):
     eID = None
     query = 'foo and bar'
     rss = RefinableSearchState(eID, query, self.dk_iqr,
                                self.classifier_config, self.mdb_info,
                                'results')
     rss.register_negative_feedback(1)
     rss.remove_negative_feedback(1)
     self.assertSetEqual(rss.negatives, set())
Пример #4
0
 def test_setting_negatives(self):
     eID = None
     query = 'foo and bar'
     rss = RefinableSearchState(eID, query, self.dk_iqr,
                                self.classifier_config, self.mdb_info,
                                'results')
     assert rss.negatives == set()
     rss.register_negative_feedback(1)
     assert rss.negatives == set((1, ))
Пример #5
0
    def test_refinement_side_effect(self):
        eID = None
        query = "foo and bar"
        pos_set = set(range(0, 10))
        neg_set = set(range(10, 20))

        rss = RefinableSearchState(eID, query, self.dk_iqr, self.classifier_config, self.mdb_info, "results")
        rss.register_positive_feedback(pos_set)
        rss.register_negative_feedback(neg_set)

        rss.register_positive_feedback(10)
        self.assertNotIn(10, rss.negatives)
        self.assertIn(10, rss.positives)

        rss.register_negative_feedback(0)
        self.assertNotIn(0, rss.positives)
        self.assertIn(0, rss.negatives)
Пример #6
0
    def test_refinement_side_effect(self):
        eID = None
        query = 'foo and bar'
        pos_set = set(range(0, 10))
        neg_set = set(range(10, 20))

        rss = RefinableSearchState(eID, query, self.dk_iqr,
                                   self.classifier_config, self.mdb_info,
                                   'results')
        rss.register_positive_feedback(pos_set)
        rss.register_negative_feedback(neg_set)

        rss.register_positive_feedback(10)
        self.assertNotIn(10, rss.negatives)
        self.assertIn(10, rss.positives)

        rss.register_negative_feedback(0)
        self.assertNotIn(0, rss.positives)
        self.assertIn(0, rss.negatives)
Пример #7
0
    def test_refinement_inheritance(self):
        eID = None
        query = "foo and bar"
        pos_set = set((23, 25, 27, 60, 123, 227, 457, 967))
        neg_set = set((794, 986, 5967, 7254, 23456, 82456))

        rss = RefinableSearchState(eID, query, self.dk_iqr, self.classifier_config, self.mdb_info, "results")
        rss.register_positive_feedback(pos_set)
        rss.register_negative_feedback(neg_set)

        rss2 = RefinableSearchState(rss)

        self.assertSetEqual(rss.positives, rss2.positives)
        self.assertSetEqual(rss2.positives, pos_set)
        self.assertSetEqual(rss.negatives, rss2.negatives)
        self.assertSetEqual(rss2.negatives, neg_set)

        rss.register_positive_feedback(0)
        rss2.register_positive_feedback(1)
        self.assertNotIn(0, rss2.positives)
        self.assertNotIn(1, rss.positives)

        rss.register_negative_feedback(2)
        rss2.register_negative_feedback(3)
        self.assertNotIn(2, rss2.negatives)
        self.assertNotIn(3, rss.negatives)
Пример #8
0
    def test_refinement_inheritance(self):
        eID = None
        query = 'foo and bar'
        pos_set = set((23, 25, 27, 60, 123, 227, 457, 967))
        neg_set = set((794, 986, 5967, 7254, 23456, 82456))

        rss = RefinableSearchState(eID, query, self.dk_iqr,
                                   self.classifier_config, self.mdb_info,
                                   'results')
        rss.register_positive_feedback(pos_set)
        rss.register_negative_feedback(neg_set)

        rss2 = RefinableSearchState(rss)

        self.assertSetEqual(rss.positives, rss2.positives)
        self.assertSetEqual(rss2.positives, pos_set)
        self.assertSetEqual(rss.negatives, rss2.negatives)
        self.assertSetEqual(rss2.negatives, neg_set)

        rss.register_positive_feedback(0)
        rss2.register_positive_feedback(1)
        self.assertNotIn(0, rss2.positives)
        self.assertNotIn(1, rss.positives)

        rss.register_negative_feedback(2)
        rss2.register_negative_feedback(3)
        self.assertNotIn(2, rss2.negatives)
        self.assertNotIn(3, rss.negatives)