def testDecreaseOrderContinuity(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("0123456789") dp.order = 5 dp.seed = "01234" self.assertEquals(dp.next(),"5") dp.order = 4 self.assertEquals(dp.next(),"6")
def testChangeOrderReadOrder2(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("0123456789") dp.order = 10 dp.seed = "0123456789" self.assertEquals(dp.next(),"0") dp.order = 3 for i in xrange(7): dp.next() self.assertEquals(dp.order,3)
def testIncreaseOrderContinuity2(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("0123456789") dp.order = 5 dp.seed = "01234" self.assertEquals(dp.next(),"5") dp.order = 10 self.assertEquals(dp.next(),"6") self.assertEquals(dp.next(),"7") self.assertEquals(dp.next(),"8") self.assertEquals(dp.next(),"9") self.assertEquals(dp.next(),"0") self.assertEquals(dp.next(),"1")
def testManyTextIds(self): dp = DissociatedPress("tests/data/abc2.sqlite") preferLogger = logging.getLogger("dissociatedpress.prefer") preferLogger.setLevel(logging.INFO) try: dp.analyze("00abababababababab",0) except Warning: pass try: dp.analyze("11acacacacacacacac",1) except Warning: pass try: dp.analyze("22adadadadadadadad",2) except Warning: pass try: dp.analyze("33aeaeaeaeaeaeaeae",3) except Warning: pass dp.order = 1 line = "" for i in xrange(100): dp.prefer = i / 5 % 4 preferLogger.info("set prefer: %s" % dp.prefer) n = dp.next() line += n preferLogger.info(line)
def testPrefer1(self): dp = DissociatedPress("tests/data/abc2.sqlite") preferLogger = logging.getLogger("dissociatedpress.prefer") preferLogger.setLevel(logging.INFO) try: dp.analyze("abababababababab",0) except Warning: pass try: dp.analyze("acacacacacacacac",1) except Warning: pass dp.order = 1 Bs = 0 Cs = 0 line = "" dp.prefer = 1 for i in xrange(100): n = dp.next() line += n if n == 'b': Bs += 1 elif n == 'c': Cs += 1 preferLogger.info(line) self.assertTrue(Bs + 10 < Cs + 10)
def testPrefer1(self): dp = DissociatedPress("tests/data/abc2.sqlite") preferLogger = logging.getLogger("dissociatedpress.prefer") preferLogger.setLevel(logging.INFO) try: dp.analyze("abababababababab", 0) except Warning: pass try: dp.analyze("acacacacacacacac", 1) except Warning: pass dp.order = 1 Bs = 0 Cs = 0 line = "" dp.prefer = 1 for i in xrange(100): n = dp.next() line += n if n == 'b': Bs += 1 elif n == 'c': Cs += 1 preferLogger.info(line) self.assertTrue(Bs + 10 < Cs + 10)
def testManyTextIds(self): dp = DissociatedPress("tests/data/abc2.sqlite") preferLogger = logging.getLogger("dissociatedpress.prefer") preferLogger.setLevel(logging.INFO) try: dp.analyze("00abababababababab", 0) except Warning: pass try: dp.analyze("11acacacacacacacac", 1) except Warning: pass try: dp.analyze("22adadadadadadadad", 2) except Warning: pass try: dp.analyze("33aeaeaeaeaeaeaeae", 3) except Warning: pass dp.order = 1 line = "" for i in xrange(100): dp.prefer = i / 5 % 4 preferLogger.info("set prefer: %s" % dp.prefer) n = dp.next() line += n preferLogger.info(line)
def testDreadedUnicode(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze(u"ÄbcdeXabcdeYabcdeZüxxxxxxxxxxxxxxx") dp.order=5 dp.seed=u"Yabcd" for i in range(100): dp.next()
def testCyclic2(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("asdglkuzcgvhje") dp.order=5 dp.seed="kuzcg" for i in range(100): dp.next()
def testNextNext(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("abcdefghijklmnopq") dp.order=5 dp.seed="abcde" self.assertEquals(dp.next(),"f") self.assertEquals(dp.next(),"g")
def testBadSeed(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("abcdefghijklmnopq") dp.order=5 try: dp.seed="xxxx" raise unittest.AssertionError except RuntimeError: pass
def testCyclicNext(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("abcdefabcd") dp.order=5 dp.seed="abcde" res="" for i in range(100): res+=dp.next() self.assertEquals(res,"fabcdabcde"*10)
def testRandomNext(self): dp = DissociatedPress("tests/data/test.sqlite") dp.analyze("abcdeXabcdeYabcdeZxxxxxxxxxxxxxxxx") dp.order=5 res = set() for i in range(1000): dp.seed="abcde" res.add(dp.next()) self.assertEquals(len(res),3)
def testSetOrderEarly(self): dp = DissociatedPress("tests/data/test.sqlite") dp.order = 4