def test_unseeded_randomizer(self): # provide a seed to get consistent results pattern = r"[\w]{10}&([\d]{10}|M3W9MF_lH3906I14O50)" sg = SG(pattern) s1 = sg.render() sg = SG(pattern) s2 = sg.render() assert s1 != s2 sg = SG(pattern) list1 = sg.render_list(100) sg = SG(pattern) list2 = sg.render_list(100) assert collections.Counter(list1) != collections.Counter(list2)
def test_seeded_randomizer(self): # provide a seed to get consistent results pattern = r"[\w]{10}&([\d]{10}|M3W9MF_lH3906I14O50)" for seed in [random.randint(1, 100000000) for _ in range(100)]: sg = SG(pattern, seed=seed) s1 = sg.render() sg = SG(pattern, seed=seed) s2 = sg.render() assert s1 == s2 sg = SG(pattern, seed=seed) list1 = sg.render_list(100) sg = SG(pattern, seed=seed) list2 = sg.render_list(100) assert collections.Counter(list1) == collections.Counter(list2)
print("Standard method - StringGenerator (complex): %s (%s%%)" % (str( (case1 - case2)), str(round(100 * (case1 - case2) / case1, 2)))) from strgen import StringGenerator as SGPIP import time import imp strgen = imp.load_source('strgen', 'strgen/__init__.py') sg1 = strgen.StringGenerator('[\d]{100}') sg2 = SGPIP('[\d]{100}') s = time.time() for i in xrange(10000): sg1.render() c1 = time.time() - s print("StringGenerator: %s seconds" % round(c1, 2)) s = time.time() for i in xrange(10000): sg2.render() c2 = time.time() - s print("StringGenerator PIP: %s seconds" % round(c2, 2)) """ from strgen import StringGenerator as SG import dis SG('[\d]') dis.dis(SG.render) """
def test_custom_randomizer(self): pattern = r"[\w]{10}&([\d]{10}|M3W9MF_lH3906I14O50)" sg = SG(pattern, randomizer=CustomRandomizer()) assert len(sg.render())
def test_custom_bad_randomizer(self): pattern = r"[\w]{10}&([\d]{10}|M3W9MF_lH3906I14O50)" sg = SG(pattern, randomizer=CustomBadRandomizer()) self.assertRaises(Exception, lambda: sg.render())
from strgen import StringGenerator as SGPIP import time import imp strgen = imp.load_source('strgen', 'strgen/__init__.py') sg1 = strgen.StringGenerator('[\d]{100}') sg2 = SGPIP('[\d]{100}') s = time.time() for i in xrange(10000): sg1.render() c1 = time.time() - s print("StringGenerator: %s seconds" % round(c1, 2)) s = time.time() for i in xrange(10000): sg2.render() c2 = time.time() - s print("StringGenerator PIP: %s seconds" % round(c2, 2)) """ from strgen import StringGenerator as SG import dis SG('[\d]') dis.dis(SG.render) """