public void GradientTest()
{
double[][] input =
{
new double[] { 55, 0 }, // 0 - no cancer
new double[] { 28, 0 }, // 0
new double[] { 65, 1 }, // 0
new double[] { 46, 0 }, // 1 - have cancer
new double[] { 86, 1 }, // 1
new double[] { 56, 1 }, // 1
new double[] { 85, 0 }, // 0
new double[] { 33, 0 }, // 0
new double[] { 21, 1 }, // 0
new double[] { 42, 1 }, // 1
};
double[] output =
{
0, 0, 0, 1, 1, 1, 0, 0, 0, 1
};
double[] expected = finiteDifferences(input, output, false);
double[] actual = gradient(input, output, false);
Assert.AreEqual(expected.Length, actual.Length);
for (int i = 0; i < expected.Length; i++)
{
Assert.AreEqual(expected[i], actual[i], 1e-10);
Assert.IsFalse(Double.IsNaN(actual[i]));
Assert.IsFalse(Double.IsNaN(expected[i]));
}
}