This is an automated email from the ASF dual-hosted git repository. nightowl888 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/lucenenet.git
commit 2e0f25d513b5e39f80f66fca2e7d0afbe02d0331 Author: Shad Storhaug <[email protected]> AuthorDate: Wed Jun 24 06:12:04 2020 +0700 Lucene.Net.TestFramework: Optimized array asserts by first checking with J2N.Collections.ArrayEqualityComparer<T> before cascading only the failing calls to NUnit.CollectionAssert.AreEqual to generate the error message (#295, #261) --- .../Support/TestFramework/Assert.cs | 14 +++++++++++-- .../Support/JavaCompatibility/LuceneTestCase.cs | 24 ++++++++++++++-------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs b/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs index c4286c3..40334c8 100644 --- a/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs +++ b/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs @@ -284,13 +284,23 @@ namespace Lucene.Net.TestFramework // From CollectionAssert public static void AreEqual<T>(T[] expected, T[] actual) { - _NUnit.CollectionAssert.AreEqual(expected, actual); + // LUCENENET: Do the initial check with the (fast) J2N array comparison. If it fails, + // then use CollectionAssert to re-do the check in a slower way and generate the assert message. + if (!J2N.Collections.ArrayEqualityComparer<T>.OneDimensional.Equals(expected, actual)) + { + _NUnit.CollectionAssert.AreEqual(expected, actual); + } } // From CollectionAssert public static void AreEqual<T>(T[] expected, T[] actual, string message, params object[] args) { - _NUnit.CollectionAssert.AreEqual(expected, actual, message, args); + // LUCENENET: Do the initial check with the (fast) J2N array comparison. If it fails, + // then use CollectionAssert to re-do the check in a slower way and generate the assert message. + if (!J2N.Collections.ArrayEqualityComparer<T>.OneDimensional.Equals(expected, actual)) + { + _NUnit.CollectionAssert.AreEqual(expected, actual, message, args); + } } public static void AreEqual<T, S>(IDictionary<T, S> expected, IDictionary<T, S> actual) diff --git a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs index 6bbd830..0c067b0 100644 --- a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs +++ b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs @@ -80,26 +80,22 @@ namespace Lucene.Net.Util internal static void assertEquals(bool expected, bool actual) { - Assert.IsTrue(expected.Equals(actual)); - //Assert.AreEqual(expected, actual); + Assert.AreEqual(expected, actual); } internal static void assertEquals(string message, bool expected, bool actual) { - Assert.IsTrue(expected.Equals(actual), message); - //Assert.AreEqual(expected, actual, message); + Assert.AreEqual(expected, actual, message); } internal static void assertEquals(long expected, long actual) { - Assert.True(expected == actual); - //Assert.AreEqual(expected, actual); + Assert.AreEqual(expected, actual); } internal static void assertEquals(string message, long expected, long actual) { - Assert.True(expected == actual, message); - //Assert.AreEqual(expected, actual, message); + Assert.AreEqual(expected, actual, message); } internal static void assertEquals(int expected, int actual) @@ -142,6 +138,16 @@ namespace Lucene.Net.Util Assert.True(JCG.SetEqualityComparer<T>.Aggressive.Equals(expected, actual), message); } + internal static void assertEquals<T>(T[] expected, T[] actual) + { + Assert.AreEqual(expected, actual); + } + + internal static void assertEquals<T>(string message, T[] expected, T[] actual) + { + Assert.AreEqual(expected, actual, message); + } + internal static void assertEquals<T, S>(IDictionary<T, S> expected, IDictionary<T, S> actual) { Assert.AreEqual(expected, actual); @@ -189,7 +195,7 @@ namespace Lucene.Net.Util internal static void assertArrayEquals<T>(T[] a1, T[] a2) { - CollectionAssert.AreEqual(a1, a2); + Assert.AreEqual(a1, a2); } internal static void assertSame(Object expected, Object actual)
