public void FWT2DTest()
{
double[,] x =
{
{ 0, 1, 2, 3 },
{ 4, 5, 6, 7 },
{ 8, 9, 10, 11 },
{12, 13, 14, 15 }
};
double[,] expected =
{
{ 1.297637585669648, 3.484779276810484, 0.033728238667008574, 0.43254352928579837 },
{ 10.046204350232994, 12.233346041373833, 0.033728245672272984, 0.43254353629106429 },
{ 0.134912951550852, 0.134912953302168, 0.000000000135036058, 0.00000000045438059 },
{ 1.730174114026011, 1.730174115777326, 0.000000001412414811, 0.00000000173175807 },
};
int levels = 1;
double[,] actual = CDF97.FWT97(x, levels);
Assert.IsTrue(Matrix.IsEqual(expected, actual, 1e-5));
actual = CDF97.IWT97(x, levels);
Assert.IsTrue(Matrix.IsEqual(x, actual, 0.001));
}
}