예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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