123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package gago
- import (
- "testing"
- )
- func TestCloneIndividual(t *testing.T) {
- var (
- rng = newRandomNumberGenerator()
- genome = NewVector(rng)
- indi1 = NewIndividual(genome, rng)
- indi2 = indi1.Clone(rng)
- )
- if &indi1 == &indi2 || &indi1.Genome == &indi2.Genome {
- t.Error("Individual was not deep copied")
- }
- }
- func TestEvaluateIndividual(t *testing.T) {
- var (
- rng = newRandomNumberGenerator()
- genome = NewVector(rng)
- indi = NewIndividual(genome, rng)
- )
- if indi.Evaluated {
- t.Error("Individual shouldn't have Evaluated set to True")
- }
- indi.Evaluate()
- if !indi.Evaluated {
- t.Error("Individual should have Evaluated set to True")
- }
- }
- func TestMutateIndividual(t *testing.T) {
- var (
- rng = newRandomNumberGenerator()
- genome = NewVector(rng)
- indi = NewIndividual(genome, rng)
- )
- indi.Evaluate()
- indi.Mutate(rng)
- if indi.Evaluated {
- t.Error("Individual shouldn't have Evaluated set to True")
- }
- }
- func TestCrossoverIndividual(t *testing.T) {
- var (
- rng = newRandomNumberGenerator()
- indi1 = NewIndividual(NewVector(rng), rng)
- indi2 = NewIndividual(NewVector(rng), rng)
- offspring1, offspring2 = indi1.Crossover(indi2, rng)
- )
- if offspring1.Evaluated || offspring2.Evaluated {
- t.Error("Offsprings shouldn't have Evaluated set to True")
- }
- if &offspring1 == &indi1 || &offspring1 == &indi2 || &offspring2 == &indi1 || &offspring2 == &indi2 {
- t.Error("Offsprings shouldn't share pointers with parents")
- }
- }
|