def _check_same_seed(self, strategy): seed = 1111 stage1 = Stage(name='uut1', selection_strategy=strategy, seed=seed) stage2 = Stage(name='uut2', selection_strategy=strategy, seed=seed) for template in self.templates: stage1.add_template(template) stage2.add_template(template) for _ in range(1000): self.assertEqual(stage1.mutate(), stage2.mutate())
def _check_same_seed(self, strategy): seed = 1111 stage1 = Stage(name='uut1', selection_strategy=strategy, seed=seed) stage2 = Stage(name='uut2', selection_strategy=strategy, seed=seed) for template in self.templates: stage1.add_template(template) stage2.add_template(template) for i in range(1000): self.assertEqual(stage1.mutate(), stage2.mutate())
def test_random_strategy_random_length(self): stage = Stage(name='uut', selection_strategy='random', seed=1111) for template in self.templates: stage.add_template(template) sequences = set() iterations = 100 for i in range(iterations): sequence = stage.mutate() sequences.add(len(sequence)) self.assertGreater(len(sequences), iterations / 8)
def get_stage_map(self): stages = {} for i in range(1, 4): s = Stage(str(i), str(i), 1234) for n in range(i): name = 't%d_%d' % (i, n) value = 'd%d_%d' % (i, n) s.add_template(Template(name=name, fields=[String(value)])) stages[s] = i return stages
def testRandomStrategyRandomLength(self): stage = Stage(name='uut', selection_strategy='random', seed=1111) for template in self.templates: stage.add_template(template) sequences = set() iterations = 100 for _ in range(iterations): sequence = stage.mutate() sequences.add(len(sequence)) self.assertGreater(len(sequences), iterations // 8)
def _check_different_seed(self, strategy): seed1 = 1111 seed2 = 1112 stage1 = Stage(name='uut1', selection_strategy=strategy, seed=seed1) stage2 = Stage(name='uut2', selection_strategy=strategy, seed=seed2) for template in self.templates: stage1.add_template(template) stage2.add_template(template) seqs1 = [stage1.mutate() for i in range(10)] seqs2 = [stage2.mutate() for i in range(10)] self.assertNotEqual(seqs1, seqs2)
def _check_randomness(self, templates, strategy): '''Check that different sequences are generated''' stage = Stage(name='uut', selection_strategy=strategy, seed=1111) for template in templates: stage.add_template(template) sequences = set() iterations = 100 for i in range(iterations): sequence = tuple(stage.mutate()) sequences.add(sequence) self.assertGreater(len(sequences), iterations / 2)
def _check_randomness(self, templates, strategy): '''Check that different sequences are generated''' stage = Stage(name='uut', selection_strategy=strategy, seed=1111) for template in templates: stage.add_template(template) sequences = set() iterations = 100 for _ in range(iterations): sequence = tuple(stage.mutate()) sequences.add(sequence) self.assertGreater(len(sequences), iterations // 2)
def _check_strategy_length(self, selection_strategy, minl, maxl): stage = Stage(name='uut', selection_strategy=selection_strategy) templates = self.templates for template in templates: stage.add_template(template) for i in range(100): sequence = stage.mutate() sequence2 = stage.get_sequence_templates() self.assertEqual(sequence, sequence2) seql = len(sequence) self.assertGreaterEqual(seql, minl) self.assertLessEqual(seql, maxl) for template in sequence: self.assertIn(template, templates)
def _check_strategy_length(self, selection_strategy, minl, maxl): stage = Stage(name='uut', selection_strategy=selection_strategy) templates = self.templates for template in templates: stage.add_template(template) for _ in range(100): sequence = stage.mutate() sequence2 = stage.get_sequence_templates() self.assertEqual(sequence, sequence2) seql = len(sequence) self.assertGreaterEqual(seql, minl) self.assertLessEqual(seql, maxl) for template in sequence: self.assertIn(template, templates)
def _check_exception_at_mutate(self, templates, selection_strategy, seed): s = Stage(name='uut', selection_strategy=selection_strategy) for t in templates: s.add_template(t) with self.assertRaises(KittyException): s.mutate()