예제 #1
0
파일: mat1213.py 프로젝트: inno-v/regexpgen
	def testPhase3Stage3(self):
		# 8 May 2013: auto-detection, concatenate

		# concatenate

		self.assertTrue (re.match(regexpgen.concatenate([
				('int', "%d", 100, 105),
				('\.',),
				('int', "%d", 250, 255),
				('\.',),
				('int', "%d", 122, 122),
				('\.',),
				('int', "%d", 0, 240)
		]), "100.250.122.10"))

		self.assertFalse(re.match(regexpgen.concatenate([
				('int', "%d", 100, 105),
				('\.',),
				('int', "%d", 250, 255),
				('\.',),
				('int', "%d", 122, 122),
				('\.',),
				('int', "%d", 0, 240)
		]), "99.250.122.10"))

		self.assertTrue(re.match(regexpgen.concatenate([
				('int', "%04d", 99, 105),
				('\.',),
				('int', "%d", 250, 255),
				('\.',),
				('int', "%d", 122, 122),
				('\.',),
				('int', "%d", 0, 240)
		]), "0099.250.122.10"))

		self.assertFalse(re.match(regexpgen.concatenate([
				('int', "%04d", 99, 105),
				('\.',),
				('int', "%d", 250, 255),
				('\.',),
				('int', "%d", 122, 122),
				('\.',),
				('int', "%d", 0, 240)
		]), "99.250.122.10"))

		# auto
		self.assertTrue  (re.match(regexpgen.auto("%d", 1, None), "1"))
		self.assertTrue  (re.match(regexpgen.auto("%03d", 0, 100), "099"))
		self.assertFalse (re.match(regexpgen.auto("%lf", -0.01, 1.5), "1.51"))
		self.assertFalse (re.match(regexpgen.auto("%0.1lf", -100.0, 100.0), "-100.00"))
		self.assertTrue  (re.match(regexpgen.auto("%016.10lf"), "15600001.0123456789"))
		self.assertFalse (re.match(regexpgen.auto("%H:%M"), "24:23"))
		self.assertRaises(ValueError, regexpgen.auto, "%I?%M?%p", "12:24am", "5:59 pm")
예제 #2
0
    def testDefault(self):
        regexp = regexpgen.concatenate([
        ('int', "%d", 100, 105),
        ('\.',),
        ('int', "%d", 250, 255),
        ('\.',),
        ('int', "%d", 122, 122),
        ('\.',),
        ('int', "%d", 0, 240)
        ])

        self.assertTrue(re.match(regexp, "100.250.122.1"))
        self.assertFalse(re.match(regexp, "111.117.111.1"))
        
        regexp = regexpgen.concatenate([
        ('int', "%d", 100, 105),
        ('\-',),
        ('real', "%lf")
        ])

        self.assertTrue(re.match(regexp, "100-22.5"))
        self.assertFalse(re.match(regexp, "22.5-100"))
        
        regexp = regexpgen.concatenate([
        ('date', "%m/%d"),
        (' ',),
        ('time', "%H:%M")
        ])

        self.assertTrue(re.match(regexp, "02/25 22:13"))
        self.assertFalse(re.match(regexp, "22.5-100"))
        
        regexp = regexpgen.concatenate([
        ('date', "%m/%d"),
        (' - ',),
        ('date', "%m/%d")
        ])

        self.assertTrue(re.match(regexp, "02/25 - 02/27"))
        self.assertFalse(re.match(regexp, "32/25 - 32/25"))
예제 #3
0
파일: mat1213.py 프로젝트: inno-v/regexpgen
	def testPhase2Stage1(self):
		# 27 March 2013: real %0.Ylf and %.Ylf
		func = regexpgen.real

		self.assertRaises(ValueError, func, "%.1lf", 'a', 'a')
		self.assertRaises(ValueError, func, "%2.2lf", 'b', 'b')
		self.assertRaises(ValueError, func, "%.1lf", 10, 10)
		self.assertRaises(ValueError, func, "%0.2lf", 'b', 'b')
		self.assertRaises(ValueError, func, "%0.2lf", 13, -13)

		self.assertTrue (re.match(func("%0.2lf", -12.7, 23.5), "-9.99"))
		self.assertFalse(re.match(func("%0.2lf", -12.7, 23.5), "-9.99999"))
		self.assertTrue (re.match(func("%0.2lf", -12.7, 23.5), "23.10"))
		self.assertTrue (re.match(func("%0.1lf", -100.0, 100.0), "-100.0"))
		self.assertTrue (re.match(func("%0.1lf", -100.0, 100.0), "100.0"))
		self.assertFalse(re.match(func("%0.1lf", -100.0, 100.0), "-100.00"))
		self.assertFalse(re.match(func("%0.1lf", -100.0, 100.0), "100.00"))
		self.assertTrue (re.match(func("%0.2lf", 0.0, 10.11), "10.11"))
		self.assertFalse(re.match(func("%0.2lf", 0.0, 10.11), "10.111"))
		self.assertFalse(re.match(func("%0.2lf", 0.0, 10.11), "0010.10"))

		self.assertTrue (re.match(func("%.2lf"), "0.11"))
		self.assertTrue (re.match(func("%.2lf"), "11111.11"))
		self.assertTrue (re.match(func("%.2lf"), "-123.11"))
		self.assertTrue (re.match(func("%.2lf", 0.0, 10.11), "0.11"))
		self.assertTrue (re.match(func("%.2lf", 0.0, 10.11), "10.11"))
		self.assertFalse(re.match(func("%.2lf", 0.0, 10.11), "10.111"))
		self.assertFalse(re.match(func("%.2lf", 0.0, 10.11), "10.12"))
		self.assertFalse(re.match(func("%.2lf", 0.0, 10.11), "0.111"))
		self.assertFalse(re.match(func("%.2lf", 0.0, 10.11), "111.11"))
		self.assertFalse(re.match(func("%.2lf", 0.0, 10.11), "-0.111"))

		self.assertTrue (re.match(regexpgen.concatenate([
				('int', "%d", 100, 105),
				('\.',),
				('int', "%d", 250, 255),
				('\.',),
				('int', "%d", 122, 122),
				('\.',),
				('int', "%d", 0, 240)
		]), "100.250.122.10"))
예제 #4
0
파일: main.py 프로젝트: inno-v/regexpgen
'''
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")