Пример #1
0
def test_offspring_returns_two_chromosomes_combining_parents():
    parents = [Chromosome.random(), Chromosome.random()]
    subject = Crossover(parents)
    result = subject.offspring()
    assert len(result) == 2
    assert isinstance(result[0], Chromosome)
    assert isinstance(result[1], Chromosome)
Пример #2
0
def test_offspring_returns_chromosomes_combining_parents(monkeypatch):
    parents = [
        Chromosome(np.array(list("XXXXXXXXXXXXXXXXXXXXXXXXXX"))),
        Chromosome(np.array(list("YYYYYYYYYYYYYYYYYYYYYYYYYY"))),
    ]
    subject = Crossover(parents)
    monkeypatch.setattr(subject, "pivot", 3)
    result = subject.offspring()
    assert result[0] == Chromosome(np.array(
        list("XXXYYYYYYYYYYYYYYYYYYYYYYY")))
    assert result[1] == Chromosome(np.array(
        list("YYYXXXXXXXXXXXXXXXXXXXXXXX")))
Пример #3
0
def test_call_returns_crossed_over_if_must_crossover(monkeypatch):
    parents = [Chromosome.random(), Chromosome.random()]
    subject = Crossover(parents)
    monkeypatch.setattr(subject, "will_crossover_happen", lambda: True)
    assert subject() == subject.offspring()