public void KernelTest() { double[] x, y; double actual; var target = new BSpline(10); x = new double[] { 1, 2, 3, 6, 2, 2, 1 }; y = new double[] { 4, 5, 6, 9, 5, 3, 1 }; actual = target.Function(x, y); Assert.AreEqual(0.00000000070098200355454978, actual); x = new double[] { 5, 11, 2, 9, 4, 5, 4 }; y = new double[] { 4, 5, 1, 1, 3, 3, 4 }; actual = target.Function(x, y); Assert.AreEqual(0.00000000000000017965181746434572, actual); target = new BSpline(20); x = new double[] { 1, 2, 3 }; y = new double[] { 4, 5, 6 }; actual = target.Function(x, y); Assert.AreEqual(0.00020921661189636344, actual); x = new double[] { 5, 11, 2 }; y = new double[] { 4, 5, 1 }; actual = target.Function(x, y); Assert.AreEqual(0.000042265155534640169, actual); target = new BSpline(20); x = new double[] { 0.1, 0.5, 0.01 }; y = new double[] { 0.3, 0.02, 0.04 }; actual = target.Function(x, y); Assert.AreEqual(0.0092334372187475831, actual); x = new double[] { 0.5, 0.11, 0.2 }; y = new double[] { 0.4, 0.5, 0.1 }; actual = target.Function(x, y); Assert.AreEqual(0.0093633595480067857, actual); }