@Test public void testBuildArchitecture() { NeuralNetwork network = new NeuralNetwork(); network.getArchitecture().getArchitectureBuilder().addLayer(new LayerConfiguration(5)); network.getArchitecture().getArchitectureBuilder().addLayer(new LayerConfiguration(3)); network.getArchitecture().getArchitectureBuilder().addLayer(new LayerConfiguration(3, false)); network.getArchitecture().getArchitectureBuilder().addLayer(new LayerConfiguration(2)); network.getArchitecture().getArchitectureBuilder().getLayerBuilder().setDomain("R(-3,3)"); network.initialize(); // assert num layers Assert.assertEquals(4, network.getArchitecture().getNumLayers()); // assert fully connected Assert.assertEquals(36, network.getWeights().size()); // assert biasses Assert.assertEquals(true, network.getArchitecture().getLayers().get(0).isBias()); int layerSize = network.getArchitecture().getLayers().get(0).size(); Assert.assertEquals(6, layerSize); Assert.assertEquals( -1, network.getArchitecture().getLayers().get(0).getNeuralInput(layerSize - 1), Maths.EPSILON); Assert.assertEquals(true, network.getArchitecture().getLayers().get(1).isBias()); layerSize = network.getArchitecture().getLayers().get(1).size(); Assert.assertEquals(4, layerSize); Assert.assertEquals( -1, network.getArchitecture().getLayers().get(1).getNeuralInput(layerSize - 1), Maths.EPSILON); Assert.assertEquals(false, network.getArchitecture().getLayers().get(2).isBias()); layerSize = network.getArchitecture().getLayers().get(2).size(); Assert.assertEquals(3, layerSize); Assert.assertEquals(false, network.getArchitecture().getLayers().get(3).isBias()); layerSize = network.getArchitecture().getLayers().get(3).size(); Assert.assertEquals(2, layerSize); }