Пример #1
0
	def test_get_documents(self):
		parse = BooleanParser().parse
		fun = lambda x: self.index.get_documents(parse(x))
		lfun = lambda x: len(fun(x))
		
		self.assertEqual(lfun('rovnice průměr'), 1)
		self.assertEqual(lfun('průměr NOT úhlopříčky'), 1)
		self.assertEqual(lfun('rovnice'), 8)
		self.assertEqual(lfun('rovnice NOT spojitost'), 5)
		self.assertEqual(lfun('(statistika OR pythagorova)'), 3)
Пример #2
0
class BooleanParserTest(unittest.TestCase):
    parser = BooleanParser()

    def test_pure_parse(self):
        fun = lambda x: repr(self.parser._pure_parse(x))
        ass = self.assertEqual

        ass(fun('arg1 AND arg2 OR arg3'), "(('arg1' AND 'arg2') OR 'arg3')")
        ass(fun('(ARG AND ARG (ARG OR NOT ARG))'),
            "('ARG' AND 'ARG' AND ('ARG' OR (NOT('ARG'))))")
        ass(fun(''), '()')
        ass(fun('OR OR (AND test NOT)'), "(() OR () OR ('test' AND ''))")

    def test_parse(self):
        ass = self.assertEqual
        fun = lambda x: repr(self.parser.parse(x))

        ass(fun('OR OR (AND test NOT)'), "'test'")
        ass(
            fun('((star AND wars) AND NOT trek) OR ((star AND trek) OR TOS)'),
            "((('star' AND 'wars') AND NOT('trek')) OR (('star' AND 'trek') OR 'tos'))"
        )
        ass(fun(''), "''")
Пример #3
0
 def __init__(self, index, stopwords):
     self.parser = BooleanParser()
     self.index = index
     self.stopwords = stopwords