def test_simple(self):
        ps = ParseFacts()
        ps.parseLine("extend(\"compressed @@@\")")

        rl = RuleEngine()
        rl.initFactsDict(ps)

        clog1 = CompressedLog("compressed @@@")
        clog1.setDiffWordsSet({1})

        clog2 = CompressedLog("compressed2 @@@")
        clog2.setDiffWordsSet({1})

        rawlog1 = RawLog(date=datetime.datetime.now(),log="compressed a")
        rawlog2 = RawLog(date=datetime.datetime.now(),log="compressed b")
        rawlog3 = RawLog(date=datetime.datetime.now(),log="compressed2 a")
        rawlog4 = RawLog(date=datetime.datetime.now(),log="compressed2 b")

        clog1.rawlogs.append(rawlog1)
        clog1.rawlogs.append(rawlog2)

        clog2.rawlogs.append(rawlog3)
        clog2.rawlogs.append(rawlog4)

        [date1,logmessage1] = rl.filterLog(rawlog1)
        [date2,logmessage2] = rl.filterLog(rawlog2)
        [date3,logmessage3] = rl.filterLog(rawlog3)
        [date4,logmessage4] = rl.filterLog(rawlog4)

        self.assertEqual("compressed a",logmessage1)
        self.assertEqual("compressed b",logmessage2)
        self.assertEqual("compressed2 @@@",logmessage3)
        self.assertEqual("compressed2 @@@",logmessage4)
 def create_log_and_clog(self, log, clog_str, diff_words_arr, date=datetime.datetime.now()):
     rawlog = RawLog(date, log)
     clog1 = CompressedLog(clog_str)
     clog1.setDiffWordsSet(diff_words_arr)
     clog1.rawlogs.append(rawlog)
     return rawlog