Esempio n. 1
0
 def test_term_frequency(self):
     self.__ranker.reset(21)
     self.__ranker.update("foo", 2, in3120.Posting(21, 4))
     self.__ranker.update("bar", 1, in3120.Posting(21, 3))
     self.assertEqual(self.__ranker.evaluate(), 11)
     self.__ranker.reset(42)
     self.__ranker.update("foo", 1, in3120.Posting(42, 1))
     self.__ranker.update("baz", 2, in3120.Posting(42, 2))
     self.assertEqual(self.__ranker.evaluate(), 5)
Esempio n. 2
0
 def test_static_quality_score(self):
     self.__ranker.reset(0)
     self.__ranker.update("foo", 1, in3120.Posting(0, 1))
     score1 = self.__ranker.evaluate()
     self.__ranker.reset(1)
     self.__ranker.update("foo", 1, in3120.Posting(1, 1))
     score2 = self.__ranker.evaluate()
     self.assertGreater(score1, 0.0)
     self.assertGreater(score2, 0.0)
     self.assertGreater(score1, score2)
Esempio n. 3
0
 def test_term_frequency(self):
     self.__ranker.reset(1)
     self.__ranker.update("foo", 1, in3120.Posting(1, 1))
     score1 = self.__ranker.evaluate()
     self.__ranker.reset(2)
     self.__ranker.update("foo", 1, in3120.Posting(1, 2))
     score2 = self.__ranker.evaluate()
     self.assertGreater(score1, 0.0)
     self.assertGreater(score2, 0.0)
     self.assertGreater(score2, score1)
Esempio n. 4
0
 def test_inverse_document_frequency(self):
     self.__ranker.reset(3)
     self.__ranker.update("the", 1, in3120.Posting(3, 1))
     self.assertAlmostEqual(self.__ranker.evaluate(), 0.0, 8)
     self.__ranker.reset(3)
     self.__ranker.update("bar", 1, in3120.Posting(3, 1))
     score1 = self.__ranker.evaluate()
     self.__ranker.reset(5)
     self.__ranker.update("baz", 1, in3120.Posting(5, 1))
     score2 = self.__ranker.evaluate()
     self.assertGreater(score1, 0.0)
     self.assertGreater(score2, 0.0)
     self.assertGreater(score1, score2)
Esempio n. 5
0
 def test_order_independence(self):
     postings1 = [
         in3120.Posting(1, 0),
         in3120.Posting(2, 0),
         in3120.Posting(3, 0)
     ]
     postings2 = [
         in3120.Posting(2, 0),
         in3120.Posting(3, 0),
         in3120.Posting(6, 0)
     ]
     result12 = list(
         map(lambda p: p.document_id,
             self.__merger.intersection(iter(postings1), iter(postings2))))
     result21 = list(
         map(lambda p: p.document_id,
             self.__merger.intersection(iter(postings2), iter(postings1))))
     self.assertListEqual(result12, [2, 3])
     self.assertListEqual(result12, result21)
     result12 = list(
         map(lambda p: p.document_id,
             self.__merger.union(iter(postings1), iter(postings2))))
     result21 = list(
         map(lambda p: p.document_id,
             self.__merger.union(iter(postings2), iter(postings1))))
     self.assertListEqual(result12, [1, 2, 3, 6])
     self.assertListEqual(result12, result21)
Esempio n. 6
0
 def test_empty_lists(self):
     posting = in3120.Posting(123, 4)
     self.assertListEqual(
         list(self.__merger.intersection(iter([]), iter([]))), [])
     self.assertListEqual(
         list(self.__merger.intersection(iter([]), iter([posting]))), [])
     self.assertListEqual(
         list(self.__merger.intersection(iter([posting]), iter([]))), [])
     self.assertListEqual(list(self.__merger.union(iter([]), iter([]))), [])
     self.assertListEqual([
         p.document_id
         for p in self.__merger.union(iter([]), iter([posting]))
     ], [posting.document_id])
     self.assertListEqual([
         p.document_id
         for p in self.__merger.union(iter([posting]), iter([]))
     ], [posting.document_id])
Esempio n. 7
0
 def test_uses_yield(self):
     import types
     postings1 = [
         in3120.Posting(1, 0),
         in3120.Posting(2, 0),
         in3120.Posting(3, 0)
     ]
     postings2 = [
         in3120.Posting(2, 0),
         in3120.Posting(3, 0),
         in3120.Posting(6, 0)
     ]
     result1 = self.__merger.intersection(iter(postings1), iter(postings2))
     result2 = self.__merger.union(iter(postings1), iter(postings2))
     self.assertIsInstance(result1, types.GeneratorType,
                           "Are you using yield?")
     self.assertIsInstance(result2, types.GeneratorType,
                           "Are you using yield?")