class TestGen(unittest.TestCase): def setUp(self): self.qc = QuickCheck() def test_collector(self): matrix = {} @self.qc.forall("First property") def prop(x: int): matrix["first"] = True return True @self.qc.forall("Second property") def prop(x: int): matrix["second"] = True return True self.assertEqual(len(self.qc.experiments), 2) self.qc.verify() self.assertEqual(matrix, {"first": True, "second": True})
class TestGen(unittest.TestCase): def setUp(self): self.qc = QuickCheck() def test_collector(self): matrix = {} @self.qc.forall('First property') def prop(x: int): matrix['first'] = True return True @self.qc.forall('Second property') def prop(x: int): matrix['second'] = True return True self.assertEqual(len(self.qc.experiments), 2) self.qc.verify() self.assertEqual(matrix, {'first': True, 'second': True})
from quick.arbitrary import A from quick.features import QuickCheck from quick.generators import number qc = QuickCheck(max_count=100) def non_empty_list(el: number, ls: [number]): """ Generator which always returns non empty list """ ls.append(el) return ls @qc.forall("Arbitrary some_of") def prop(a: A, x: [number]): sub_set = a.some_of(x) for el in sub_set: if el not in x: return False return True @qc.forall("For any given list N len(A.some_of(N)) <= len(N)") def prop(a: A, x: [number]): sub_set = a.some_of(x) return len(sub_set) <= len(x)
import unittest from quick.features import forall, QuickCheck from quick.generators import * from quick.arbitrary import A qc = QuickCheck() @qc.forall('Maybe generator') def prop(x: maybe(None)): return x is None TestSpec = qc.as_testcase()
def setUp(self): self.qc = QuickCheck()
from quick.features import QuickCheck qc = QuickCheck() @qc.forall("Test simplification list", max_count=10) def prop(x: [int]): return len(x) == 3 @qc.forall("Test simplification int", max_count=10) def prop(x: int, y: int): return x + y == 5
from quick.features import QuickCheck from quick.generators import number qc = QuickCheck() def y_generator(x: bytes): return x @qc.forall("Compostion of annotation") def prop(x: int, y: y_generator): return True @qc.forall("Int and float") def prop(x: int, y: float): return True @qc.forall("Radom unicode str") def prop(x: str): return True @qc.forall("Default values", max_count=100) def prop(x: int, z=1): return abs(x) + 1 > z @qc("Numbers", max_count=100)