private void testWindow(int length, IWindow window)
{
float[,] data = (float[,])this.data.Clone();
Signal target = Signal.FromArray(data, 8000);
float[] samples = target.ToFloat();
Signal[] windows = target.Split(window, 1);
for (int i = 0; i < windows.Length; i++)
{
int min = System.Math.Min(i * 2 + length * 2, samples.Length);
float[] segment = windows[i].ToFloat();
float[] sub = samples.Submatrix(i * 2, min - 1);
float[] expected = new float[length * 2];
for (int j = 0; j < sub.Length; j++)
expected[j] = sub[j];
Assert.IsTrue(segment.IsEqual(expected));
}
}
}