def __runTest3(self, scale, setMin, setMax): getZeros = lambda x: (scale - len(str(x)))*"0" min = random.randint(0, 10**scale) if setMin else 0 max = random.randint(min, min + 10**scale) format = "%0{0}d".format(scale) regexp = regexpgen.nnint(format, min if setMin else None, max if setMax else None) info = lambda value: self.__getInfo(value, regexp, format, min if setMin else None, max if setMax else None) for i in xrange(-max * 2, -1): a = "-" + getZeros(i) + str(math.fabs(i)) self.assertFalse(re.match(regexp, str(i)), info(str(i))) self.assertFalse(re.match(regexp, a), info(a)) for i in xrange(0, min - 1): a = getZeros(i) + str(i) self.assertFalse(re.match(regexp, str(i)), info(str(i))) self.assertFalse(re.match(regexp, a), info(a)) for i in xrange(min, max): if len(str(i)) > scale: break zeros = getZeros(i) a = zeros + str(i); b = zeros + "0" + str(i); self.assertTrue(re.match(regexp, a), info(a)) self.assertFalse(re.match(regexp, b), info(b)) if len(zeros) > 0: c = zeros[:-1] + str(i) #cuts last zero self.assertFalse(re.match(regexp, c), info(c)) if setMax: for i in xrange(max+1, max * 2): a = getZeros(i) + str(i) self.assertFalse(re.match(regexp, str(i)), info(str(i))) self.assertFalse(re.match(regexp, a), info(a))
def __runTest2(self, scale, setMin, setMax): min = random.randint(0, 10**scale) if setMin else 0 max = random.randint(min, min + 10**scale) format = "%0d" regexp = regexpgen.nnint(format, min if setMin else None, max if setMax else None) info = lambda value: self.__getInfo(value, regexp, format, min if setMin else None, max if setMax else None) for i in xrange(-max * 2, -1): self.assertFalse(re.match(regexp, str(i)), info(str(i))) for i in xrange(0, min - 1): self.assertFalse(re.match(regexp, str(i)), info(str(i))) for i in xrange(min, max): a = "0" + str(i); b = "00" + str(i); c = "000" + str(i); d = "0000" + str(i); self.assertTrue(re.match(regexp, str(i)), info(str(i))) self.assertFalse(re.match(regexp, a), info(a)) self.assertFalse(re.match(regexp, b), info(b)) self.assertFalse(re.match(regexp, c), info(c)) self.assertFalse(re.match(regexp, d), info(d)) if setMax: for i in xrange(max+1, max * 2): self.assertFalse(re.match(regexp, str(i)), info(str(i)))
''' Created on Apr 27, 2011 @authors: Joanna Binczewska, Dawid Kowalski ''' import regexpgen print regexpgen.nnint("%04d", 71, 2319) print regexpgen.integer("%0d", -521, 132) print regexpgen.real("%lf", -12.7, 23.5) print regexpgen.real("%lf", -100.0, 100.0) print regexpgen.real("%lf", 0.0, 10.1) print regexpgen.concatenate([ ('int', "%d", 100, 105), ('\.',), ('int', "%d", 250, 255), ('\.',), ('int', "%d", 122, 122), ('\.',), ('int', "%d", 0, 240) ]) print regexpgen.time("%H:%M", "12:24", "17:59") print regexpgen.date("%Y-%m-%d", "2013-03-15", "2013-04-24") print regexpgen.date("%d/%m", "15/09")