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 04c9d1c42f24ae8a9ab8b75f1bd0c8e983feb7e4
Author: Shad Storhaug <[email protected]>
AuthorDate: Fri Jul 17 05:35:20 2020 +0700

    PERFORMANCE: Lucene.Net.TestFramework: Refactored Assert class to test for 
additional conditions locally, since NUnit is extremely slow when calling some 
methods in a tight loop. Eliminated object overloads and changed to generic to 
enforce comparing similar types by default unless opting in by specifying 
object as the generic type.
---
 .../Support/TestFramework/Assert.cs                | 169 +++++++++++++--------
 .../Support/JavaCompatibility/LuceneTestCase.cs    |  18 ++-
 .../Taxonomy/TestTaxonomyFacetCounts.cs            |   2 +-
 .../Taxonomy/TestTaxonomyFacetCounts2.cs           |  26 ++--
 src/Lucene.Net.Tests.Grouping/TestGrouping.cs      |   4 +-
 .../SessionTokenTest.cs                            |   6 +-
 .../Support/TestApiConsistency.cs                  |   2 +-
 .../TokenAttributes/TestCharTermAttributeImpl.cs   |   4 +-
 .../Index/TestIndexWriterForceMerge.cs             |   1 +
 src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs          |   2 +-
 src/Lucene.Net.Tests/Util/TestBytesRef.cs          |   2 +-
 src/Lucene.Net.Tests/Util/TestNumericUtils.cs      |   1 -
 12 files changed, 145 insertions(+), 92 deletions(-)

diff --git a/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs 
b/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs
index 08ed9cb..cbf4e13 100644
--- a/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs
+++ b/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs
@@ -3,6 +3,7 @@ using Lucene.Net.Support;
 using Lucene.Net.Support.IO;
 using System;
 using System.Collections.Generic;
+using System.Globalization;
 using System.Linq;
 using _NUnit = NUnit.Framework;
 using JCG = J2N.Collections.Generic;
