public void ShouldReturnCorrectGenotype()
    {
        NetVector v1 = NetVector.FromValues(new double[] { 1, 2, 3 });
        NetVector v2 = NetVector.FromValues(new double[] { 4, 5, 6 });
        NetVector v3 = NetVector.FromValues(new double[] { 7, 8, 9 });
        NetVector v4 = NetVector.FromValues(new double[] { 10, 11, 12 });

        NetVector v5 = NetVector.FromValues(new double[] { 13, 14, 15, 16, 17 });
        NetVector v6 = NetVector.FromValues(new double[] { 18, 19, 20, 21, 22 });

        Neuron n1 = new Neuron(v1, Config.ACTIVATION_FUNC);
        Neuron n2 = new Neuron(v2, Config.ACTIVATION_FUNC);
        Neuron n3 = new Neuron(v3, Config.ACTIVATION_FUNC);
        Neuron n4 = new Neuron(v4, Config.ACTIVATION_FUNC);

        Neuron n5 = new Neuron(v5, Config.ACTIVATION_FUNC);
        Neuron n6 = new Neuron(v6, Config.ACTIVATION_FUNC);

        NetLayer l1 = new NetLayer(new Neuron[] { n1, n2, n3, n4 });
        NetLayer l2 = new NetLayer(new Neuron[] { n5, n6 });

        NeuralNetwork        n  = new NeuralNetwork(new NetLayer[] { l1, l2 });
        List <NeuralNetwork> ln = new List <NeuralNetwork>();

        ln.Add(n);
        List <List <double> > genotypes = new NeuralNetworkConverter().ToGenotypes(ln);

        Assert.AreEqual(genotypes.Count, 1);

        TestUtils.AssertEqualDoubleList(
            new List <double>(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 }),
            genotypes[0]
            );
    }
    public void ShouldReturnCorrectSize()
    {
        NeuralNetwork        n  = new NeuralNetwork(new int[] { 2, 3, 4 });
        List <NeuralNetwork> ln = new List <NeuralNetwork>();

        ln.Add(n);
        List <List <double> > genotypes = new NeuralNetworkConverter().ToGenotypes(ln);

        Assert.AreEqual(genotypes[0].Count, 25);
    }
    public void ShouldReturnSameGenotypes()
    {
        List <double> genotype = new List <double>(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 });

        int[] topology = new int[] { 2, 4, 2 };
        NeuralNetworkConverter converter = new NeuralNetworkConverter();

        List <List <double> > genotypes = new List <List <double> >();

        genotypes.Add(genotype);

        List <NeuralNetwork> networks = converter.ToNetworks(genotypes, topology);

        Assert.AreEqual(1, networks.Count);

        List <List <double> > newGenotypes = converter.ToGenotypes(networks);

        TestUtils.AssertEqualDoubleList(
            new List <double>(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 }),
            newGenotypes[0]
            );
    }