public void ConvolveTest()
{
double[] a = { 3, 4, 5 };
double[] kernel = { 2, 1 };
double[] expected = { 6, 11, 14, 5 };
double[] actual = Matrix.Convolve(a, kernel);
Assert.IsTrue(expected.IsEqual(actual));
a = new double[] { 1, 2, 3, 4 };
kernel = new double[] { 1, 2, 1 };
expected = new double[] { 1, 4, 8, 12, 11, 4 };
actual = Matrix.Convolve(a, kernel);
Assert.IsTrue(expected.IsEqual(actual));
a = new double[] { 1, 2, 3, 4 };
kernel = new double[] { 0, 1, 0 };
expected = new double[] { 0, 1, 2, 3, 4, 0 };
actual = Matrix.Convolve(a, kernel);
Assert.IsTrue(expected.IsEqual(actual));
}