@@ -31,6 +32,8 @@ namespace Lucene.Net.TestFramework
     /// </summary>
     internal partial class Assert
     {
+        private const string FailureFormat = "Expected: {0}, Actual: {1}";
+
         //
         // Summary:
         //     We don't actually want any instances of this object, but some 
people like to
@@ -52,9 +55,10 @@ namespace Lucene.Net.TestFramework
         //
         //   actual:
         //     The actual value
-        public static void AreEqual(object expected, object actual)
+        public static void AreEqual<T>(T expected, T actual)
         {
-            _NUnit.Assert.AreEqual(expected, actual);
+            if (!JCG.EqualityComparer<T>.Default.Equals(expected, actual))
+                Fail(FailureFormat, expected, actual);
         }
         //
         // Summary:
@@ -75,10 +79,53 @@ namespace Lucene.Net.TestFramework
         //
         //   args:
         //     Array of objects to be used in formatting the message
-        public static void AreEqual(object expected, object actual, string 
message, params object[] args)
+        public static void AreEqual<T>(T expected, T actual, string message, 
params object[] args)
         {
-            _NUnit.Assert.AreEqual(expected, actual, message, args);
+            if (!JCG.EqualityComparer<T>.Default.Equals(expected, actual))
+                Fail(string.Concat(string.Format(FailureFormat, expected, 
actual), Environment.NewLine, Environment.NewLine, string.Format(message, 
args)));
         }
+
+        //
+        // Summary:
+        //     Verifies that two objects are equal. Two objects are considered 
equal if both
+        //     are null, or if both have the same value. NUnit has special 
semantics for some
+        //     object types. If they are not equal an 
NUnit.Framework.AssertionException is
+        //     thrown.
+        //
+        // Parameters:
+        //   expected:
+        //     The value that is expected
+        //
+        //   actual:
+        //     The actual value
+        public static void AreEqual(string expected, string actual)
+        {
+            if (!StringComparer.Ordinal.Equals(expected, actual))
+                Fail(FailureFormat, expected, actual);
+        }
+
+        //
+        // Summary:
+        //     Verifies that two objects are equal. Two objects are considered 
equal if both
+        //     are null, or if both have the same value. NUnit has special 
semantics for some
+        //     object types. If they are not equal an 
NUnit.Framework.AssertionException is
+        //     thrown.
+        //
+        // Parameters:
+        //   expected:
+        //     The value that is expected
+        //
+        //   message:
+        //     The message to display in case of failure
+        //
+        //   actual:
+        //     The actual value
+        public static void AreEqual(string expected, string actual, string 
message, params object[] args)
+        {
+            if (!StringComparer.Ordinal.Equals(expected, actual))
+                Fail(string.Concat(string.Format(FailureFormat, expected, 
actual), Environment.NewLine, Environment.NewLine, string.Format(message, 
args)));
+        }
+
         //
         // Summary:
         //     Verifies that two objects are equal. Two objects are considered 
equal if both
@@ -94,7 +141,8 @@ namespace Lucene.Net.TestFramework
         //     The actual value
         public static void AreEqual(bool expected, bool actual)
         {
-            _NUnit.Assert.IsTrue(expected.Equals(actual));
+            if (!expected.Equals(actual))
+                Fail(FailureFormat, expected, actual);
         }
         //
         // Summary:
@@ -117,8 +165,10 @@ namespace Lucene.Net.TestFramework
         //     Array of objects to be used in formatting the message
         public static void AreEqual(bool expected, bool actual, string 
message, params object[] args)
         {
-            _NUnit.Assert.IsTrue(expected.Equals(actual), message, args);
+            if (!expected.Equals(actual))
+                Fail(string.Concat(string.Format(FailureFormat, expected, 
actual), Environment.NewLine, Environment.NewLine, string.Format(message, 
args)));
         }
+
         //
         // Summary:
         //     Verifies that two doubles are equal considering a delta. If the 
expected value
@@ -142,7 +192,8 @@ namespace Lucene.Net.TestFramework
         //     Array of objects to be used in formatting the message
         public static void AreEqual(double expected, double actual, double 
delta, string message, params object[] args)
         {
-            _NUnit.Assert.AreEqual(expected, actual, delta, message, args);
+            if (Math.Abs(expected - actual) > delta)
+                _NUnit.Assert.AreEqual(expected, actual, delta, message, args);
         }
         //
         // Summary:
@@ -161,7 +212,8 @@ namespace Lucene.Net.TestFramework
         //     The maximum acceptable difference between the the expected and 
the actual
         public static void AreEqual(double expected, double actual, double 
delta)
         {
-            _NUnit.Assert.AreEqual(expected, actual, delta);
+            if (Math.Abs(expected - actual) > delta)
+                _NUnit.Assert.AreEqual(expected, actual, delta);
         }
         //
         // Summary:
@@ -187,9 +239,7 @@ namespace Lucene.Net.TestFramework
         public static void AreEqual(float expected, float actual, float delta, 
string message, params object[] args)
         {
             if (Math.Abs(expected - actual) > delta)
-            {
                 _NUnit.Assert.AreEqual(expected, actual, delta, message, args);
-            }
         }
         //
         // Summary:
@@ -209,9 +259,7 @@ namespace Lucene.Net.TestFramework
         public static void AreEqual(float expected, float actual, float delta)
         {
             if (Math.Abs(expected - actual) > delta)
-            {
                 _NUnit.Assert.AreEqual(expected, actual, delta);
-            }
         }
         //
         // Summary:
@@ -228,7 +276,8 @@ namespace Lucene.Net.TestFramework
         //     The actual value
         public static void AreEqual(int expected, int actual)
         {
-            _NUnit.Assert.True(expected.Equals(actual));
+            if (!expected.Equals(actual))
+                Fail(FailureFormat, expected, actual);
         }
 
         //
@@ -247,9 +296,10 @@ namespace Lucene.Net.TestFramework
         //
         //   actual:
         //     The actual value
-        public static void AreEqual(int expected, int actual, string message)
+        public static void AreEqual(int expected, int actual, string message, 
params object[] args)
         {
-            _NUnit.Assert.True(expected.Equals(actual), message);
+            if (!expected.Equals(actual))
+                Fail(string.Concat(string.Format(FailureFormat, expected, 
actual), Environment.NewLine, Environment.NewLine, string.Format(message, 
args)));
         }
 
         //
@@ -267,7 +317,8 @@ namespace Lucene.Net.TestFramework
         //     The actual value
         public static void AreEqual(long expected, long actual)
         {
-            _NUnit.Assert.True(expected.Equals(actual));
+            if (!expected.Equals(actual))
+                Fail(FailureFormat, expected, actual);
         }
 
         //
@@ -286,9 +337,10 @@ namespace Lucene.Net.TestFramework
         //
         //   actual:
         //     The actual value
-        public static void AreEqual(long expected, long actual, string message)
+        public static void AreEqual(long expected, long actual, string 
message, params object[] args)
         {
-            _NUnit.Assert.True(expected.Equals(actual), message);
+            if (!expected.Equals(actual))
+                Fail(string.Concat(string.Format(FailureFormat, expected, 
actual), Environment.NewLine, Environment.NewLine, string.Format(message, 
args)));
         }
 
         //
@@ -306,7 +358,8 @@ namespace Lucene.Net.TestFramework
         //     The actual value
         public static void AreEqual(byte expected, byte actual)
         {
-            _NUnit.Assert.True(expected.Equals(actual));
+            if (!expected.Equals(actual))
+                Fail(FailureFormat, expected, actual);
         }
 
         //
@@ -325,9 +378,10 @@ namespace Lucene.Net.TestFramework
         //
         //   actual:
         //     The actual value
-        public static void AreEqual(byte expected, byte actual, string message)
+        public static void AreEqual(byte expected, byte actual, string 
message, params object[] args)
         {
-            _NUnit.Assert.True(expected.Equals(actual), message);
+            if (!expected.Equals(actual))
+                Fail(string.Concat(string.Format(FailureFormat, expected, 
actual), Environment.NewLine, Environment.NewLine, string.Format(message, 
args)));
         }
 
 
@@ -360,74 +414,55 @@ namespace Lucene.Net.TestFramework
         public static void AreEqual<T>(ISet<T> expected, ISet<T> actual, bool 
aggressive = true)
         {
             if (!GetSetComparer<T>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail("Expected: '{0}', Actual: '{1}'", 
FormatCollection(expected), FormatCollection(actual));
-            }
+                Fail(FailureFormat, FormatCollection(expected), 
FormatCollection(actual));
         }
 
         public static void AreEqual<T>(ISet<T> expected, ISet<T> actual, bool 
aggressive, string message, params object[] args)
         {
             if (!GetSetComparer<T>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail(message, args);
-            }
+                Fail(string.Concat(string.Format(FailureFormat, 
FormatCollection(expected), FormatCollection(actual)), Environment.NewLine, 
Environment.NewLine, string.Format(message, args)));
         }
 
         public static void AreEqual<T>(ISet<T> expected, ISet<T> actual, bool 
aggressive, Func<string> getMessage)
         {
             if (!GetSetComparer<T>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail(getMessage());
-            }
+                Fail(string.Concat(string.Format(FailureFormat, 
FormatCollection(expected), FormatCollection(actual)), Environment.NewLine, 
Environment.NewLine, getMessage()));
         }
 
         public static void AreEqual<T>(IList<T> expected, IList<T> actual, 
bool aggressive = true)
         {
             if (!GetListComparer<T>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail("Expected: '{0}', Actual: '{1}'", 
FormatCollection(expected), FormatCollection(actual));
-            }
-
+                Fail(string.Format(FailureFormat, FormatCollection(expected), 
FormatCollection(actual)));
         }
 
         public static void AreEqual<T>(IList<T> expected, IList<T> actual, 
bool aggressive, string message, params object[] args)
         {
             if (!GetListComparer<T>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail(message, args);
-            }
+                Fail(string.Concat(string.Format(FailureFormat, 
FormatCollection(expected), FormatCollection(actual)), Environment.NewLine, 
Environment.NewLine, string.Format(message, args)));
         }
 
         public static void AreEqual<T>(IList<T> expected, IList<T> actual, 
bool aggressive, Func<string> getMessage)
         {
             if (!GetListComparer<T>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail(getMessage());
-            }
+                Fail(string.Concat(string.Format(FailureFormat, 
FormatCollection(expected), FormatCollection(actual)), Environment.NewLine, 
Environment.NewLine, getMessage()));
         }
 
         public static void AreEqual<TKey, TValue>(IDictionary<TKey, TValue> 
expected, IDictionary<TKey, TValue> actual, bool aggressive = true)
         {
             if (!GetDictionaryComparer<TKey, 
TValue>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail("Expected: '{0}', Actual: '{1}'", 
FormatCollection(expected), FormatCollection(actual));
-            }
+                Fail(FailureFormat, FormatCollection(expected), 
FormatCollection(actual));
         } 
 
         public static void AreEqual<TKey, TValue>(IDictionary<TKey, TValue> 
expected, IDictionary<TKey, TValue> actual, bool aggressive, string message, 
params object[] args)
         {
             if (!GetDictionaryComparer<TKey, 
TValue>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail(message, args);
-            }
+                Fail(string.Concat(string.Format(FailureFormat, 
FormatCollection(expected), FormatCollection(actual)), Environment.NewLine, 
Environment.NewLine, string.Format(message, args)));
         }
 
         public static void AreEqual<TKey, TValue>(IDictionary<TKey, TValue> 
expected, IDictionary<TKey, TValue> actual, bool aggressive, Func<string> 
getMessage)
         {
             if (!GetDictionaryComparer<TKey, 
TValue>(aggressive).Equals(expected, actual))
-            {
-                _NUnit.Assert.Fail(getMessage());
-            }
+                Fail(string.Concat(string.Format(FailureFormat, 
FormatCollection(expected), FormatCollection(actual)), Environment.NewLine, 
Environment.NewLine, getMessage()));
         }
 
 
@@ -435,18 +470,14 @@ namespace Lucene.Net.TestFramework
         public static void AreEqual<T>(T[] expected, T[] actual)
         {
             if 
(!J2N.Collections.ArrayEqualityComparer<T>.OneDimensional.Equals(expected, 
actual))
-            {
-                _NUnit.Assert.Fail("Expected: '{0}', Actual: '{1}'", 
FormatCollection(expected), FormatCollection(actual));
-            }
+                Fail(FailureFormat, FormatCollection(expected), 
FormatCollection(actual));
         }
 
         // From CollectionAssert
         public static void AreEqual<T>(T[] expected, T[] actual, string 
message, params object[] args)
         {
             if 
(!J2N.Collections.ArrayEqualityComparer<T>.OneDimensional.Equals(expected, 
actual))
-            {
-                _NUnit.Assert.Fail(message, args);
-            }
+                Fail(string.Concat(string.Format(FailureFormat, 
FormatCollection(expected), FormatCollection(actual)), Environment.NewLine, 
Environment.NewLine, string.Format(message, args)));
         }
 
         //
@@ -603,7 +634,8 @@ namespace Lucene.Net.TestFramework
         //     Array of objects to be used in formatting the message
         public static void False(bool condition, string message, params 
object[] args)
         {
-            _NUnit.Assert.False(condition, message, args);
+            if (condition)
+                _NUnit.Assert.Fail(message, args);
         }
         //
         // Summary:
@@ -615,7 +647,8 @@ namespace Lucene.Net.TestFramework
         //     The evaluated condition
         public static void False(bool condition)
         {
-            _NUnit.Assert.False(condition);
+            if (condition)
+                _NUnit.Assert.Fail("Expected: False  Actual: True");
         }
 
         //
@@ -628,7 +661,8 @@ namespace Lucene.Net.TestFramework
         //     The evaluated condition
         public static void IsFalse(bool condition)
         {
-            _NUnit.Assert.IsFalse(condition);
+            if (condition)
+                _NUnit.Assert.Fail("Expected: False  Actual: True");
         }
 
         //
@@ -647,7 +681,8 @@ namespace Lucene.Net.TestFramework
         //     Array of objects to be used in formatting the message
         public static void IsFalse(bool condition, string message, params 
object[] args)
         {
-            _NUnit.Assert.IsFalse(condition, message, args);
+            if (condition)
+                _NUnit.Assert.Fail(message, args);
         }
 
         //
@@ -727,7 +762,8 @@ namespace Lucene.Net.TestFramework
         //     Array of objects to be used in formatting the message
         public static void IsTrue(bool condition, string message, params 
object[] args)
         {
-            _NUnit.Assert.IsTrue(condition, message, args);
+            if (!condition)
+                _NUnit.Assert.Fail(message, args);
         }
 
         //
@@ -740,7 +776,8 @@ namespace Lucene.Net.TestFramework
         //     The evaluated condition
         public static void IsTrue(bool condition)
         {
-            _NUnit.Assert.IsTrue(condition);
+            if (!condition)
+                _NUnit.Assert.Fail("Expected: True  Actual: False");
         }
 
         //
@@ -821,7 +858,8 @@ namespace Lucene.Net.TestFramework
         //     Array of objects to be used in formatting the message
         public static void True(bool condition, string message, params 
object[] args)
         {
-            _NUnit.Assert.True(condition, message, args);
+            if (!condition)
+                _NUnit.Assert.Fail(message, args);
         }
 
         //
@@ -834,7 +872,8 @@ namespace Lucene.Net.TestFramework
         //     The evaluated condition
         public static void True(bool condition)
         {
-            _NUnit.Assert.True(condition);
+            if (!condition)
+                _NUnit.Assert.Fail("Expected: True  Actual: False");
         }
 
 
@@ -848,7 +887,7 @@ namespace Lucene.Net.TestFramework
             _NUnit.Assert.Greater(arg1, arg2);
         }
 
