public void TestRamp() { var activation = new ActivationRamp(2, -2, 3, 1); Assert.IsTrue(activation.HasDerivative); var clone = activation.Clone(); Assert.IsInstanceOfType(clone, typeof(ActivationRamp)); double[] input = { -3, -2, 0, 2, 3 }; //Clone should have same parameters CollectionAssert.AreEqual(activation.Params, ((ActivationRamp)clone).Params); activation.ActivationFunction(input, 0, 5); Assert.AreEqual(1.0, input[0], EncogFramework.DefaultDoubleEqual); Assert.AreEqual(1.0, input[1], EncogFramework.DefaultDoubleEqual); Assert.AreEqual(2.0, input[2], EncogFramework.DefaultDoubleEqual); Assert.AreEqual(3.0, input[3], EncogFramework.DefaultDoubleEqual); Assert.AreEqual(3.0, input[4], EncogFramework.DefaultDoubleEqual); input[0] = activation.DerivativeFunction(-3, input[0]); input[2] = activation.DerivativeFunction(0, input[2]); input[4] = activation.DerivativeFunction(3, input[4]); Assert.AreEqual(0.0, input[0], EncogFramework.DefaultDoubleEqual); Assert.AreEqual(0.5, input[2], EncogFramework.DefaultDoubleEqual); Assert.AreEqual(0.0, input[4], EncogFramework.DefaultDoubleEqual); }