public void FWT2DTest2()
{
int levels = 2;
double[,] original =
{
{ 5, 6, 1, 2 },
{ 4, 2, 5, 5 },
{ 3, 1, 7, 1 },
{ 6, 3, 5, 1 }
};
double[,] data = (double[,])original.Clone();
Haar.FWT(data, levels);
double[,] expected =
{
{ 3.5625, 0.1875, 0.25, -0.25 },
{ 0.1875, 0.3125, 1.25, 2.5 },
{ 1.25, -1.75, -0.75, -0.25 },
{ -1.25, 0.5, -0.25, 0.5 }
};
string dataStr = data.ToString(CSharpMatrixFormatProvider.InvariantCulture);
Assert.IsTrue(Matrix.IsEqual(expected, data, 1e-5));
Haar.IWT(data, levels);
Assert.IsTrue(Matrix.IsEqual(data, original, 0.0001));
}