-        public static Exception Throws<TException>(Action action, string 
message, params string[] args)
+        public static Exception Throws<TException>(Action action, string 
message, params object[] args)
         {
             return Throws(typeof(TException), action, message, args);
         }
@@ -863,7 +902,7 @@ namespace Lucene.Net.TestFramework
             return _NUnit.Assert.Throws(expectedExceptionType, () => action());
         }
 
-        public static Exception Throws(Type expectedExceptionType, Action 
action, string message, params string[] args)
+        public static Exception Throws(Type expectedExceptionType, Action 
action, string message, params object[] args)
         {
             return _NUnit.Assert.Throws(expectedExceptionType, () => action(), 
message, args);
         }
diff --git 
a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs 
b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs
index e267119..0782bb6 100644
--- a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs
@@ -68,12 +68,22 @@ namespace Lucene.Net.Util
             Assert.IsFalse(condition, message);
         }
 
-        internal static void assertEquals(object expected, object actual)
+        internal static void assertEquals<T>(T expected, T actual)
         {
             Assert.AreEqual(expected, actual);
         }
 
-        internal static void assertEquals(string message, object expected, 
object actual)
+        internal static void assertEquals<T>(string message, T expected, T 
actual)
+        {
+            Assert.AreEqual(expected, actual, message);
+        }
+
+        internal static void assertEquals(string expected, string actual)
+        {
+            Assert.AreEqual(expected, actual);
+        }
+
+        internal static void assertEquals(string message, string expected, 
string actual)
         {
             Assert.AreEqual(expected, actual, message);
         }
