public void AddOutputLayer_WithoutInputLayer_ShouldThrowException()
        {
            NeuralNetworkBuilderTestDouble builder = new NeuralNetworkBuilderTestDouble();

            builder.CreateNew();
            NeuralNetwork      network1 = builder.CurrentNeuralNetwork;
            ActivationFunction func     = ActivationFunctions.Identity;

            AssertEx.AssertThrows <NeuralNetworkConfigurationException>(() => builder.AddOutputLayer(2, func), "can't have only output layer");
        }
        public void AddOutputLayer_CalledTwice_ShouldThrowException()
        {
            NeuralNetworkBuilderTestDouble builder = new NeuralNetworkBuilderTestDouble();

            builder.CreateNew();
            NeuralNetwork      network1 = builder.CurrentNeuralNetwork;
            ActivationFunction func     = ActivationFunctions.Identity;

            builder.AddInputLayer(3, func, false)
            .AddOutputLayer(4, func);

            AssertEx.AssertThrows <NeuralNetworkConfigurationException>(() => builder.AddOutputLayer(5, func), "can't have 2 output layers");
        }