def testCallbackGenerator(self): self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0 def cb_gen(src, dst): self.src_templates.append(src) self.dst_templates.append(dst) self.cb_call_count += 1 return self.cb_call_count first_time = True model = StagedSequenceModel(name='uut', callback_generator=cb_gen, num_mutations=100) for stage in self.stages: model.add_stage(stage) while model.mutate(): sequence = model.get_sequence() # this ugly piece of code is needed because we want to ignore the # default sequence generation delta = 0 def_len = len(model._default_sequence) if first_time: self.src_templates = self.src_templates[def_len:] self.dst_templates = self.dst_templates[def_len:] self.cb_call_count -= def_len delta = def_len first_time = False self.assertEqual(len(sequence), self.cb_call_count) for i in range(len(sequence)): self.assertEqual(self.src_templates[i], sequence[i].src) self.assertEqual(self.dst_templates[i], sequence[i].dst) self.assertEqual(delta + i + 1, sequence[i].callback) self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0
def testCallbackGenerator(self): self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0 def cb_gen(src, dst): self.src_templates.append(src) self.dst_templates.append(dst) self.cb_call_count += 1 return self.cb_call_count model = StagedSequenceModel(name='uut', callback_generator=cb_gen, num_mutations=100) for stage in self.stages: model.add_stage(stage) while model.mutate(): sequence = model.get_sequence() self.assertEqual(len(sequence), self.cb_call_count) for i in range(len(sequence)): self.assertEqual(self.src_templates[i], sequence[i].src) self.assertEqual(self.dst_templates[i], sequence[i].dst) self.assertEqual(i + 1, sequence[i].callback) self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0
def test_sequence_length_single_stage(self): for stage in self.stages: expected_length = self.stage_lengths[stage] model = StagedSequenceModel(num_mutations=100) model.add_stage(stage) while model.mutate(): sequence = model.get_sequence() sequence_length = len(sequence) self.assertEqual(expected_length, sequence_length)
def testSequenceLengthSingleStage(self): for stage in self.stages: expected_length = self.stage_lengths[stage] model = StagedSequenceModel(num_mutations=100) model.add_stage(stage) while model.mutate(): sequence = model.get_sequence() sequence_length = len(sequence) self.assertEqual(expected_length, sequence_length)
def testCallbackGenerator(self): self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0 def cb_gen(src, dst): self.src_templates.append(src) self.dst_templates.append(dst) self.cb_call_count += 1 return self.cb_call_count first_time = True model = StagedSequenceModel(name='uut', callback_generator=cb_gen, num_mutations=100) for stage in self.stages: model.add_stage(stage) while model.mutate(): sequence = model.get_sequence() # this ugly piece of code is needed because we want to ignore the # default sequence generation delta = 0 def_len = len(model._default_sequence) if first_time: self.src_templates = self.src_templates[def_len:] self.dst_templates = self.dst_templates[def_len:] self.cb_call_count -= def_len delta = def_len first_time = False self.assertEqual(len(sequence), self.cb_call_count) for i in range(len(sequence)): self.assertEqual(self.src_templates[i], sequence[i].src) self.assertEqual(self.dst_templates[i], sequence[i].dst) self.assertEqual(delta + i + 1, sequence[i].callback) self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0
def test_callback_generator(self): self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0 def cb_gen(src, dst): self.src_templates.append(src) self.dst_templates.append(dst) self.cb_call_count += 1 return self.cb_call_count model = StagedSequenceModel(name='uut', callback_generator=cb_gen, num_mutations=100) for stage in self.stages: model.add_stage(stage) while model.mutate(): sequence = model.get_sequence() self.assertEqual(len(sequence), self.cb_call_count) for i in range(len(sequence)): self.assertEqual(self.src_templates[i], sequence[i].src) self.assertEqual(self.dst_templates[i], sequence[i].dst) self.assertEqual(i + 1, sequence[i].callback) self.src_templates = [] self.dst_templates = [] self.cb_call_count = 0