@@ -213,12 +223,12 @@ namespace Lucene.Net.Util
             Assert.AreEqual(a1, a2);
         }
 
-        internal static void assertSame(Object expected, Object actual)
+        internal static void assertSame(object expected, object actual)
         {
             Assert.AreSame(expected, actual);
         }
 
-        internal static void assertSame(string message, Object expected, 
Object actual)
+        internal static void assertSame(string message, object expected, 
object actual)
         {
             Assert.AreSame(expected, actual, message);
         }
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs 
b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs
index be5d70f..a2fe4c1 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs
@@ -683,7 +683,7 @@ namespace Lucene.Net.Facet.Taxonomy
             Facets facets = GetTaxonomyFacetCounts(taxoReader, config, sfc);
             IList<FacetResult> res1 = facets.GetAllDims(10);
             IList<FacetResult> res2 = facets.GetAllDims(10);
-            Assert.AreEqual(res1, res2, "calling getFacetResults twice should 
return the .equals()=true result");
+            Assert.AreEqual(res1, res2, aggressive: false, "calling 
getFacetResults twice should return the .equals()=true result");
 
             IOUtils.Dispose(taxoWriter, iw, taxoReader, taxoDir, r, indexDir);
         }
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts2.cs 
b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts2.cs
index dba7829..4bf4ca2 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts2.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts2.cs
@@ -297,13 +297,13 @@ namespace Lucene.Net.Facet.Taxonomy
             Assert.AreEqual(-1, (int)result.Value);
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(termExpectedCounts[CP_A + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(termExpectedCounts[CP_A + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
             }
             result = facets.GetTopChildren(NUM_CHILDREN_CP_B, CP_B);
-            Assert.AreEqual(termExpectedCounts[CP_B], result.Value);
+            Assert.AreEqual(termExpectedCounts[CP_B].GetValueOrDefault(), 
result.Value);
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(termExpectedCounts[CP_B + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(termExpectedCounts[CP_B + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
             }
 
             IOUtils.Dispose(indexReader, taxoReader);
@@ -326,17 +326,17 @@ namespace Lucene.Net.Facet.Taxonomy
             int prevValue = int.MaxValue;
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(allExpectedCounts[CP_A + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(allExpectedCounts[CP_A + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
                 Assert.True((int)labelValue.Value <= prevValue, "wrong sort 
order of sub results: labelValue.value=" + labelValue.Value + " prevValue=" + 
prevValue);
                 prevValue = (int)labelValue.Value;
             }
 
             result = facets.GetTopChildren(NUM_CHILDREN_CP_B, CP_B);
-            Assert.AreEqual(allExpectedCounts[CP_B], result.Value);
+            Assert.AreEqual(allExpectedCounts[CP_B].GetValueOrDefault(), 
result.Value);
             prevValue = int.MaxValue;
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(allExpectedCounts[CP_B + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(allExpectedCounts[CP_B + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
                 Assert.True((int)labelValue.Value <= prevValue, "wrong sort 
order of sub results: labelValue.value=" + labelValue.Value + " prevValue=" + 
prevValue);
                 prevValue = (int)labelValue.Value;
             }
@@ -360,13 +360,13 @@ namespace Lucene.Net.Facet.Taxonomy
             Assert.AreEqual(-1, (int)result.Value);
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(allExpectedCounts[CP_A + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(allExpectedCounts[CP_A + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
             }
             result = facets.GetTopChildren(int.MaxValue, CP_B);
-            Assert.AreEqual(allExpectedCounts[CP_B], result.Value);
+            Assert.AreEqual(allExpectedCounts[CP_B].GetValueOrDefault(), 
result.Value);
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(allExpectedCounts[CP_B + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(allExpectedCounts[CP_B + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
             }
 
             IOUtils.Dispose(indexReader, taxoReader);
@@ -385,16 +385,16 @@ namespace Lucene.Net.Facet.Taxonomy
             Facets facets = GetTaxonomyFacetCounts(taxoReader, Config, sfc);
 
             FacetResult result = facets.GetTopChildren(NUM_CHILDREN_CP_C, 
CP_C);
-            Assert.AreEqual(allExpectedCounts[CP_C], result.Value);
+            Assert.AreEqual(allExpectedCounts[CP_C].GetValueOrDefault(), 
result.Value);
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(allExpectedCounts[CP_C + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(allExpectedCounts[CP_C + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
             }
             result = facets.GetTopChildren(NUM_CHILDREN_CP_D, CP_D);
-            Assert.AreEqual(allExpectedCounts[CP_C], result.Value);
+            Assert.AreEqual(allExpectedCounts[CP_C].GetValueOrDefault(), 
result.Value);
             foreach (LabelAndValue labelValue in result.LabelValues)
             {
-                Assert.AreEqual(allExpectedCounts[CP_D + "/" + 
labelValue.Label], labelValue.Value);
+                Assert.AreEqual(allExpectedCounts[CP_D + "/" + 
labelValue.Label].GetValueOrDefault(), labelValue.Value);
             }
 
             IOUtils.Dispose(indexReader, taxoReader);
diff --git a/src/Lucene.Net.Tests.Grouping/TestGrouping.cs 
b/src/Lucene.Net.Tests.Grouping/TestGrouping.cs
index 3b06e52..8a0ec5e 100644
--- a/src/Lucene.Net.Tests.Grouping/TestGrouping.cs
+++ b/src/Lucene.Net.Tests.Grouping/TestGrouping.cs
@@ -317,13 +317,13 @@ namespace Lucene.Net.Search.Grouping
 
             if (group.GroupValue.GetType().IsAssignableFrom(typeof(BytesRef)))
             {
-                assertEquals(new BytesRef(expected), group.GroupValue);
+                assertEquals<object>(new BytesRef(expected), group.GroupValue);
             }
             else if 
(group.GroupValue.GetType().IsAssignableFrom(typeof(MutableValueStr)))
             {
                 MutableValueStr v = new MutableValueStr();
                 v.Value = new BytesRef(expected);
-                assertEquals(v, group.GroupValue);
+                assertEquals<object>(v, group.GroupValue);
             }
             else
             {
diff --git a/src/Lucene.Net.Tests.Replicator/SessionTokenTest.cs 
b/src/Lucene.Net.Tests.Replicator/SessionTokenTest.cs
index 03d8448..c07b11b 100644
--- a/src/Lucene.Net.Tests.Replicator/SessionTokenTest.cs
+++ b/src/Lucene.Net.Tests.Replicator/SessionTokenTest.cs
@@ -51,7 +51,11 @@ namespace Lucene.Net.Replicator
             assertEquals(session1.Version, session2.Version);
             assertEquals(1, session2.SourceFiles.Count);
             assertEquals(session1.SourceFiles.Count, 
session2.SourceFiles.Count);
-            assertEquals(session1.SourceFiles.Keys, session2.SourceFiles.Keys);
+
+            // LUCENENET: Collections don't compare automatically in .NET and 
J2N has no structural equality
+            // checking on Keys, so using CollectionAssert here. This is set
+            // equality (where order doesn't matter) because in Java the keys 
and values collections are sets.
+            CollectionAssert.AreEquivalent(session1.SourceFiles.Keys, 
session2.SourceFiles.Keys);
             IList<RevisionFile> files1 = session1.SourceFiles.Values.First();
             IList<RevisionFile> files2 = session2.SourceFiles.Values.First();
             assertEquals(files1, files2, aggressive: false);
diff --git a/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs 
b/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs
index 503aa6a..0a81377 100644
--- a/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs
@@ -39,7 +39,7 @@ namespace Lucene.Net.Tests.TestFramework
         [TestCase(typeof(Lucene.Net.RandomExtensions))]
         public override void TestPrivateFieldNames(Type typeFromTargetAssembly)
         {
-            base.TestPrivateFieldNames(typeFromTargetAssembly, 
@"ApiScanTestBase|TestUtil.MaxRecursionBound");
+            base.TestPrivateFieldNames(typeFromTargetAssembly, 
@"ApiScanTestBase|TestUtil.MaxRecursionBound|Assert.FailureFormat");
         }
 
         [Test, LuceneNetSpecific]
diff --git 
a/src/Lucene.Net.Tests/Analysis/TokenAttributes/TestCharTermAttributeImpl.cs 
b/src/Lucene.Net.Tests/Analysis/TokenAttributes/TestCharTermAttributeImpl.cs
index 8fdd621..1612f67 100644
--- a/src/Lucene.Net.Tests/Analysis/TokenAttributes/TestCharTermAttributeImpl.cs
+++ b/src/Lucene.Net.Tests/Analysis/TokenAttributes/TestCharTermAttributeImpl.cs
@@ -327,9 +327,9 @@ namespace Lucene.Net.Analysis.TokenAttributes
             //              
"01234567890123456789012345678901234567890123456789"
             
Assert.AreEqual("0123456789012345678901234567890123456789012345678934567890123456789012345678901234567890123456789",
 t.ToString());
             t.SetEmpty().Append(/*(ICharSequence)*/ new 
StringBuilder("01234567890123456789"), 5, 17 - 5); // LUCENENET: StringBuilder 
doesn't implement ICharSequence
-            Assert.AreEqual(new StringCharSequence("567890123456"), 
t.ToString());
+            Assert.AreEqual((ICharSequence)new 
StringCharSequence("567890123456"), t /*.ToString()*/);
             t.Append(new StringBuilder(t.ToString()));
-            Assert.AreEqual(new 
StringCharSequence("567890123456567890123456"), t.ToString());
+            Assert.AreEqual((ICharSequence)new 
StringCharSequence("567890123456567890123456"), t /*.ToString()*/);
             // very wierd, to test if a subSlice is wrapped correct :)
             //CharBuffer buf = 
CharBuffer.wrap("012345678901234567890123456789".ToCharArray(), 3, 15); // 
LUCENENET: No CharBuffer in .NET
             StringBuilder buf = new 
StringBuilder("012345678901234567890123456789", 3, 15, 16);
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
index e388c66..df28691 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
@@ -38,6 +38,7 @@ namespace Lucene.Net.Index
         private static readonly FieldType storedTextType = new 
FieldType(TextField.TYPE_NOT_STORED);
 
         [Test]
+        [Slow] // Occasionally
         public virtual void TestPartialMerge()
         {
             Directory dir = NewDirectory();
diff --git a/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs 
b/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
index 2d01699..ecab235 100644
--- a/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
+++ b/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
@@ -501,7 +501,7 @@ namespace Lucene.Net.Util.Fst
             dir.Dispose();
         }
 
-        private void AssertSame<T1>(TermsEnum termsEnum, BytesRefFSTEnum<T1> 
fstEnum, bool storeOrd)
+        private void AssertSame(TermsEnum termsEnum, BytesRefFSTEnum<long?> 
fstEnum, bool storeOrd) // LUCENENET specific - changed to long? so we don't 
need a cast
         {
             if (termsEnum.Term == null)
             {
diff --git a/src/Lucene.Net.Tests/Util/TestBytesRef.cs 
b/src/Lucene.Net.Tests/Util/TestBytesRef.cs
index 93b9ba3..3da8ac5 100644
--- a/src/Lucene.Net.Tests/Util/TestBytesRef.cs
+++ b/src/Lucene.Net.Tests/Util/TestBytesRef.cs
@@ -69,7 +69,7 @@ namespace Lucene.Net.Util
             for (int i = 0; i < 100; i++)
             {
                 ICharSequence s = new 
StringCharSequence(TestUtil.RandomUnicodeString(Random));
-                string s2 = (new BytesRef(s)).Utf8ToString();
+                ICharSequence s2 = (new 
BytesRef(s)).Utf8ToString().AsCharSequence();
                 Assert.AreEqual(s, s2);
             }
 
diff --git a/src/Lucene.Net.Tests/Util/TestNumericUtils.cs 
b/src/Lucene.Net.Tests/Util/TestNumericUtils.cs
index 9b1554e..f1d1d73 100644
--- a/src/Lucene.Net.Tests/Util/TestNumericUtils.cs
+++ b/src/Lucene.Net.Tests/Util/TestNumericUtils.cs
@@ -361,7 +361,6 @@ namespace Lucene.Net.Util
         }
 
         [Test]
-        [Slow]
         public virtual void TestRandomSplit()
         {
             long num = (long)AtLeast(10);

Reply via email to