public static void DoColumn3dTest(Column3dTest column3dTest, double[, ,] actual) { #if DEBUG_COMPARISON Func <double, double, bool> test = column3dTest.Tolerance != null ? (Func <double, double, bool>)((a, e) => column3dTest.Tolerance.Equals(a, e)) : (Func <double, double, bool>)((a, e) => a.Equals(e)); var count1 = actual.GetLength(0); var count2 = actual.GetLength(1); var count3 = actual.GetLength(2); var tests = new Tuple <double, double, bool> [count1, count2, count3]; for (var ii = 0; ii < count1; ii++) { for (var jj = 0; jj < count2; jj++) { for (var kk = 0; kk < count3; kk++) { var a = actual[ii, jj, kk]; var e = column3dTest.Expected[ii, jj, kk]; tests[ii, jj, kk] = Tuple.Create(a, e, test(a, e)); } } } foreach (var t in tests) { Assert.IsTrue(t.Item3); } #else if (column3dTest.Tolerance != null) { var count1 = actual.GetLength(0); var count2 = actual.GetLength(1); var count3 = actual.GetLength(2); for (var ii = 0; ii < count1; ii++) { for (var jj = 0; jj < count2; jj++) { for (var kk = 0; kk < count3; kk++) { Assert.IsTrue(column3dTest.Tolerance.Equals(actual[ii, jj, kk], column3dTest.Expected[ii, jj, kk])); } } } } else { Assert.That(actual, Is.EquivalentTo(column3dTest.Expected)); } #endif }
public static void DoColumn3dTest(Column3dTest column3dTest, double[, ,] actual) { #if DEBUG_COMPARISON Func<double, double, bool> test = column3dTest.Tolerance != null ? (Func<double, double, bool>)((a, e) => column3dTest.Tolerance.Equals(a, e)) : (Func<double, double, bool>)((a, e) => a.Equals(e)); var count1 = actual.GetLength(0); var count2 = actual.GetLength(1); var count3 = actual.GetLength(2); var tests = new Tuple<double, double, bool>[count1, count2, count3]; for (var ii = 0; ii < count1; ii++) { for (var jj = 0; jj < count2; jj++) { for (var kk = 0; kk < count3; kk++) { var a = actual[ii, jj, kk]; var e = column3dTest.Expected[ii, jj, kk]; tests[ii, jj, kk] = Tuple.Create(a, e, test(a, e)); } } } foreach (var t in tests) { Assert.IsTrue(t.Item3); } #else if (column3dTest.Tolerance != null) { var count1 = actual.GetLength(0); var count2 = actual.GetLength(1); var count3 = actual.GetLength(2); for (var ii = 0; ii < count1; ii++) { for (var jj = 0; jj < count2; jj++) { for (var kk = 0; kk < count3; kk++) { Assert.IsTrue(column3dTest.Tolerance.Equals(actual[ii, jj, kk], column3dTest.Expected[ii, jj, kk])); } } } } else { Assert.That(actual, Is.EquivalentTo(column3dTest.Expected)); } #endif }