def test_deterministic_combine(): dna1 = DNABinary(True for _ in range(100)) dna2 = DNABinary(False for _ in range(100)) combine_mask = [True if i < 25 else False for i in range(100)] dna3, dna4 = dna1.combine(dna2, combine_mask) for component1, component2, mask in zip(dna3, dna4, combine_mask): if mask: assert component1 is True assert component2 is False else: assert component1 is False assert component2 is True
def test_deterministic_combine(): dna1 = DNABinary(True for _ in range(100)) dna2 = DNABinary(False for _ in range(100)) combine_mask = [True if i < 25 else False for i in range(100)] dna3, dna4 = dna1.combine(dna2, combine_mask) for component1, component2, mask in zip(dna3, dna4, combine_mask): if mask: assert component1 is True assert component2 is False else: assert component1 is False assert component2 is True
def test_random_combine(): dna1 = DNABinary(100) dna2 = DNABinary(100) combine_mask = [random.choice((True, False)) for _ in range(100)] dna3, dna4 = dna1.combine(dna2, combine_mask) for parent1, parent2, child1, child2, mask in zip(dna1, dna2, dna3, dna4, combine_mask): if mask: assert child1 == parent1 assert child2 == parent2 else: assert child1 == parent2 assert child2 == parent1
def test_random_combine(): dna1 = DNABinary(100) dna2 = DNABinary(100) combine_mask = [random.choice((True, False)) for _ in range(100)] dna3, dna4 = dna1.combine(dna2, combine_mask) for parent1, parent2, child1, child2, mask in zip(dna1, dna2, dna3, dna4, combine_mask): if mask: assert child1 == parent1 assert child2 == parent2 else: assert child1 == parent2 assert child2 == parent1