private void equals(HaarCascadeStage expected, HaarCascadeStage actual)
{
Assert.AreNotEqual(expected, actual);
Assert.AreEqual(expected.NextIndex, actual.NextIndex);
Assert.AreEqual(expected.ParentIndex, actual.ParentIndex);
Assert.AreEqual(expected.Threshold, actual.Threshold);
Assert.AreNotEqual(expected.Trees, actual.Trees);
Assert.AreEqual(expected.Trees.Length, actual.Trees.Length);
for (int i = 0; i < expected.Trees.Length; i++)
{
Assert.AreNotEqual(expected.Trees[i], actual.Trees[i]);
Assert.AreEqual(expected.Trees[i].Length, actual.Trees[i].Length);
for (int j = 0; j < expected.Trees[i].Length; j++)
equals(expected.Trees[i][j], actual.Trees[i][j]);
}
}