package genetic

import (
	"log"

	neuralnetwork "../neuralnetwork"
)

type Population struct {
	Networks []*neuralnetwork.NeuralNetwork
	verifier PopulationVerifier
}

func NewPopulation(verifier PopulationVerifier, populationSize int, sizes []int) (p *Population) {
	p = &Population{
		verifier: verifier,
		Networks: make([]*neuralnetwork.NeuralNetwork, populationSize),
	}

	for i := 0; i < populationSize; i++ {
		var err error
		p.Networks[i], err = neuralnetwork.NewNeuralNetwork(sizes, nil)
		if err != nil {
			log.Fatal("Could not initialize NeuralNetwork")
		}
	}

	return
}

func (p *Population) NaturalSelection(generationCount int) {

}