This is an automated email from the ASF dual-hosted git repository.

paulirwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git


The following commit(s) were added to refs/heads/master by this push:
     new 3729f4ce8 Tests: Review T-Z Tests, #259 (#897)
3729f4ce8 is described below

commit 3729f4ce8a9a456588ffd7888c1238e75864f11f
Author: Paul Irwin <[email protected]>
AuthorDate: Mon Jan 22 10:51:38 2024 -0700

    Tests: Review T-Z Tests, #259 (#897)
    
    * Tests: Review T-Z Tests, #259
    
    - This addresses some formatting disparities between the Java and C#
      tests to help make them more line-to-line matching.
    - Comments added in places where our tests differ from upstream.
    - RandomizedTesting.Generators extension method import moved behind a
      `#if !NET6_0_OR_GREATER` check, as the namespace was being ignored on
      .NET 6+ in a few files since .NET 6 added a Random.NextInt64 method.
      This will help prevent other contributors from thinking this namespace
      is not needed.
    - A unit test assertion bug on arm64 with division by zero is fixed.
    - The `build` file has been chmod'ed +x for ease of use
    - Rider IDE files added
    
    * Update AssertSorted method to better match Lucene, reduce allocations, 
#259
    
    * Add feature for .NET 6+ Random methods and change #if to use it, #259
    
    * Fix XML docs for TestBytesRefHash, #259
    
    * Update .editorconfig to use new lines at end of file
---
 .editorconfig                                      |  4 +-
 .idea/.idea.Lucene.Net/.idea/.gitignore            | 13 +++++
 .idea/.idea.Lucene.Net/.idea/.name                 |  1 +
 .idea/.idea.Lucene.Net/.idea/encodings.xml         |  4 ++
 .idea/.idea.Lucene.Net/.idea/indexLayout.xml       |  8 +++
 .idea/.idea.Lucene.Net/.idea/vcs.xml               |  6 +++
 Directory.Build.targets                            |  1 +
 build                                              |  0
 .../JS/TestJavascriptOperations.cs                 | 19 +++++--
 .../Util/Automaton/TestBasicOperations.cs          |  2 +-
 .../Util/Automaton/TestCompiledAutomaton.cs        |  3 +-
 .../Util/Automaton/TestDeterminism.cs              |  4 +-
 .../Util/Automaton/TestDeterminizeLexicon.cs       |  2 +-
 .../Util/Automaton/TestLevenshteinAutomata.cs      |  4 +-
 .../Util/Automaton/TestMinimize.cs                 |  5 +-
 .../Util/Automaton/TestSpecialOperations.cs        |  2 +-
 .../Util/Automaton/TestUTF32ToUTF8.cs              |  4 +-
 src/Lucene.Net.Tests/Util/BaseSortTestCase.cs      | 58 +++++++++++-----------
 src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs         |  7 ++-
 src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs    |  2 +-
 src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs          | 50 +++++++++----------
 .../Util/Packed/TestEliasFanoDocIdSet.cs           |  7 ++-
 .../Util/Packed/TestEliasFanoSequence.cs           |  4 +-
 src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs |  7 ++-
 .../Util/StressRamUsageEstimator.cs                | 32 ++++++++----
 src/Lucene.Net.Tests/Util/Test2BPagedBytes.cs      | 10 ++--
 src/Lucene.Net.Tests/Util/TestArrayUtil.cs         |  2 +-
 src/Lucene.Net.Tests/Util/TestAttributeSource.cs   |  2 +-
 src/Lucene.Net.Tests/Util/TestBroadWord.cs         | 15 ++++--
 src/Lucene.Net.Tests/Util/TestByteBlockPool.cs     |  4 +-
 src/Lucene.Net.Tests/Util/TestBytesRef.cs          | 10 ++--
 src/Lucene.Net.Tests/Util/TestBytesRefArray.cs     | 15 +++---
 src/Lucene.Net.Tests/Util/TestBytesRefHash.cs      | 28 ++++++-----
 src/Lucene.Net.Tests/Util/TestCharsRef.cs          |  4 +-
 .../Util/TestCloseableThreadLocal.cs               |  7 ++-
 src/Lucene.Net.Tests/Util/TestCollectionUtil.cs    |  3 +-
 src/Lucene.Net.Tests/Util/TestConstants.cs         | 15 ++++--
 src/Lucene.Net.Tests/Util/TestDocIdBitSet.cs       |  4 +-
 .../Util/TestDoubleBarrelLRUCache.cs               |  7 +--
 .../Util/TestFieldCacheSanityChecker.cs            |  3 +-
 src/Lucene.Net.Tests/Util/TestFilterIterator.cs    | 13 +++--
 src/Lucene.Net.Tests/Util/TestFixedBitSet.cs       |  6 +--
 src/Lucene.Net.Tests/Util/TestIOUtils.cs           | 10 ++--
 src/Lucene.Net.Tests/Util/TestIdentityHashSet.cs   |  2 +-
 .../Util/TestInPlaceMergeSorter.cs                 |  5 +-
 .../Util/TestIndexableBinaryStringTools.cs         | 35 ++++++++++---
 src/Lucene.Net.Tests/Util/TestIntroSorter.cs       |  5 +-
 src/Lucene.Net.Tests/Util/TestIntsRef.cs           |  2 +-
 src/Lucene.Net.Tests/Util/TestLongBitSet.cs        |  8 +--
 src/Lucene.Net.Tests/Util/TestMathUtil.cs          |  6 ++-
 src/Lucene.Net.Tests/Util/TestMergedIterator.cs    | 15 +++---
 src/Lucene.Net.Tests/Util/TestNamedSPILoader.cs    |  2 +-
 src/Lucene.Net.Tests/Util/TestNumericUtils.cs      |  2 +-
 src/Lucene.Net.Tests/Util/TestOfflineSorter.cs     |  2 +-
 src/Lucene.Net.Tests/Util/TestOpenBitSet.cs        |  2 +-
 src/Lucene.Net.Tests/Util/TestPForDeltaDocIdSet.cs |  2 +-
 src/Lucene.Net.Tests/Util/TestPagedBytes.cs        | 30 +++++------
 src/Lucene.Net.Tests/Util/TestPriorityQueue.cs     | 10 ++--
 src/Lucene.Net.Tests/Util/TestQueryBuilder.cs      |  5 +-
 src/Lucene.Net.Tests/Util/TestRamUsageEstimator.cs |  4 +-
 .../Util/TestRamUsageEstimatorOnWildAnimals.cs     |  2 +-
 .../Util/TestRecyclingByteBlockAllocator.cs        |  6 +--
 .../Util/TestRecyclingIntBlockAllocator.cs         |  3 +-
 src/Lucene.Net.Tests/Util/TestRollingBuffer.cs     |  2 +-
 src/Lucene.Net.Tests/Util/TestSentinelIntSet.cs    |  2 +-
 src/Lucene.Net.Tests/Util/TestSetOnce.cs           |  7 ++-
 src/Lucene.Net.Tests/Util/TestSloppyMath.cs        |  2 +-
 src/Lucene.Net.Tests/Util/TestSmallFloat.cs        |  2 +-
 src/Lucene.Net.Tests/Util/TestStringHelper.cs      |  2 +-
 src/Lucene.Net.Tests/Util/TestTimSorter.cs         |  2 +-
 src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs       |  2 +-
 src/Lucene.Net.Tests/Util/TestVersion.cs           |  2 +-
 src/Lucene.Net.Tests/Util/TestVersionComparator.cs |  2 +-
 src/Lucene.Net.Tests/Util/TestVirtualMethod.cs     |  2 +-
 src/Lucene.Net.Tests/Util/TestWAH8DocIdSet.cs      | 12 +++--
 75 files changed, 346 insertions(+), 248 deletions(-)

diff --git a/.editorconfig b/.editorconfig
index 46bd2ece8..090a23087 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -4,6 +4,8 @@
 [*]
 charset = utf-8-bom
 trim_trailing_whitespace = true
+insert_final_newline = true
+resharper_enforce_empty_line_at_end_of_file = true
 
 [*.md]
 indent_style = space
@@ -189,4 +191,4 @@ dotnet_diagnostic.IDE0070.severity = none
 ### SonarCloud Issues ###
 
 # S907: Remove this use of 'goto'
-dotnet_diagnostic.S907.severity = none
\ No newline at end of file
+dotnet_diagnostic.S907.severity = none
diff --git a/.idea/.idea.Lucene.Net/.idea/.gitignore 
b/.idea/.idea.Lucene.Net/.idea/.gitignore
new file mode 100644
index 000000000..e4c6e3370
--- /dev/null
+++ b/.idea/.idea.Lucene.Net/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/contentModel.xml
+/.idea.Lucene.Net.iml
+/projectSettingsUpdater.xml
+/modules.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.Lucene.Net/.idea/.name 
b/.idea/.idea.Lucene.Net/.idea/.name
new file mode 100644
index 000000000..79a5e0998
--- /dev/null
+++ b/.idea/.idea.Lucene.Net/.idea/.name
@@ -0,0 +1 @@
+Lucene.Net
\ No newline at end of file
diff --git a/.idea/.idea.Lucene.Net/.idea/encodings.xml 
b/.idea/.idea.Lucene.Net/.idea/encodings.xml
new file mode 100644
index 000000000..df87cf951
--- /dev/null
+++ b/.idea/.idea.Lucene.Net/.idea/encodings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with 
no BOM otherwise" />
+</project>
\ No newline at end of file
diff --git a/.idea/.idea.Lucene.Net/.idea/indexLayout.xml 
b/.idea/.idea.Lucene.Net/.idea/indexLayout.xml
new file mode 100644
index 000000000..7b08163ce
--- /dev/null
+++ b/.idea/.idea.Lucene.Net/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="UserContentModel">
+    <attachedFolders />
+    <explicitIncludes />
+    <explicitExcludes />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/.idea.Lucene.Net/.idea/vcs.xml 
b/.idea/.idea.Lucene.Net/.idea/vcs.xml
new file mode 100644
index 000000000..35eb1ddfb
--- /dev/null
+++ b/.idea/.idea.Lucene.Net/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 92406f90f..c39e315ef 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -26,6 +26,7 @@
   <PropertyGroup Condition=" $(TargetFramework.StartsWith('net6.')) Or 
$(TargetFramework.StartsWith('net7.')) ">
 
     
<DefineConstants>$(DefineConstants);FEATURE_SPANFORMATTABLE</DefineConstants>
+    
<DefineConstants>$(DefineConstants);FEATURE_RANDOM_NEXTINT64_NEXTSINGLE</DefineConstants>
 
   </PropertyGroup>
 
diff --git a/build b/build
old mode 100644
new mode 100755
diff --git a/src/Lucene.Net.Tests.Expressions/JS/TestJavascriptOperations.cs 
b/src/Lucene.Net.Tests.Expressions/JS/TestJavascriptOperations.cs
index 2422201cd..2bcea6cc3 100644
--- a/src/Lucene.Net.Tests.Expressions/JS/TestJavascriptOperations.cs
+++ b/src/Lucene.Net.Tests.Expressions/JS/TestJavascriptOperations.cs
@@ -1,5 +1,7 @@
 using Lucene.Net.Util;
 using NUnit.Framework;
+using System;
+using System.Runtime.InteropServices;
 using Assert = Lucene.Net.TestFramework.Assert;
 
 namespace Lucene.Net.Expressions.JS
@@ -23,7 +25,7 @@ namespace Lucene.Net.Expressions.JS
 
     public class TestJavascriptOperations : LuceneTestCase
     {
-        
+
         private void AssertEvaluatesTo(string expression, long expected)
         {
             Expression evaluator = JavascriptCompiler.Compile(expression);
@@ -91,8 +93,17 @@ namespace Lucene.Net.Expressions.JS
             AssertEvaluatesTo("10/5/2", 1);
             AssertEvaluatesTo("(27/9)/3", 1);
             AssertEvaluatesTo("27/(9/3)", 9);
-            //.NET Port division overflow cast to double evals to long.MinValue
-            AssertEvaluatesTo("1/0", -9223372036854775808);
+            // LUCENENET: division overflow cast to double then to long 
evaluates to long.MinValue, except on arm64
+            // where it matches Java's behavior and Lucene's assertion. This 
only happens with the conv.i8 opcode with
+            // positive infinity on the stack. 1.0 / 0.0 == 
double.PositiveInfinity. In C#, if you cast
+            // double.PositiveInfinity to long in an unchecked context it 
returns 0. The C# spec for conversion in an
+            // unchecked context from double to long states "If the value of 
the operand is NaN or infinite, the result
+            // of the conversion is an unspecified value of the destination 
type." Likewise, the docs for conv.i8 state
+            // "If overflow occurs converting a floating-point type to an 
integer the value returned is unspecified."
+            // Essentially this is undefined behavior, so we are going to 
assert an architecture-specific value
+            // primarily to ensure it produces something rather than throws. 
CPU architectures other than arm64, x86,
+            // and x64 may produce different results.
+            AssertEvaluatesTo("1/0", RuntimeInformation.ProcessArchitecture == 
Architecture.Arm64 ? 9223372036854775807 : -9223372036854775808);
         }
 
         [Test]
@@ -373,7 +384,7 @@ namespace Lucene.Net.Expressions.JS
             AssertEvaluatesTo("0X0", 0);
             AssertEvaluatesTo("0X1", 1);
             AssertEvaluatesTo("0XF", 15);
-            AssertEvaluatesTo("0X1234ABCDEF", 78193085935L);  
+            AssertEvaluatesTo("0X1234ABCDEF", 78193085935L);
         }
 
         [Test]
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs
index 456de6e36..9879c6474 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs
@@ -180,4 +180,4 @@ namespace Lucene.Net.Util.Automaton
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs
index 1e970ad26..f882b146a 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs
@@ -2,7 +2,6 @@
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using System.Linq;
 using Assert = Lucene.Net.TestFramework.Assert;
 using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
@@ -148,4 +147,4 @@ namespace Lucene.Net.Util.Automaton
             TestFloor(c, "zzz", "goo");
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestDeterminism.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestDeterminism.cs
index aab64f616..13f3686af 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestDeterminism.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestDeterminism.cs
@@ -35,7 +35,7 @@ namespace Lucene.Net.Util.Automaton
             int num = AtLeast(500);
             for (int i = 0; i < num; i++)
             {
-                AssertAutomaton((new 
RegExp(AutomatonTestUtil.RandomRegexp(Random), 
RegExpSyntax.NONE)).ToAutomaton());
+                AssertAutomaton(new 
RegExp(AutomatonTestUtil.RandomRegexp(Random), 
RegExpSyntax.NONE).ToAutomaton());
             }
         }
 
@@ -89,4 +89,4 @@ namespace Lucene.Net.Util.Automaton
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestDeterminizeLexicon.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestDeterminizeLexicon.cs
index a468d1ea3..46794317c 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestDeterminizeLexicon.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestDeterminizeLexicon.cs
@@ -71,4 +71,4 @@ namespace Lucene.Net.Util.Automaton
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestLevenshteinAutomata.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestLevenshteinAutomata.cs
index 15074fd30..bc481d0fd 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestLevenshteinAutomata.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestLevenshteinAutomata.cs
@@ -53,7 +53,7 @@ namespace Lucene.Net.Util.Automaton
         [Test]
         public virtual void TestNoWastedStates()
         {
-            AutomatonTestUtil.AssertNoDetachedStates((new 
LevenshteinAutomata("abc", false)).ToAutomaton(1));
+            AutomatonTestUtil.AssertNoDetachedStates(new 
LevenshteinAutomata("abc", false).ToAutomaton(1));
         }
 
         /// <summary>
@@ -435,4 +435,4 @@ namespace Lucene.Net.Util.Automaton
             return Math.Abs(d[n][m]);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs
index b86b7ae40..bfb9f9181 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs
@@ -1,6 +1,5 @@
 using NUnit.Framework;
 using Assert = Lucene.Net.TestFramework.Assert;
-using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Automaton
 {
@@ -250,7 +249,7 @@ namespace Lucene.Net.Util.Automaton
         [Test]
         public virtual void TestMinimizeHuge()
         {
-            (new RegExp("+-*(A|.....|BC)*]", RegExpSyntax.NONE)).ToAutomaton();
+            new RegExp("+-*(A|.....|BC)*]", RegExpSyntax.NONE).ToAutomaton();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestSpecialOperations.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestSpecialOperations.cs
index a0af00d96..ae4a83664 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestSpecialOperations.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestSpecialOperations.cs
@@ -59,4 +59,4 @@ namespace Lucene.Net.Util.Automaton
             Assert.IsTrue(strings.Contains(duck));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs 
b/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs
index 21656909b..42e7125b2 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs
@@ -244,7 +244,7 @@ namespace Lucene.Net.Util.Automaton
             int num = AtLeast(250);
             for (int i = 0; i < num; i++)
             {
-                AssertAutomaton((new 
RegExp(AutomatonTestUtil.RandomRegexp(Random), 
RegExpSyntax.NONE)).ToAutomaton());
+                AssertAutomaton(new 
RegExp(AutomatonTestUtil.RandomRegexp(Random), 
RegExpSyntax.NONE).ToAutomaton());
             }
         }
 
@@ -286,4 +286,4 @@ namespace Lucene.Net.Util.Automaton
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/BaseSortTestCase.cs 
b/src/Lucene.Net.Tests/Util/BaseSortTestCase.cs
index 364504b9c..6ed41f97b 100644
--- a/src/Lucene.Net.Tests/Util/BaseSortTestCase.cs
+++ b/src/Lucene.Net.Tests/Util/BaseSortTestCase.cs
@@ -1,5 +1,4 @@
 using System.Collections.Generic;
-using System.Linq;
 using Lucene.Net.Support;
 using NUnit.Framework;
 using System;
@@ -44,18 +43,19 @@ namespace Lucene.Net.Util
         }
 
         private readonly bool stable;
-        private readonly Random random;
 
         protected BaseSortTestCase(bool stable)
         {
             this.stable = stable;
-            this.random = Random;
         }
 
         public abstract Sorter NewSorter(Entry[] arr);
 
+        // LUCENENET specific
         public class StableEntryComparer : IComparer<Entry>
         {
+            public static readonly StableEntryComparer Default = new 
StableEntryComparer();
+
             public int Compare(Entry a, Entry b)
             {
                 if (a.Value < b.Value) return -1;
@@ -69,7 +69,8 @@ namespace Lucene.Net.Util
         public virtual void AssertSorted(Entry[] original, Entry[] sorted)
         {
             Assert.AreEqual(original.Length, sorted.Length);
-            Entry[] stableSorted = original.OrderBy(e => e, new 
StableEntryComparer()).ToArray();
+            Entry[] stableSorted = Arrays.CopyOf(original, original.Length);
+            Array.Sort(stableSorted, StableEntryComparer.Default); // 
LUCENENET: use StableEntryComparer
             for (int i = 0; i < original.Length; ++i)
             {
                 Assert.AreEqual(stableSorted[i].Value, sorted[i].Value);
@@ -82,8 +83,8 @@ namespace Lucene.Net.Util
 
         public virtual void SortTest(Entry[] arr)
         {
-            int o = random.Next(1000);
-            var toSort = new Entry[o + arr.Length + random.Next(3)];
+            int o = Random.Next(1000);
+            var toSort = new Entry[o + arr.Length + Random.Next(3)];
             Arrays.Copy(arr, 0, toSort, o, arr.Length);
             Sorter sorter = NewSorter(toSort);
             sorter.Sort(o, o + arr.Length);
@@ -94,50 +95,47 @@ namespace Lucene.Net.Util
 
         private void RandomStrategy(Entry[] arr, int i)
         {
-            arr[i] = new Entry(random.Next(), i);
+            arr[i] = new Entry(Random.Next(), i);
         }
 
         private void RandomLowCardinalityStrategy(Entry[] arr, int i)
         {
-            arr[i] = new Entry(random.nextInt(6), i);
+            arr[i] = new Entry(Random.nextInt(6), i);
         }
 
         private void AscendingStrategy(Entry[] arr, int i)
         {
             arr[i] = i == 0
-            ? new Entry(random.nextInt(6), 0)
-            : new Entry(arr[i - 1].Value + random.nextInt(6), i);
+            ? new Entry(Random.nextInt(6), 0)
+            : new Entry(arr[i - 1].Value + Random.nextInt(6), i);
         }
 
         private void DescendingStrategy(Entry[] arr, int i)
         {
             arr[i] = i == 0
-            ? new Entry(random.nextInt(6), 0)
-            : new Entry(arr[i - 1].Value - random.nextInt(6), i);
+            ? new Entry(Random.nextInt(6), 0)
+            : new Entry(arr[i - 1].Value - Random.nextInt(6), i);
         }
-        
+
         private void StrictlyDescendingStrategy(Entry[] arr, int i)
         {
             arr[i] = i == 0
-            ? new Entry(random.nextInt(6), 0)
-            : new Entry(arr[i - 1].Value - TestUtil.NextInt32(random, 1, 5), 
i);
-            
+            ? new Entry(Random.nextInt(6), 0)
+            : new Entry(arr[i - 1].Value - TestUtil.NextInt32(Random, 1, 5), 
i);
         }
 
         private void AscendingSequencesStrategy(Entry[] arr, int i)
         {
             arr[i] = i == 0
-            ? new Entry(random.nextInt(6), 0)
-            : new Entry(Rarely(random) ? random.nextInt(1000) : arr[i - 
1].Value + random.nextInt(6), i);
-            
+            ? new Entry(Random.nextInt(6), 0)
+            : new Entry(Rarely(Random) ? Random.nextInt(1000) : arr[i - 
1].Value + Random.nextInt(6), i);
         }
-        
+
         private void MostlyAscendingStrategy(Entry[] arr, int i)
         {
             arr[i] = i == 0
-            ? new Entry(random.nextInt(6), 0)
-            : new Entry(arr[i - 1].Value + TestUtil.NextInt32(random, -8, 10), 
i);
-            
+            ? new Entry(Random.nextInt(6), 0)
+            : new Entry(arr[i - 1].Value + TestUtil.NextInt32(Random, -8, 10), 
i);
         }
 
         private void DoTest(Strategy strategy, int length)
@@ -169,7 +167,7 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestTwo()
         {
-            DoTest(RandomStrategy, 2);
+            DoTest(RandomLowCardinalityStrategy, 2);
         }
 
         [Test]
@@ -181,31 +179,31 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestRandomLowCardinality()
         {
-            DoTest(RandomLowCardinalityStrategy, 2);
+            DoTest(RandomLowCardinalityStrategy);
         }
 
         [Test]
         public virtual void TestAscending()
         {
-            DoTest(AscendingStrategy, 2);
+            DoTest(AscendingStrategy);
         }
 
         [Test]
         public virtual void TestAscendingSequences()
         {
-            DoTest(AscendingSequencesStrategy, 2);
+            DoTest(AscendingSequencesStrategy);
         }
 
         [Test]
         public virtual void TestDescending()
         {
-            DoTest(DescendingStrategy, 2);
+            DoTest(DescendingStrategy);
         }
 
         [Test]
         public virtual void TestStrictlyDescendingStrategy()
         {
-            DoTest(StrictlyDescendingStrategy, 2);
+            DoTest(StrictlyDescendingStrategy);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs 
b/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs
index 386704609..ff321b836 100644
--- a/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs
+++ b/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs
@@ -1,11 +1,14 @@
 using Lucene.Net.Support;
 using NUnit.Framework;
-using RandomizedTesting.Generators;
 using System;
 using Assert = Lucene.Net.TestFramework.Assert;
 using Console = Lucene.Net.Util.SystemConsole;
 using Int64 = J2N.Numerics.Int64;
 
+#if !FEATURE_RANDOM_NEXTINT64_NEXTSINGLE
+using RandomizedTesting.Generators; // for Random.NextInt64 extension method
+#endif
+
 namespace Lucene.Net.Util.Fst
 {
     /*
@@ -338,4 +341,4 @@ namespace Lucene.Net.Util.Fst
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs 
b/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs
index f652109d9..3f0bc4663 100644
--- a/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs
+++ b/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs
@@ -428,4 +428,4 @@ namespace Lucene.Net.Util.Fst
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs 
b/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
index 9eaa6e14a..f21e68457 100644
--- a/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
+++ b/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
@@ -2,7 +2,6 @@
 using J2N.Threading.Atomic;
 using Lucene.Net.Diagnostics;
 using Lucene.Net.Index.Extensions;
-using Lucene.Net.Support;
 using Lucene.Net.Util.Automaton;
 using NUnit.Framework;
 using RandomizedTesting.Generators;
@@ -10,7 +9,6 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
-using System.Linq;
 using System.Text;
 using Assert = Lucene.Net.TestFramework.Assert;
 using Console = Lucene.Net.Util.SystemConsole;
@@ -128,7 +126,7 @@ namespace Lucene.Net.Util.Fst
                     {
                         pairs.Add(new InputOutput<object>(term, NO_OUTPUT));
                     }
-                    FST<object> fst = (new FSTTester<object>(Random, dir, 
inputMode, pairs, outputs, false)).DoTest(0, 0, false);
+                    FST<object> fst = new FSTTester<object>(Random, dir, 
inputMode, pairs, outputs, false).DoTest(0, 0, false);
                     Assert.IsNotNull(fst);
                     Assert.AreEqual(22, fst.NodeCount);
                     Assert.AreEqual(27, fst.ArcCount);
@@ -142,7 +140,7 @@ namespace Lucene.Net.Util.Fst
                     {
                         pairs.Add(new InputOutput<Int64>(terms2[idx], idx));
                     }
-                    FST<Int64> fst = (new FSTTester<Int64>(Random, dir, 
inputMode, pairs, outputs, true)).DoTest(0, 0, false);
+                    FST<Int64> fst = new FSTTester<Int64>(Random, dir, 
inputMode, pairs, outputs, true).DoTest(0, 0, false);
                     Assert.IsNotNull(fst);
                     Assert.AreEqual(22, fst.NodeCount);
                     Assert.AreEqual(27, fst.ArcCount);
@@ -158,7 +156,7 @@ namespace Lucene.Net.Util.Fst
                         BytesRef output = Random.Next(30) == 17 ? NO_OUTPUT : 
new BytesRef(Convert.ToString(idx));
                         pairs.Add(new InputOutput<BytesRef>(terms2[idx], 
output));
                     }
-                    FST<BytesRef> fst = (new FSTTester<BytesRef>(Random, dir, 
inputMode, pairs, outputs, false)).DoTest(0, 0, false);
+                    FST<BytesRef> fst = new FSTTester<BytesRef>(Random, dir, 
inputMode, pairs, outputs, false).DoTest(0, 0, false);
                     Assert.IsNotNull(fst);
                     Assert.AreEqual(24, fst.NodeCount);
                     Assert.AreEqual(30, fst.ArcCount);
@@ -180,7 +178,7 @@ namespace Lucene.Net.Util.Fst
                 {
                     pairs.Add(new InputOutput<object>(term, NO_OUTPUT));
                 }
-                (new FSTTester<object>(Random, dir, inputMode, pairs, outputs, 
false)).DoTest(true);
+                new FSTTester<object>(Random, dir, inputMode, pairs, outputs, 
false).DoTest(true);
             }
 
             // PositiveIntOutput (ord)
@@ -191,7 +189,7 @@ namespace Lucene.Net.Util.Fst
                 {
                     pairs.Add(new InputOutput<Int64>(terms[idx], idx));
                 }
-                (new FSTTester<Int64>(Random, dir, inputMode, pairs, outputs, 
true)).DoTest(true);
+                new FSTTester<Int64>(Random, dir, inputMode, pairs, outputs, 
true).DoTest(true);
             }
 
             // PositiveIntOutput (random monotonically increasing positive 
number)
@@ -205,7 +203,7 @@ namespace Lucene.Net.Util.Fst
                     lastOutput = value;
                     pairs.Add(new InputOutput<Int64>(terms[idx], value));
                 }
-                (new FSTTester<Int64>(Random, dir, inputMode, pairs, outputs, 
true)).DoTest(true);
+                new FSTTester<Int64>(Random, dir, inputMode, pairs, outputs, 
true).DoTest(true);
             }
 
             // PositiveIntOutput (random positive number)
@@ -216,7 +214,7 @@ namespace Lucene.Net.Util.Fst
                 {
                     pairs.Add(new InputOutput<Int64>(terms[idx], 
TestUtil.NextInt64(Random, 0, long.MaxValue)));
                 }
-                (new FSTTester<Int64>(Random, dir, inputMode, pairs, outputs, 
false)).DoTest(true);
+                new FSTTester<Int64>(Random, dir, inputMode, pairs, outputs, 
false).DoTest(true);
             }
 
             // Pair<ord, (random monotonically increasing positive number>
@@ -232,7 +230,7 @@ namespace Lucene.Net.Util.Fst
                     lastOutput = value;
                     pairs.Add(new InputOutput<Pair>(terms[idx], 
outputs.NewPair(idx, value)));
                 }
-                (new FSTTester<Pair>(Random, dir, inputMode, pairs, outputs, 
false)).DoTest(true);
+                new FSTTester<Pair>(Random, dir, inputMode, pairs, outputs, 
false).DoTest(true);
             }
 
             // Sequence-of-bytes
@@ -245,7 +243,7 @@ namespace Lucene.Net.Util.Fst
                     BytesRef output = Random.Next(30) == 17 ? NO_OUTPUT : new 
BytesRef(Convert.ToString(idx));
                     pairs.Add(new InputOutput<BytesRef>(terms[idx], output));
                 }
-                (new FSTTester<BytesRef>(Random, dir, inputMode, pairs, 
outputs, false)).DoTest(true);
+                new FSTTester<BytesRef>(Random, dir, inputMode, pairs, 
outputs, false).DoTest(true);
             }
 
             // Sequence-of-ints
@@ -265,7 +263,7 @@ namespace Lucene.Net.Util.Fst
                     }
                     pairs.Add(new InputOutput<Int32sRef>(terms[idx], output));
                 }
-                (new FSTTester<Int32sRef>(Random, dir, inputMode, pairs, 
outputs, false)).DoTest(true);
+                new FSTTester<Int32sRef>(Random, dir, inputMode, pairs, 
outputs, false).DoTest(true);
             }
 
         }
@@ -376,7 +374,7 @@ namespace Lucene.Net.Util.Fst
                 BytesRef term;
                 int ord = 0;
 
-                Automaton automaton = (new RegExp(".*", 
RegExpSyntax.NONE)).ToAutomaton();
+                Automaton automaton = new RegExp(".*", 
RegExpSyntax.NONE).ToAutomaton();
                 TermsEnum termsEnum2 = terms.Intersect(new 
CompiledAutomaton(automaton, false, false), null);
 
                 while (termsEnum.MoveNext())
@@ -392,7 +390,7 @@ namespace Lucene.Net.Util.Fst
                     {
                         try
                         {
-                            var _ = termsEnum.Ord;
+                            _ = termsEnum.Ord; // LUCENENET: using discard 
assignment to avoid "Only ... can be used as a statement" error
                         }
                         catch (Exception uoe) when 
(uoe.IsUnsupportedOperationException())
                         {
@@ -813,7 +811,7 @@ namespace Lucene.Net.Util.Fst
                 object NO_OUTPUT = outputs.NoOutput;
                 new VisitTermsAnonymousClass4(dirOut, wordsFileIn, inputMode, 
prune, outputs, doPack, noArcArrays, NO_OUTPUT).Run(limit, verify, false);
             }
-        }*/
+        }
 
         private sealed class VisitTermsAnonymousClass : VisitTerms<Pair>
         {
@@ -881,7 +879,7 @@ namespace Lucene.Net.Util.Fst
             {
                 return NO_OUTPUT;
             }
-        }
+        }*/
 
         [Test]
         public virtual void TestSingleString()
@@ -923,16 +921,16 @@ namespace Lucene.Net.Util.Fst
 
         /*
         public void testTrivial() throws Exception {
-    
+
           // Get outputs -- passing true means FST will share
           // (delta code) the outputs.  this should result in
           // smaller FST if the outputs grow monotonically.  But
           // if numbers are "random", false should give smaller
           // final size:
           final NoOutputs outputs = NoOutputs.getSingleton();
-    
+
           String[] strings = new String[] {"station", "commotion", "elation", 
"elastic", "plastic", "stop", "ftop", "ftation", "stat"};
-    
+
           final Builder<Object> builder = new 
Builder<Object>(FST.INPUT_TYPE.BYTE1,
                                                               0, 0,
                                                               true,
@@ -951,9 +949,9 @@ namespace Lucene.Net.Util.Fst
           Writer w = new OutputStreamWriter(new 
FileOutputStream("/mnt/scratch/before.dot"));
           Util.toDot(fst, w, false, false);
           w.Dispose();
-    
+
           final FST<Object> rewrite = new FST<Object>(fst, 1, 100);
-    
+
           System.out.println("DOT after rewrite");
           w = new OutputStreamWriter(new 
FileOutputStream("/mnt/scratch/after.dot"));
           Util.toDot(rewrite, w, false, false);
@@ -1251,6 +1249,8 @@ namespace Lucene.Net.Util.Fst
         [Test]
         public virtual void TestExpandedCloseToRoot()
         {
+            // LUCENENET: Local class moved to SyntheticData class below
+
             // Sanity check.
             Assert.IsTrue(FST.FIXED_ARRAY_NUM_ARCS_SHALLOW < 
FST.FIXED_ARRAY_NUM_ARCS_DEEP);
             Assert.IsTrue(FST.FIXED_ARRAY_SHALLOW_DISTANCE >= 0);
@@ -1451,7 +1451,7 @@ namespace Lucene.Net.Util.Fst
         }
 
         internal static readonly IComparer<Int64> minLongComparer = 
Comparer<Int64>.Create((left, right)=> left.CompareTo(right));
-        
+
         [Test]
         public virtual void TestShortestPaths()
         {
@@ -1505,7 +1505,7 @@ namespace Lucene.Net.Util.Fst
             Assert.AreEqual(1, res.TopN.Count);
             Assert.AreEqual(Util.ToInt32sRef(new BytesRef("aac"), scratch), 
res.TopN[0].Input);
             Assert.AreEqual(7L, res.TopN[0].Output);
-            rejectCount.Value = (0);
+            rejectCount.Value = 0;
             searcher = new TopNSearcherAnonymousClass2(fst, minLongComparer, 
rejectCount);
 
             searcher.AddStartPaths(fst.GetFirstArc(new FST.Arc<Int64>()), 
outputs.NoOutput, true, new Int32sRef());
@@ -1558,7 +1558,7 @@ namespace Lucene.Net.Util.Fst
 
         // compares just the weight side of the pair
         internal static readonly IComparer<Pair> minPairWeightComparer = 
Comparer<Pair>.Create((left, right)=> left.Output1.CompareTo(right.Output1));
-             
+
         /// <summary>
         /// like testShortestPaths, but uses pairoutputs so we have both a 
weight and an output </summary>
         [Test]
@@ -1868,4 +1868,4 @@ namespace Lucene.Net.Util.Fst
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoDocIdSet.cs 
b/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoDocIdSet.cs
index 6d1241dcd..bff040174 100644
--- a/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoDocIdSet.cs
+++ b/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoDocIdSet.cs
@@ -26,7 +26,7 @@ namespace Lucene.Net.Util.Packed
     {
         public override EliasFanoDocIdSet CopyOf(BitSet bs, int numBits)
         {
-            EliasFanoDocIdSet set = new EliasFanoDocIdSet((int)bs.Cardinality, 
numBits - 1);
+            EliasFanoDocIdSet set = new EliasFanoDocIdSet(bs.Cardinality, 
numBits - 1);
             set.EncodeFromDisi(new DocIdSetIteratorAnonymousClass(bs, 
numBits));
             return set;
         }
@@ -40,10 +40,9 @@ namespace Lucene.Net.Util.Packed
             {
                 this.bs = bs;
                 this.numBits = numBits;
-                doc = -1;
             }
 
-            internal int doc;
+            int doc = -1;
 
             public override int NextDoc()
             {
@@ -69,4 +68,4 @@ namespace Lucene.Net.Util.Packed
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoSequence.cs 
b/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoSequence.cs
index ee29105fa..688e2de2f 100644
--- a/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoSequence.cs
+++ b/src/Lucene.Net.Tests/Util/Packed/TestEliasFanoSequence.cs
@@ -294,6 +294,7 @@ namespace Lucene.Net.Util.Packed
         [Test]
         public virtual void TestMonotoneSequences()
         {
+            // LUCENENET: See TestMonotoneSequencesLonger below for 4422 case 
from original Lucene test
             for (int s = 2; s < 1222; s++)
             {
                 long[] values = new long[s];
@@ -322,6 +323,7 @@ namespace Lucene.Net.Util.Packed
         [Test]
         public virtual void TestStrictMonotoneSequences()
         {
+            // LUCENENET: See TestStrictMonotoneSequencesLonger below for 4422 
case from original Lucene test
             for (int s = 2; s < 1222; s++)
             {
                 var values = new long[s];
@@ -494,4 +496,4 @@ namespace Lucene.Net.Util.Packed
             Assert.AreEqual(32, efDecVI.AdvanceToValue(22), "advance 22");
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs 
b/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs
index bd60e0554..a43f3195e 100644
--- a/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs
+++ b/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs
@@ -7,7 +7,6 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using JCG = J2N.Collections.Generic;
-using Assert = Lucene.Net.TestFramework.Assert;
 using Console = Lucene.Net.Util.SystemConsole;
 using RandomInts = RandomizedTesting.Generators.RandomNumbers;
 
@@ -505,7 +504,7 @@ namespace Lucene.Net.Util.Packed
         /*
           Check if the structures properly handle the case where
           index * bitsPerValue > Integer.MAX_VALUE
-        
+
           NOTE: this test allocates 256 MB
          */
         [Ignore("See LUCENE-4488 - LUCENENET NOTE: In .NET it is not possible 
to catch OOME")]
@@ -1343,7 +1342,7 @@ namespace Lucene.Net.Util.Packed
                 in1.ReadBytes(buf, 0, (int)fp);
                 in1.Seek(0L);
                 ByteArrayDataInput in2 = new ByteArrayDataInput(buf);
-                DataInput @in = Random.NextBoolean() ? (DataInput)in1 : in2;
+                DataInput @in = Random.NextBoolean() ? in1 : in2;
                 BlockPackedReaderIterator it = new 
BlockPackedReaderIterator(@in, PackedInt32s.VERSION_CURRENT, blockSize, 
valueCount);
                 for (int i = 0; i < valueCount; )
                 {
@@ -1529,4 +1528,4 @@ namespace Lucene.Net.Util.Packed
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs 
b/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs
index 769a1f92a..523ff6893 100644
--- a/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs
+++ b/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs
@@ -2,7 +2,6 @@
 using NUnit.Framework;
 using System;
 using System.Globalization;
-using Assert = Lucene.Net.TestFramework.Assert;
 using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
@@ -26,7 +25,7 @@ namespace Lucene.Net.Util
 
     /// <summary>
     /// Estimates how <seealso cref="RamUsageEstimator"/> estimates physical 
memory consumption
-    /// of Java objects. 
+    /// of Java objects.
     /// </summary>
     [TestFixture]
     public class StressRamUsageEstimator : LuceneTestCase
@@ -50,6 +49,8 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestChainedEstimation()
         {
+            // LUCENENET: not needed: MemoryMXBean memoryMXBean = 
ManagementFactory.getMemoryMXBean();
+
             Random rnd = Random;
             Entry first = new Entry();
             try
@@ -57,7 +58,7 @@ namespace Lucene.Net.Util
                 while (true)
                 {
                     // Check the current memory consumption and provide the 
estimate.
-                    long jvmUsed = GC.GetTotalMemory(false);
+                    long jvmUsed = GC.GetTotalMemory(false); // LUCENENET: 
instead of memoryMXBean.getHeapMemoryUsage().getUsed()
                     long estimated = RamUsageEstimator.SizeOf(first);
                     
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0:0000000000}, 
{1:0000000000}", jvmUsed, estimated));
 
@@ -80,15 +81,17 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestLargeSetOfByteArrays()
         {
+            // LUCENENET: not needed: MemoryMXBean memoryMXBean = 
ManagementFactory.getMemoryMXBean();
+
             CauseGc();
-            long before = GC.GetTotalMemory(false);
+            long before = GC.GetTotalMemory(false); // LUCENENET: instead of 
memoryMXBean.getHeapMemoryUsage().getUsed()
             object[] all = new object[1000000];
             for (int i = 0; i < all.Length; i++)
             {
                 all[i] = new sbyte[Random.Next(3)];
             }
             CauseGc();
-            long after = GC.GetTotalMemory(false);
+            long after = GC.GetTotalMemory(false); // LUCENENET: instead of 
memoryMXBean.getHeapMemoryUsage().getUsed()
             Console.WriteLine("mx:  " + 
RamUsageEstimator.HumanReadableUnits(after - before));
             Console.WriteLine("rue: " + 
RamUsageEstimator.HumanReadableUnits(ShallowSizeOf(all)));
 
@@ -123,6 +126,8 @@ namespace Lucene.Net.Util
         [Slow]
         public virtual void TestSimpleByteArrays()
         {
+            // LUCENENET: not needed: MemoryMXBean memoryMXBean = 
ManagementFactory.getMemoryMXBean();
+
             object[][] all = new object[0][];
             try
             {
@@ -130,14 +135,20 @@ namespace Lucene.Net.Util
                 {
                     // Check the current memory consumption and provide the 
estimate.
                     CauseGc();
-                    
+
+                    // LUCENENET: not needed: MemoryUsage mu = 
memoryMXBean.getHeapMemoryUsage();
+
                     long estimated = ShallowSizeOf(all);
                     if (estimated > 50 * RamUsageEstimator.ONE_MB)
                     {
                         break;
                     }
 
-                    
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0}\t{1}\t{2}", 
RamUsageEstimator.HumanReadableUnits(GC.GetTotalMemory(false)).PadLeft(10, ' 
'), RamUsageEstimator.HumanReadableUnits(GC.MaxGeneration).PadLeft(10, ' '), 
RamUsageEstimator.HumanReadableUnits(estimated).PadLeft(10, ' ')));
+                    // LUCENENET: padding done for each value instead of in 
format string
+                    
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0}\t{1}\t{2}",
+                        
RamUsageEstimator.HumanReadableUnits(GC.GetTotalMemory(false)).PadLeft(10, ' 
'), // LUCENENET: GC.GetTotalMemory(false) instead of mu.getUsed()
+                        
RamUsageEstimator.HumanReadableUnits(GC.MaxGeneration).PadLeft(10, ' '), // 
LUCENENET: GC.MaxGeneration instead of mu.getMax()
+                        
RamUsageEstimator.HumanReadableUnits(estimated).PadLeft(10, ' ')));
 
                     // Make another batch of objects.
                     object[] seg = new object[10000];
@@ -156,12 +167,13 @@ namespace Lucene.Net.Util
         }
 
         /// <summary>
-        /// Very hacky, very crude, but (sometimes) works. 
-        /// Don't look, it will burn your eyes out. 
+        /// Very hacky, very crude, but (sometimes) works.
+        /// Don't look, it will burn your eyes out.
         /// </summary>
         private void CauseGc()
         {
+            // LUCENENET: this is way simpler than the Java equivalent here!
             GC.Collect();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/Test2BPagedBytes.cs 
b/src/Lucene.Net.Tests/Util/Test2BPagedBytes.cs
index 9e0723ceb..50106c50f 100644
--- a/src/Lucene.Net.Tests/Util/Test2BPagedBytes.cs
+++ b/src/Lucene.Net.Tests/Util/Test2BPagedBytes.cs
@@ -1,10 +1,13 @@
 using Lucene.Net.Diagnostics;
 using Lucene.Net.Store;
 using NUnit.Framework;
-using RandomizedTesting.Generators;
 using System;
 using Assert = Lucene.Net.TestFramework.Assert;
 
+#if !FEATURE_RANDOM_NEXTINT64_NEXTSINGLE
+using RandomizedTesting.Generators; // for Random.NextInt64 extension method
+#endif
+
 namespace Lucene.Net.Util
 {
     /*
@@ -30,9 +33,6 @@ namespace Lucene.Net.Util
     using IOContext = Lucene.Net.Store.IOContext;
     using MockDirectoryWrapper = Lucene.Net.Store.MockDirectoryWrapper;
 
-    //using Ignore = org.junit.Ignore;
-
-    //ORIGINAL LINE: @Ignore("You must increase heap to > 2 G to run this") 
public class Test2BPagedBytes extends LuceneTestCase
     [Ignore("You must increase heap to > 2 G to run this")]
     [TestFixture]
     public class Test2BPagedBytes : LuceneTestCase
@@ -86,4 +86,4 @@ namespace Lucene.Net.Util
             dir.Dispose();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestArrayUtil.cs 
b/src/Lucene.Net.Tests/Util/TestArrayUtil.cs
index 4a56a15e3..2fb9987ef 100644
--- a/src/Lucene.Net.Tests/Util/TestArrayUtil.cs
+++ b/src/Lucene.Net.Tests/Util/TestArrayUtil.cs
@@ -350,4 +350,4 @@ namespace Lucene.Net.Util
             ArrayUtil.TimSort(a, Collections.ReverseOrder<int>());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestAttributeSource.cs 
b/src/Lucene.Net.Tests/Util/TestAttributeSource.cs
index 4f4f7ba18..36dd23253 100644
--- a/src/Lucene.Net.Tests/Util/TestAttributeSource.cs
+++ b/src/Lucene.Net.Tests/Util/TestAttributeSource.cs
@@ -187,4 +187,4 @@ namespace Lucene.Net.Util
             Assert.AreEqual(src2.GetHashCode(), src1.GetHashCode());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestBroadWord.cs 
b/src/Lucene.Net.Tests/Util/TestBroadWord.cs
index fd9020048..a813ebffc 100644
--- a/src/Lucene.Net.Tests/Util/TestBroadWord.cs
+++ b/src/Lucene.Net.Tests/Util/TestBroadWord.cs
@@ -26,6 +26,7 @@ namespace Lucene.Net.Util
     {
         private void TstRank(long x)
         {
+            // LUCENENET: using J2N PopCount extension instead of 
Long.bitCount()
             Assert.AreEqual(x.PopCount(), BroadWord.BitCount(x), "rank(" + x + 
")");
         }
 
@@ -139,7 +140,9 @@ namespace Lucene.Net.Util
                 {
                     long ii = i * BroadWord.L8_L;
                     long jj = j * BroadWord.L8_L;
-                    Assert.AreEqual(ToStringUtils.Int64Hex((i < j) ? 
unchecked(0x80L * BroadWord.L8_L) : 0x0L), 
ToStringUtils.Int64Hex(BroadWord.SmallerUpTo7_8(ii, jj)), 
ToStringUtils.Int64Hex(ii) + " < " + ToStringUtils.Int64Hex(jj));
+                    Assert.AreEqual(ToStringUtils.Int64Hex((i < j) ? 
unchecked(0x80L * BroadWord.L8_L) : 0x0L),
+                        ToStringUtils.Int64Hex(BroadWord.SmallerUpTo7_8(ii, 
jj)),
+                        ToStringUtils.Int64Hex(ii) + " < " + 
ToStringUtils.Int64Hex(jj));
                 }
             }
         }
@@ -154,7 +157,9 @@ namespace Lucene.Net.Util
                 {
                     long ii = i * BroadWord.L8_L;
                     long jj = j * BroadWord.L8_L;
-                    Assert.AreEqual(ToStringUtils.Int64Hex((i < j) ? 
unchecked(0x80L * BroadWord.L8_L) : 0x0L), 
ToStringUtils.Int64Hex(BroadWord.Smalleru_8(ii, jj)), 
ToStringUtils.Int64Hex(ii) + " < " + ToStringUtils.Int64Hex(jj));
+                    Assert.AreEqual(ToStringUtils.Int64Hex((i < j) ? 
unchecked(0x80L * BroadWord.L8_L) : 0x0L),
+                        ToStringUtils.Int64Hex(BroadWord.Smalleru_8(ii, jj)),
+                        ToStringUtils.Int64Hex(ii) + " < " + 
ToStringUtils.Int64Hex(jj));
                 }
             }
         }
@@ -166,8 +171,10 @@ namespace Lucene.Net.Util
             for (long i = 0x0L; i <= 0xFFL; i++)
             {
                 long ii = i * BroadWord.L8_L;
-                Assert.AreEqual(ToStringUtils.Int64Hex((i != 0L) ? 
unchecked(0x80L * BroadWord.L8_L) : 0x0L), 
ToStringUtils.Int64Hex(BroadWord.NotEquals0_8(ii)), ToStringUtils.Int64Hex(ii) 
+ " <> 0");
+                Assert.AreEqual(ToStringUtils.Int64Hex((i != 0L) ? 
unchecked(0x80L * BroadWord.L8_L) : 0x0L),
+                    ToStringUtils.Int64Hex(BroadWord.NotEquals0_8(ii)),
+                    ToStringUtils.Int64Hex(ii) + " <> 0");
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestByteBlockPool.cs 
b/src/Lucene.Net.Tests/Util/TestByteBlockPool.cs
index c563710f3..522f894c8 100644
--- a/src/Lucene.Net.Tests/Util/TestByteBlockPool.cs
+++ b/src/Lucene.Net.Tests/Util/TestByteBlockPool.cs
@@ -29,7 +29,7 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestReadAndWrite()
         {
-            Counter bytesUsed = Util.Counter.NewCounter();
+            Counter bytesUsed = Counter.NewCounter();
             ByteBlockPool pool = new ByteBlockPool(new 
ByteBlockPool.DirectTrackingAllocator(bytesUsed));
             pool.NextBuffer();
             bool reuseFirst = Random.NextBoolean();
@@ -69,4 +69,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestBytesRef.cs 
b/src/Lucene.Net.Tests/Util/TestBytesRef.cs
index 309ee15bd..c9acb68ee 100644
--- a/src/Lucene.Net.Tests/Util/TestBytesRef.cs
+++ b/src/Lucene.Net.Tests/Util/TestBytesRef.cs
@@ -55,12 +55,12 @@ namespace Lucene.Net.Util
             for (int i = 0; i < 100; i++)
             {
                 string s = TestUtil.RandomUnicodeString(Random);
-                string s2 = (new BytesRef(s)).Utf8ToString();
+                string s2 = new BytesRef(s).Utf8ToString();
                 Assert.AreEqual(s, s2);
             }
 
             // only for 4.x
-            Assert.AreEqual("\uFFFF", (new BytesRef("\uFFFF")).Utf8ToString());
+            Assert.AreEqual("\uFFFF", new BytesRef("\uFFFF").Utf8ToString());
         }
 
         [Test, LuceneNetSpecific]
@@ -69,12 +69,12 @@ namespace Lucene.Net.Util
             for (int i = 0; i < 100; i++)
             {
                 ICharSequence s = new 
StringCharSequence(TestUtil.RandomUnicodeString(Random));
-                ICharSequence s2 = (new 
BytesRef(s)).Utf8ToString().AsCharSequence();
+                ICharSequence s2 = new 
BytesRef(s).Utf8ToString().AsCharSequence();
                 Assert.AreEqual(s, s2);
             }
 
             // only for 4.x
-            Assert.AreEqual("\uFFFF", (new BytesRef("\uFFFF")).Utf8ToString());
+            Assert.AreEqual("\uFFFF", new BytesRef("\uFFFF").Utf8ToString());
         }
 
         // LUCENE-3590, AIOOBE if you append to a bytesref with offset != 0
@@ -120,4 +120,4 @@ namespace Lucene.Net.Util
         }
 #endif
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestBytesRefArray.cs 
b/src/Lucene.Net.Tests/Util/TestBytesRefArray.cs
index 1c0ffc449..1fef8e5cf 100644
--- a/src/Lucene.Net.Tests/Util/TestBytesRefArray.cs
+++ b/src/Lucene.Net.Tests/Util/TestBytesRefArray.cs
@@ -31,7 +31,7 @@ namespace Lucene.Net.Util
         public virtual void TestAppend()
         {
             Random random = Random;
-            BytesRefArray list = new BytesRefArray(Util.Counter.NewCounter());
+            BytesRefArray list = new BytesRefArray(Counter.NewCounter());
             IList<string> stringList = new JCG.List<string>();
             for (int j = 0; j < 2; j++)
             {
@@ -80,7 +80,7 @@ namespace Lucene.Net.Util
         public virtual void TestAppendIterator()
         {
             Random random = Random;
-            BytesRefArray list = new BytesRefArray(Util.Counter.NewCounter());
+            BytesRefArray list = new BytesRefArray(Counter.NewCounter());
             IList<string> stringList = new JCG.List<string>();
             for (int j = 0; j < 2; j++)
             {
@@ -114,11 +114,10 @@ namespace Lucene.Net.Util
                 }
                 for (int i = 0; i < 2; i++)
                 {
-                    IBytesRefEnumerator iterator = list.GetEnumerator();
+                    IBytesRefIterator iterator = list.GetIterator();
                     foreach (string @string in stringList)
                     {
-                        Assert.IsTrue(iterator.MoveNext());
-                        Assert.AreEqual(@string, 
iterator.Current.Utf8ToString());
+                        Assert.AreEqual(@string, 
iterator.Next().Utf8ToString());
                     }
                 }
             }
@@ -128,7 +127,7 @@ namespace Lucene.Net.Util
         public virtual void TestSort()
         {
             Random random = Random;
-            BytesRefArray list = new BytesRefArray(Util.Counter.NewCounter());
+            BytesRefArray list = new BytesRefArray(Counter.NewCounter());
             IList<string> stringList = new JCG.List<string>();
 
             for (int j = 0; j < 2; j++)
@@ -172,7 +171,7 @@ namespace Lucene.Net.Util
         public virtual void TestSortIterator()
         {
             Random random = Random;
-            BytesRefArray list = new BytesRefArray(Util.Counter.NewCounter());
+            BytesRefArray list = new BytesRefArray(Counter.NewCounter());
             IList<string> stringList = new JCG.List<string>();
 
             for (int j = 0; j < 2; j++)
@@ -211,4 +210,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestBytesRefHash.cs 
b/src/Lucene.Net.Tests/Util/TestBytesRefHash.cs
index 8233b5236..370691fba 100644
--- a/src/Lucene.Net.Tests/Util/TestBytesRefHash.cs
+++ b/src/Lucene.Net.Tests/Util/TestBytesRefHash.cs
@@ -25,7 +25,7 @@ namespace Lucene.Net.Util
      * limitations under the License.
      */
 
-    using MaxBytesLengthExceededException = 
Lucene.Net.Util.BytesRefHash.MaxBytesLengthExceededException;
+    using MaxBytesLengthExceededException = 
BytesRefHash.MaxBytesLengthExceededException;
 
     [TestFixture]
     public class TestBytesRefHash : LuceneTestCase
@@ -43,17 +43,19 @@ namespace Lucene.Net.Util
 
         private ByteBlockPool NewPool()
         {
-            return Random.NextBoolean() && pool != null ? pool : new 
ByteBlockPool(new RecyclingByteBlockAllocator(ByteBlockPool.BYTE_BLOCK_SIZE, 
Random.Next(25)));
+            return Random.NextBoolean() && pool != null ? pool
+                : new ByteBlockPool(new 
RecyclingByteBlockAllocator(ByteBlockPool.BYTE_BLOCK_SIZE, Random.Next(25)));
         }
 
         private BytesRefHash NewHash(ByteBlockPool blockPool)
         {
             int initSize = 2 << 1 + Random.Next(5);
-            return Random.NextBoolean() ? new BytesRefHash(blockPool) : new 
BytesRefHash(blockPool, initSize, new 
BytesRefHash.DirectBytesStartArray(initSize));
+            return Random.NextBoolean() ? new BytesRefHash(blockPool) : new 
BytesRefHash(
+                blockPool, initSize, new 
BytesRefHash.DirectBytesStartArray(initSize));
         }
 
         /// <summary>
-        /// Test method for <seealso 
cref="Lucene.Net.Util.BytesRefHash#size()"/>.
+        /// Test method for <see cref="Lucene.Net.Util.BytesRefHash.Count"/>.
         /// </summary>
         [Test]
         public virtual void TestSize()
@@ -93,7 +95,7 @@ namespace Lucene.Net.Util
 
         /// <summary>
         /// Test method for
-        /// <seealso cref="Lucene.Net.Util.BytesRefHash#get(int, BytesRef)"/>
+        /// <see cref="Lucene.Net.Util.BytesRefHash.Get(int, BytesRef)"/>
         /// .
         /// </summary>
         [Test]
@@ -133,7 +135,7 @@ namespace Lucene.Net.Util
                 foreach (KeyValuePair<string, int> entry in strings)
                 {
                     @ref.CopyChars(entry.Key);
-                    Assert.AreEqual(@ref, hash.Get((int)entry.Value, scratch));
+                    Assert.AreEqual(@ref, hash.Get(entry.Value, scratch));
                 }
                 hash.Clear();
                 Assert.AreEqual(0, hash.Count);
@@ -142,7 +144,7 @@ namespace Lucene.Net.Util
         }
 
         /// <summary>
-        /// Test method for <seealso 
cref="Lucene.Net.Util.BytesRefHash.Compact()"/>.
+        /// Test method for <see 
cref="Lucene.Net.Util.BytesRefHash.Compact()"/>.
         /// </summary>
         [Test]
         public virtual void TestCompact()
@@ -192,7 +194,7 @@ namespace Lucene.Net.Util
 
         /// <summary>
         /// Test method for
-        /// <seealso 
cref="Lucene.Net.Util.BytesRefHash#sort(java.util.Comparer)"/>.
+        /// <see cref="Lucene.Net.Util.BytesRefHash.Sort(IComparer{BytesRef})" 
/>.
         /// </summary>
         [Test]
         public virtual void TestSort()
@@ -237,7 +239,7 @@ namespace Lucene.Net.Util
 
         /// <summary>
         /// Test method for
-        /// <seealso 
cref="Lucene.Net.Util.BytesRefHash#add(Lucene.Net.Util.BytesRef)"/>
+        /// <see cref="Lucene.Net.Util.BytesRefHash.Add(BytesRef)"/>
         /// .
         /// </summary>
         [Test]
@@ -331,7 +333,9 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestLargeValue()
         {
-            int[] sizes = { Random.Next(5), ByteBlockPool.BYTE_BLOCK_SIZE - 33 
+ Random.Next(31), ByteBlockPool.BYTE_BLOCK_SIZE - 1 + Random.Next(37) };
+            int[] sizes = { Random.Next(5),
+                ByteBlockPool.BYTE_BLOCK_SIZE - 33 + Random.Next(31),
+                ByteBlockPool.BYTE_BLOCK_SIZE - 1 + Random.Next(37) };
             BytesRef @ref = new BytesRef();
 
             var exceptionThrown = false;
@@ -362,7 +366,7 @@ namespace Lucene.Net.Util
 
         /// <summary>
         /// Test method for
-        /// <seealso cref="Lucene.Net.Util.BytesRefHash#addByPoolOffset(int)"/>
+        /// <see cref="Lucene.Net.Util.BytesRefHash.AddByPoolOffset(int)"/>
         /// .
         /// </summary>
         [Test]
@@ -443,4 +447,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestCharsRef.cs 
b/src/Lucene.Net.Tests/Util/TestCharsRef.cs
index 18653138c..f1bd30445 100644
--- a/src/Lucene.Net.Tests/Util/TestCharsRef.cs
+++ b/src/Lucene.Net.Tests/Util/TestCharsRef.cs
@@ -118,7 +118,7 @@ namespace Lucene.Net.Util
             Assert.AreEqual("bcde", c.ToString());
         }
 
-        // LUCENENET NOTE: Removed the CharAt(int) method from the 
+        // LUCENENET NOTE: Removed the CharAt(int) method from the
         // ICharSequence interface and replaced with this[int]
         //// LUCENE-3590: fix charsequence to fully obey interface
         //[Test]
@@ -271,4 +271,4 @@ namespace Lucene.Net.Util
         }
 #endif
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestCloseableThreadLocal.cs 
b/src/Lucene.Net.Tests/Util/TestCloseableThreadLocal.cs
index 730dad525..0a8f71664 100644
--- a/src/Lucene.Net.Tests/Util/TestCloseableThreadLocal.cs
+++ b/src/Lucene.Net.Tests/Util/TestCloseableThreadLocal.cs
@@ -28,6 +28,7 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestInitValue()
         {
+            // LUCENENET: using DisposableThreadLocal instead of 
InitValueThreadLocal
             DisposableThreadLocal<object> tl = new 
DisposableThreadLocal<object>(() => TEST_VALUE);
             string str = (string)tl.Value;
             Assert.AreEqual(TEST_VALUE, str);
@@ -38,8 +39,9 @@ namespace Lucene.Net.Util
         {
             // Tests that null can be set as a valid value (LUCENE-1805). this
             // previously failed in get().
+            // LUCENENET: using DisposableThreadLocal instead of 
InitValueThreadLocal
             DisposableThreadLocal<object> ctl = new 
DisposableThreadLocal<object>();
-            ctl.Value = (null);
+            ctl.Value = null;
             Assert.IsNull(ctl.Value);
         }
 
@@ -48,8 +50,9 @@ namespace Lucene.Net.Util
         {
             // LUCENE-1805: make sure default get returns null,
             // twice in a row
+            // LUCENENET: using DisposableThreadLocal instead of 
InitValueThreadLocal
             DisposableThreadLocal<object> ctl = new 
DisposableThreadLocal<object>();
             Assert.IsNull(ctl.Value);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestCollectionUtil.cs 
b/src/Lucene.Net.Tests/Util/TestCollectionUtil.cs
index c5960d0d0..018ecfb5c 100644
--- a/src/Lucene.Net.Tests/Util/TestCollectionUtil.cs
+++ b/src/Lucene.Net.Tests/Util/TestCollectionUtil.cs
@@ -4,7 +4,6 @@ using System;
 using System.Collections.Generic;
 using System.Runtime.CompilerServices;
 using JCG = J2N.Collections.Generic;
-using Assert = Lucene.Net.TestFramework.Assert;
 
 namespace Lucene.Net.Util
 {
@@ -124,4 +123,4 @@ namespace Lucene.Net.Util
             CollectionUtil.TimSort(list, Collections.ReverseOrder<int>());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestConstants.cs 
b/src/Lucene.Net.Tests/Util/TestConstants.cs
index 885fc4323..7eafb70f2 100644
--- a/src/Lucene.Net.Tests/Util/TestConstants.cs
+++ b/src/Lucene.Net.Tests/Util/TestConstants.cs
@@ -26,13 +26,17 @@ namespace Lucene.Net.Util
     [TestFixture]
     public class TestConstants : LuceneTestCase
     {
-        private string VersionDetails => " (LUCENE_MAIN_VERSION=" + 
Constants.LUCENE_MAIN_VERSION + ", LUCENE_MAIN_VERSION(without alpha/beta)=" + 
Constants.MainVersionWithoutAlphaBeta + ", LUCENE_VERSION=" + 
Constants.LUCENE_VERSION + ")";
+        private string VersionDetails => " (LUCENE_MAIN_VERSION=" + 
Constants.LUCENE_MAIN_VERSION +
+                                         ", LUCENE_MAIN_VERSION(without 
alpha/beta)=" + Constants.MainVersionWithoutAlphaBeta +
+                                         ", LUCENE_VERSION=" + 
Constants.LUCENE_VERSION + ")";
 
         [Test]
         public virtual void TestLuceneMainVersionConstant()
         {
-            Assert.IsTrue(Regex.IsMatch(Constants.LUCENE_MAIN_VERSION, 
"\\d+\\.\\d+(|\\.0\\.\\d+)", RegexOptions.IgnoreCase), "LUCENE_MAIN_VERSION 
does not follow pattern: 'x.y' (stable release) or 'x.y.0.z' (alpha/beta 
version)" + VersionDetails);
-            
Assert.IsTrue(Constants.LUCENE_VERSION.StartsWith(Constants.MainVersionWithoutAlphaBeta,
 StringComparison.Ordinal), "LUCENE_VERSION does not start with 
LUCENE_MAIN_VERSION (without alpha/beta marker)" + VersionDetails);
+            Assert.IsTrue(Regex.IsMatch(Constants.LUCENE_MAIN_VERSION, 
"\\d+\\.\\d+(|\\.0\\.\\d+)", RegexOptions.IgnoreCase),
+                "LUCENE_MAIN_VERSION does not follow pattern: 'x.y' (stable 
release) or 'x.y.0.z' (alpha/beta version)" + VersionDetails);
+            
Assert.IsTrue(Constants.LUCENE_VERSION.StartsWith(Constants.MainVersionWithoutAlphaBeta,
 StringComparison.Ordinal),
+                "LUCENE_VERSION does not start with LUCENE_MAIN_VERSION 
(without alpha/beta marker)" + VersionDetails);
         }
 
         [Test]
@@ -50,7 +54,8 @@ namespace Lucene.Net.Util
             // remove anything after a "-" from the version string:
             version = Regex.Replace(version, "-.*$", "");
             string versionConstant = Regex.Replace(Constants.LUCENE_VERSION, 
"-.*$", "");
-            Assert.IsTrue(versionConstant.StartsWith(version, 
StringComparison.Ordinal) || version.StartsWith(versionConstant, 
StringComparison.Ordinal), "LUCENE_VERSION should share the same prefix with 
lucene.version test property ('" + version + "')." + VersionDetails);
+            Assert.IsTrue(versionConstant.StartsWith(version, 
StringComparison.Ordinal) || version.StartsWith(versionConstant, 
StringComparison.Ordinal),
+                "LUCENE_VERSION should share the same prefix with 
lucene.version test property ('" + version + "')." + VersionDetails);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestDocIdBitSet.cs 
b/src/Lucene.Net.Tests/Util/TestDocIdBitSet.cs
index 7eb44c1f4..0b6c37959 100644
--- a/src/Lucene.Net.Tests/Util/TestDocIdBitSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestDocIdBitSet.cs
@@ -1,4 +1,3 @@
-using Assert = Lucene.Net.TestFramework.Assert;
 using BitSet = J2N.Collections.BitSet;
 
 namespace Lucene.Net.Util
@@ -20,6 +19,7 @@ namespace Lucene.Net.Util
      * limitations under the License.
      */
 
+    [TestFixture]
     public class TestDocIdBitSet : BaseDocIdSetTestCase<DocIdBitSet>
     {
         public override DocIdBitSet CopyOf(BitSet bs, int length)
@@ -27,4 +27,4 @@ namespace Lucene.Net.Util
             return new DocIdBitSet((BitSet)bs.Clone());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestDoubleBarrelLRUCache.cs 
b/src/Lucene.Net.Tests/Util/TestDoubleBarrelLRUCache.cs
index 8e9f0472f..b5a67b470 100644
--- a/src/Lucene.Net.Tests/Util/TestDoubleBarrelLRUCache.cs
+++ b/src/Lucene.Net.Tests/Util/TestDoubleBarrelLRUCache.cs
@@ -146,7 +146,7 @@ namespace Lucene.Net.Util
         {
             const int NUM_THREADS = 4;
             const int CACHE_SIZE = 512;
-            int OBJ_COUNT = 3 * CACHE_SIZE;
+            const int OBJ_COUNT = 3 * CACHE_SIZE;
 
             DoubleBarrelLRUCache<CloneableObject, object> c = new 
DoubleBarrelLRUCache<CloneableObject, object>(1024);
 
@@ -182,7 +182,8 @@ namespace Lucene.Net.Util
 
             public override bool Equals(object other)
             {
-                if (other.GetType().Equals(typeof (CloneableObject)))
+                // LUCENENET: Additional type check not present in Java code
+                if (other is CloneableObject)
                     return this.value.Equals(((CloneableObject) other).value);
                 else
                     return false;
@@ -224,4 +225,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs 
b/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs
index 723bfca34..05c4b323b 100644
--- a/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs
+++ b/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs
@@ -1,7 +1,6 @@
 using Lucene.Net.Documents;
 using Lucene.Net.Search;
 using NUnit.Framework;
-using System;
 using System.Globalization;
 using System.IO;
 using Assert = Lucene.Net.TestFramework.Assert;
@@ -194,4 +193,4 @@ namespace Lucene.Net.Util
             cache.PurgeAllCaches();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestFilterIterator.cs 
b/src/Lucene.Net.Tests/Util/TestFilterIterator.cs
index 3598c1f1d..5b1b8587b 100644
--- a/src/Lucene.Net.Tests/Util/TestFilterIterator.cs
+++ b/src/Lucene.Net.Tests/Util/TestFilterIterator.cs
@@ -26,6 +26,8 @@ namespace Lucene.Net.Util
     [TestFixture]
     public class TestFilterIterator : LuceneTestCase
     {
+        // LUCENENET: in these tests, using lambdas with FilterEnumerator 
instead of anonymous classes
+
         private static readonly ISet<string> set = new 
JCG.SortedSet<string>(StringComparer.Ordinal) { "a", "b", "c" };
 
         private static void AssertNoMore<T1>(IEnumerator<T1> it)
@@ -37,14 +39,14 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestEmpty()
         {
-            IEnumerator<string> it = new 
FilterEnumerator<string>(set.GetEnumerator(), (s) => false);
+            IEnumerator<string> it = new 
FilterEnumerator<string>(set.GetEnumerator(), (_) => false);
             AssertNoMore(it);
         }
 
         [Test]
         public virtual void TestA1()
         {
-            IEnumerator<string> it = new 
FilterEnumerator<string>(set.GetEnumerator(), (s) => "a".Equals(s, 
StringComparison.Ordinal));
+            IEnumerator<string> it = new 
FilterEnumerator<string>(set.GetEnumerator(), s => "a".Equals(s, 
StringComparison.Ordinal));
             Assert.IsTrue(it.MoveNext());
             Assert.AreEqual("a", it.Current);
             AssertNoMore(it);
@@ -115,7 +117,7 @@ namespace Lucene.Net.Util
         //    try
         //    {
 
-        //        it.Remove(); 
+        //        it.Remove();
         //        Assert.Fail("Should throw UnsupportedOperationException");
         //    }
         //    catch (Exception oue) when 
(oue.IsUnsupportedOperationException())
@@ -124,9 +126,6 @@ namespace Lucene.Net.Util
         //    }
         //}
 
-
-
-
         [Test]
         [Obsolete("This method will be removed in 4.8.0 release candidate."), 
System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
         public virtual void TestEmptyIterator()
@@ -303,4 +302,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestFixedBitSet.cs 
b/src/Lucene.Net.Tests/Util/TestFixedBitSet.cs
index e622c477a..1bf8467bf 100644
--- a/src/Lucene.Net.Tests/Util/TestFixedBitSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestFixedBitSet.cs
@@ -24,7 +24,7 @@ namespace Lucene.Net.Util
      * limitations under the License.
      */
 
-    using DocIdSetIterator = Lucene.Net.Search.DocIdSetIterator;
+    using DocIdSetIterator = Search.DocIdSetIterator;
 
     [TestFixture]
     public class TestFixedBitSet : BaseDocIdSetTestCase<FixedBitSet>
@@ -218,7 +218,7 @@ namespace Lucene.Net.Util
                 if (b0 != null && b0.Length <= b.Length)
                 {
                     Assert.AreEqual(a.Cardinality, b.Cardinality);
-                    
+
                     BitSet a_and = (BitSet)a.Clone();
                     a_and.And(a0);
                     BitSet a_or = (BitSet)a.Clone();
@@ -502,4 +502,4 @@ namespace Lucene.Net.Util
             Assert.IsFalse(newBits.Get(1));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestIOUtils.cs 
b/src/Lucene.Net.Tests/Util/TestIOUtils.cs
index bc8ae8621..dba2fb450 100644
--- a/src/Lucene.Net.Tests/Util/TestIOUtils.cs
+++ b/src/Lucene.Net.Tests/Util/TestIOUtils.cs
@@ -74,9 +74,7 @@ namespace Lucene.Net.Util
             {
                 IOUtils.DisposeWhileHandlingException((TestException)null, new 
BrokenIDisposable(1), new BrokenIDisposable(2));
             }
-#pragma warning disable 168
-            catch (TestException e1)
-#pragma warning restore 168
+            catch (TestException)
             {
                 fail("TestException should not be thrown here");
             }
@@ -86,12 +84,10 @@ namespace Lucene.Net.Util
                 assertEquals(1, e2.GetSuppressed().Length);
                 assertEquals("TEST-IO-EXCEPTION-2", 
e2.GetSuppressed()[0].Message);
             }
-#pragma warning disable 168
-            catch (Exception e2)
-#pragma warning restore 168
+            catch (Exception)
             {
                 fail("Exception should not be thrown here");
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestIdentityHashSet.cs 
b/src/Lucene.Net.Tests/Util/TestIdentityHashSet.cs
index 67317e8e6..9419dbf86 100644
--- a/src/Lucene.Net.Tests/Util/TestIdentityHashSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestIdentityHashSet.cs
@@ -62,4 +62,4 @@ namespace Lucene.Net.Util
             assertEquals(collected, jdk, aggressive: false);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestInPlaceMergeSorter.cs 
b/src/Lucene.Net.Tests/Util/TestInPlaceMergeSorter.cs
index b5e57b7c5..07ed574c8 100644
--- a/src/Lucene.Net.Tests/Util/TestInPlaceMergeSorter.cs
+++ b/src/Lucene.Net.Tests/Util/TestInPlaceMergeSorter.cs
@@ -1,5 +1,3 @@
-using Assert = Lucene.Net.TestFramework.Assert;
-
 namespace Lucene.Net.Util
 {
     /*
@@ -19,6 +17,7 @@ namespace Lucene.Net.Util
      * limitations under the License.
      */
 
+    [TestFixture]
     public class TestInPlaceMergeSorter : BaseSortTestCase
     {
         public TestInPlaceMergeSorter()
@@ -31,4 +30,4 @@ namespace Lucene.Net.Util
             return new ArrayInPlaceMergeSorter<Entry>(arr, 
ArrayUtil.GetNaturalComparer<Entry>());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestIndexableBinaryStringTools.cs 
b/src/Lucene.Net.Tests/Util/TestIndexableBinaryStringTools.cs
index 2831585d2..2c578f72a 100644
--- a/src/Lucene.Net.Tests/Util/TestIndexableBinaryStringTools.cs
+++ b/src/Lucene.Net.Tests/Util/TestIndexableBinaryStringTools.cs
@@ -43,7 +43,9 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestSingleBinaryRoundTrip()
         {
-            sbyte[] binary = new sbyte[] { (sbyte)0x23, 
unchecked((sbyte)0x98), (sbyte)0x13, unchecked((sbyte)0xE4), (sbyte)0x76, 
(sbyte)0x41, unchecked((sbyte)0xB2), unchecked((sbyte)0xC9), (sbyte)0x7F, 
(sbyte)0x0A, unchecked((sbyte)0xA6), unchecked((sbyte)0xD8) };
+            sbyte[] binary = new sbyte[] { (sbyte)0x23, 
unchecked((sbyte)0x98), (sbyte)0x13,
+                unchecked((sbyte)0xE4), (sbyte)0x76, (sbyte)0x41, 
unchecked((sbyte)0xB2), unchecked((sbyte)0xC9),
+                (sbyte)0x7F, (sbyte)0x0A, unchecked((sbyte)0xA6), 
unchecked((sbyte)0xD8) };
 
             int encodedLen = 
IndexableBinaryStringTools.GetEncodedLength(binary, 0, binary.Length);
             char[] encoded = new char[encodedLen];
@@ -53,7 +55,11 @@ namespace Lucene.Net.Util
             sbyte[] decoded = new sbyte[decodedLen];
             IndexableBinaryStringTools.Decode(encoded, 0, encoded.Length, 
decoded, 0, decoded.Length);
 
-            Assert.AreEqual(BinaryDump(binary, binary.Length), 
BinaryDump(decoded, decoded.Length), "Round trip decode/decode returned 
different results:\noriginal: " + BinaryDump(binary, binary.Length) + "\n 
encoded: " + CharArrayDump(encoded, encoded.Length) + "\n decoded: " + 
BinaryDump(decoded, decoded.Length));
+            Assert.AreEqual(BinaryDump(binary, binary.Length), 
BinaryDump(decoded, decoded.Length),
+                "Round trip decode/decode returned different 
results:\noriginal: "
+                + BinaryDump(binary, binary.Length) + "\n encoded: "
+                + CharArrayDump(encoded, encoded.Length) + "\n decoded: "
+                + BinaryDump(decoded, decoded.Length));
         }
 
         [Test]
@@ -88,7 +94,8 @@ namespace Lucene.Net.Util
                 int originalComparison = String.CompareOrdinal(new 
string(originalString1, 0, numBytes1),
                                                                new 
string(originalString2, 0, numBytes2));
 
-                originalComparison = originalComparison < 0 ? -1 : 
originalComparison > 0 ? 1 : 0;
+                originalComparison = originalComparison < 0 ? -1
+                    : originalComparison > 0 ? 1 : 0;
 
                 int encodedLen1 = 
IndexableBinaryStringTools.GetEncodedLength(originalArray1, 0, numBytes1);
                 if (encodedLen1 > encoded1.Length)
@@ -109,7 +116,13 @@ namespace Lucene.Net.Util
 
                 encodedComparison = encodedComparison < 0 ? -1 : 
encodedComparison > 0 ? 1 : 0;
 
-                Assert.AreEqual(originalComparison, encodedComparison, "Test 
#" + (testNum + 1) + ": Original bytes and encoded chars compare differently:" 
+ " \nbinary 1: " + BinaryDump(originalArray1, numBytes1) + " \nbinary 2: " + 
BinaryDump(original2, numBytes2) + "\nencoded 1: " + CharArrayDump(encoded1, 
encodedLen1) + "\nencoded 2: " + CharArrayDump(encoded2, encodedLen2));
+                Assert.AreEqual(originalComparison, encodedComparison,
+                    "Test #" + (testNum + 1) +
+                    ": Original bytes and encoded chars compare differently:"
+                    + " \nbinary 1: " + BinaryDump(originalArray1, numBytes1)
+                    + " \nbinary 2: " + BinaryDump(original2, numBytes2)
+                    + "\nencoded 1: " + CharArrayDump(encoded1, encodedLen1)
+                    + "\nencoded 2: " + CharArrayDump(encoded2, encodedLen2));
             }
         }
 
@@ -142,7 +155,10 @@ namespace Lucene.Net.Util
             sbyte[] decoded = new sbyte[decodedLen];
             IndexableBinaryStringTools.Decode(encoded, 0, encoded.Length, 
decoded, 0, decoded.Length);
 
-            Assert.AreEqual(BinaryDump(binary, binary.Length), 
BinaryDump(decoded, decoded.Length), "Round trip decode/decode returned 
different results:" + "\n  original: " + BinaryDump(binary, binary.Length) + 
"\ndecodedBuf: " + BinaryDump(decoded, decoded.Length));
+            Assert.AreEqual(BinaryDump(binary, binary.Length), 
BinaryDump(decoded, decoded.Length),
+                "Round trip decode/decode returned different results:"
+                + "\n  original: " + BinaryDump(binary, binary.Length)
+                + "\ndecodedBuf: " + BinaryDump(decoded, decoded.Length));
         }
 
         [Test]
@@ -170,7 +186,12 @@ namespace Lucene.Net.Util
                 int decodedLen = 
IndexableBinaryStringTools.GetDecodedLength(encoded, 0, encodedLen);
                 IndexableBinaryStringTools.Decode(encoded, 0, encodedLen, 
decoded, 0, decodedLen);
 
-                Assert.AreEqual(BinaryDump(binary, numBytes), 
BinaryDump(decoded, decodedLen), "Test #" + (testNum + 1) + ": Round trip 
decode/decode returned different results:" + "\n  original: " + 
BinaryDump(binary, numBytes) + "\nencodedBuf: " + CharArrayDump(encoded, 
encodedLen) + "\ndecodedBuf: " + BinaryDump(decoded, decodedLen));
+                Assert.AreEqual(BinaryDump(binary, numBytes), 
BinaryDump(decoded, decodedLen),
+                    "Test #" + (testNum + 1) +
+                    ": Round trip decode/decode returned different results:" +
+                    "\n  original: " + BinaryDump(binary, numBytes) +
+                    "\nencodedBuf: " + CharArrayDump(encoded, encodedLen) +
+                    "\ndecodedBuf: " + BinaryDump(decoded, decodedLen));
             }
         }
 
@@ -212,4 +233,4 @@ namespace Lucene.Net.Util
             return buf.ToString();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestIntroSorter.cs 
b/src/Lucene.Net.Tests/Util/TestIntroSorter.cs
index 81be1d5a2..feef59d2b 100644
--- a/src/Lucene.Net.Tests/Util/TestIntroSorter.cs
+++ b/src/Lucene.Net.Tests/Util/TestIntroSorter.cs
@@ -1,5 +1,3 @@
-using Assert = Lucene.Net.TestFramework.Assert;
-
 namespace Lucene.Net.Util
 {
     /*
@@ -19,6 +17,7 @@ namespace Lucene.Net.Util
      * limitations under the License.
      */
 
+    [TestFixture]
     public class TestIntroSorter : BaseSortTestCase
     {
         public TestIntroSorter()
@@ -31,4 +30,4 @@ namespace Lucene.Net.Util
             return new ArrayIntroSorter<Entry>(arr, 
ArrayUtil.GetNaturalComparer<Entry>());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestIntsRef.cs 
b/src/Lucene.Net.Tests/Util/TestIntsRef.cs
index 35c5c004b..954a78f7f 100644
--- a/src/Lucene.Net.Tests/Util/TestIntsRef.cs
+++ b/src/Lucene.Net.Tests/Util/TestIntsRef.cs
@@ -71,4 +71,4 @@ namespace Lucene.Net.Util
         }
 #endif
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestLongBitSet.cs 
b/src/Lucene.Net.Tests/Util/TestLongBitSet.cs
index 109f7cc49..482ddaa40 100644
--- a/src/Lucene.Net.Tests/Util/TestLongBitSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestLongBitSet.cs
@@ -117,12 +117,12 @@ namespace Lucene.Net.Util
                         idx = Random.Next(sz);
                         a.Flip(idx);
                         b.Flip(idx, idx + 1);
-                        
+
                         bool val2 = b.Get(idx);
                         bool val = b.GetAndSet(idx);
                         Assert.IsTrue(val2 == val);
                         Assert.IsTrue(b.Get(idx));
-                        
+
                         if (!val)
                         {
                             b.Clear(idx);
@@ -133,7 +133,7 @@ namespace Lucene.Net.Util
 
                 // test that the various ways of accessing the bits are 
equivalent
                 DoGet(a, b);
-                
+
                 // test ranges, including possible extension
                 int fromIndex, toIndex;
                 fromIndex = Random.Next(sz / 2);
@@ -474,4 +474,4 @@ namespace Lucene.Net.Util
         }
 #endif
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestMathUtil.cs 
b/src/Lucene.Net.Tests/Util/TestMathUtil.cs
index e2392c971..74beb8982 100644
--- a/src/Lucene.Net.Tests/Util/TestMathUtil.cs
+++ b/src/Lucene.Net.Tests/Util/TestMathUtil.cs
@@ -1,6 +1,5 @@
 using NUnit.Framework;
 using RandomizedTesting.Generators;
-using System;
 using Assert = Lucene.Net.TestFramework.Assert;
 
 namespace Lucene.Net.Util
@@ -58,6 +57,8 @@ namespace Lucene.Net.Util
         }
 
         // slow version used for testing
+        // LUCENENET: semantics changed to a Try pattern as BigInteger could 
overflow long
+        // LUCENENET: l1/l2 parameters renamed to a/b to potentially avoid 
reader confusion with 11/12
         private static bool TryGetGcd(long a, long b, out long result)
         {
             result = 0;
@@ -79,6 +80,7 @@ namespace Lucene.Net.Util
                 long l1 = RandomLong();
                 long l2 = RandomLong();
                 long gcd = MathUtil.Gcd(l1, l2);
+                // LUCENENET: test changed to use Try pattern, was: final long 
actualGcd = gcd(l1, l2);
                 if (TryGetGcd(l1, l2, out long actualGcd))
                 {
                     Assert.AreEqual(actualGcd, gcd);
@@ -210,4 +212,4 @@ namespace Lucene.Net.Util
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestMergedIterator.cs 
b/src/Lucene.Net.Tests/Util/TestMergedIterator.cs
index 3242f3944..05c63144f 100644
--- a/src/Lucene.Net.Tests/Util/TestMergedIterator.cs
+++ b/src/Lucene.Net.Tests/Util/TestMergedIterator.cs
@@ -3,7 +3,10 @@ using System;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
 using Assert = Lucene.Net.TestFramework.Assert;
-using RandomizedTesting.Generators;
+
+#if !FEATURE_RANDOM_NEXTINT64_NEXTSINGLE
+using RandomizedTesting.Generators; // for Random.NextInt64 extension method
+#endif
 
 namespace Lucene.Net.Util
 {
@@ -36,13 +39,13 @@ namespace Lucene.Net.Util
             IEnumerator<int> merged = new MergedEnumerator<int>();
             Assert.IsFalse(merged.MoveNext());
 
-            merged = new MergedEnumerator<int>((new 
JCG.List<int>()).GetEnumerator());
+            merged = new MergedEnumerator<int>(new 
JCG.List<int>().GetEnumerator());
             Assert.IsFalse(merged.MoveNext());
 
             IEnumerator<int>[] itrs = new IEnumerator<int>[Random.Next(100)];
             for (int i = 0; i < itrs.Length; i++)
             {
-                itrs[i] = (new JCG.List<int>()).GetEnumerator();
+                itrs[i] = new JCG.List<int>().GetEnumerator();
             }
             merged = new MergedEnumerator<int>(itrs);
             Assert.IsFalse(merged.MoveNext());
@@ -192,13 +195,13 @@ namespace Lucene.Net.Util
             IEnumerator<int> merged = new MergedIterator<int>();
             Assert.IsFalse(merged.MoveNext());
 
-            merged = new MergedIterator<int>((new 
JCG.List<int>()).GetEnumerator());
+            merged = new MergedIterator<int>(new 
JCG.List<int>().GetEnumerator());
             Assert.IsFalse(merged.MoveNext());
 
             IEnumerator<int>[] itrs = new IEnumerator<int>[Random.Next(100)];
             for (int i = 0; i < itrs.Length; i++)
             {
-                itrs[i] = (new JCG.List<int>()).GetEnumerator();
+                itrs[i] = new JCG.List<int>().GetEnumerator();
             }
             merged = new MergedIterator<int>(itrs);
             Assert.IsFalse(merged.MoveNext());
@@ -343,4 +346,4 @@ namespace Lucene.Net.Util
             Assert.IsFalse(mergedItr.MoveNext());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestNamedSPILoader.cs 
b/src/Lucene.Net.Tests/Util/TestNamedSPILoader.cs
index 57a7446ce..bd4f61a5a 100644
--- a/src/Lucene.Net.Tests/Util/TestNamedSPILoader.cs
+++ b/src/Lucene.Net.Tests/Util/TestNamedSPILoader.cs
@@ -56,4 +56,4 @@ namespace Lucene.Net.Util
             Assert.IsTrue(codecs.Contains("Lucene46"));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestNumericUtils.cs 
b/src/Lucene.Net.Tests/Util/TestNumericUtils.cs
index 2d13918fa..3c2b3d4b4 100644
--- a/src/Lucene.Net.Tests/Util/TestNumericUtils.cs
+++ b/src/Lucene.Net.Tests/Util/TestNumericUtils.cs
@@ -553,4 +553,4 @@ namespace Lucene.Net.Util
         }
 #endif
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestOfflineSorter.cs 
b/src/Lucene.Net.Tests/Util/TestOfflineSorter.cs
index 50fc13f83..dc5efe6ea 100644
--- a/src/Lucene.Net.Tests/Util/TestOfflineSorter.cs
+++ b/src/Lucene.Net.Tests/Util/TestOfflineSorter.cs
@@ -307,4 +307,4 @@ namespace Lucene.Net.Util
             Assert.Throws<ArgumentOutOfRangeException>(() => 
OfflineSorter.BufferSize.Megabytes(-1), "min mb is 0.5");
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestOpenBitSet.cs 
b/src/Lucene.Net.Tests/Util/TestOpenBitSet.cs
index cb48bfa3f..a50009ac1 100644
--- a/src/Lucene.Net.Tests/Util/TestOpenBitSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestOpenBitSet.cs
@@ -513,4 +513,4 @@ namespace Lucene.Net.Util
             Assert.IsTrue(smaller.Get(66));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestPForDeltaDocIdSet.cs 
b/src/Lucene.Net.Tests/Util/TestPForDeltaDocIdSet.cs
index 6732d1286..aadbb7f88 100644
--- a/src/Lucene.Net.Tests/Util/TestPForDeltaDocIdSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestPForDeltaDocIdSet.cs
@@ -38,4 +38,4 @@ namespace Lucene.Net.Util
             Assert.AreEqual(ds1.Cardinality, ds2.Cardinality);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestPagedBytes.cs 
b/src/Lucene.Net.Tests/Util/TestPagedBytes.cs
index 40098f164..20982180c 100644
--- a/src/Lucene.Net.Tests/Util/TestPagedBytes.cs
+++ b/src/Lucene.Net.Tests/Util/TestPagedBytes.cs
@@ -53,20 +53,20 @@ namespace Lucene.Net.Util
                 int blockSize = 1 << blockBits;
                 PagedBytes p = new PagedBytes(blockBits);
                 IndexOutput @out = dir.CreateOutput("foo", IOContext.DEFAULT);
-                int numBytes = TestUtil.NextInt32(LuceneTestCase.Random, 2, 
10000000);
+                int numBytes = TestUtil.NextInt32(Random, 2, 10000000);
 
                 byte[] answer = new byte[numBytes];
-                LuceneTestCase.Random.NextBytes(answer);
+                Random.NextBytes(answer);
                 int written = 0;
                 while (written < numBytes)
                 {
-                    if (LuceneTestCase.Random.Next(10) == 7)
+                    if (Random.Next(10) == 7)
                     {
                         @out.WriteByte(answer[written++]);
                     }
                     else
                     {
-                        int chunk = Math.Min(LuceneTestCase.Random.Next(1000), 
numBytes - written);
+                        int chunk = Math.Min(Random.Next(1000), numBytes - 
written);
                         @out.WriteBytes(answer, written, chunk);
                         written += chunk;
                     }
@@ -83,13 +83,13 @@ namespace Lucene.Net.Util
                 int read = 0;
                 while (read < numBytes)
                 {
-                    if (LuceneTestCase.Random.Next(10) == 7)
+                    if (Random.Next(10) == 7)
                     {
                         verify[read++] = @in.ReadByte();
                     }
                     else
                     {
-                        int chunk = Math.Min(LuceneTestCase.Random.Next(1000), 
numBytes - read);
+                        int chunk = Math.Min(Random.Next(1000), numBytes - 
read);
                         @in.ReadBytes(verify, read, chunk);
                         read += chunk;
                     }
@@ -104,7 +104,7 @@ namespace Lucene.Net.Util
                     reader.FillSlice(slice, pos, len);
                     for (int byteUpto = 0; byteUpto < len; byteUpto++)
                     {
-                        Assert.AreEqual(answer[pos + byteUpto], 
(byte)slice.Bytes[slice.Offset + byteUpto]);
+                        Assert.AreEqual(answer[pos + byteUpto], 
slice.Bytes[slice.Offset + byteUpto]);
                     }
                 }
                 input.Dispose();
@@ -126,20 +126,20 @@ namespace Lucene.Net.Util
                 int blockSize = 1 << blockBits;
                 PagedBytes p = new PagedBytes(blockBits);
                 DataOutput @out = p.GetDataOutput();
-                int numBytes = LuceneTestCase.Random.Next(10000000);
+                int numBytes = Random.Next(10000000);
 
                 byte[] answer = new byte[numBytes];
-                LuceneTestCase.Random.NextBytes(answer);
+                Random.NextBytes(answer);
                 int written = 0;
                 while (written < numBytes)
                 {
-                    if (LuceneTestCase.Random.Next(10) == 7)
+                    if (Random.Next(10) == 7)
                     {
                         @out.WriteByte(answer[written++]);
                     }
                     else
                     {
-                        int chunk = Math.Min(LuceneTestCase.Random.Next(1000), 
numBytes - written);
+                        int chunk = Math.Min(Random.Next(1000), numBytes - 
written);
                         @out.WriteBytes(answer, written, chunk);
                         written += chunk;
                     }
@@ -153,13 +153,13 @@ namespace Lucene.Net.Util
                 int read = 0;
                 while (read < numBytes)
                 {
-                    if (LuceneTestCase.Random.Next(10) == 7)
+                    if (Random.Next(10) == 7)
                     {
                         verify[read++] = @in.ReadByte();
                     }
                     else
                     {
-                        int chunk = Math.Min(LuceneTestCase.Random.Next(1000), 
numBytes - read);
+                        int chunk = Math.Min(Random.Next(1000), numBytes - 
read);
                         @in.ReadBytes(verify, read, chunk);
                         read += chunk;
                     }
@@ -174,7 +174,7 @@ namespace Lucene.Net.Util
                     reader.FillSlice(slice, pos, len);
                     for (int byteUpto = 0; byteUpto < len; byteUpto++)
                     {
-                        Assert.AreEqual(answer[pos + byteUpto], 
(byte)slice.Bytes[slice.Offset + byteUpto]);
+                        Assert.AreEqual(answer[pos + byteUpto], 
slice.Bytes[slice.Offset + byteUpto]);
                     }
                 }
             }
@@ -223,4 +223,4 @@ namespace Lucene.Net.Util
             dir.Dispose();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs 
b/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs
index b41d658af..13999d826 100644
--- a/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs
+++ b/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs
@@ -348,7 +348,7 @@ namespace Lucene.Net.Util
                 return 0;
 
             }
-        } 
+        }
 
         [Ignore("Increase heap size to run this test")]
         [Test, LuceneNetSpecific]
@@ -365,7 +365,7 @@ namespace Lucene.Net.Util
             // A valid maximum size
             maxSize = 12345;
             pq = new IntegerQueue(maxSize);
-            
+
             // Cannot construct a negative size heap
             maxSize = -3;
             try
@@ -552,7 +552,7 @@ namespace Lucene.Net.Util
             pq.Add(7);
             pq.Pop();
             Assert.AreEqual(pq.Count, 0);
-            
+
             // Add a bunch of elements, pop them all
             pq.Add(1);
             pq.Add(20);
@@ -724,7 +724,7 @@ namespace Lucene.Net.Util
         {
             // Tests adding elements to full queues
             // Add's documentation claims throwing an IndexOutOfRangeException 
in this situation
-            
+
             // Add an element to a prepopulated queue
             int maxSize = 10;
             PriorityQueue<int?> pq = new IntegerQueue(maxSize, true);
@@ -1198,4 +1198,4 @@ namespace Lucene.Net.Util
 
 #endregion
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestQueryBuilder.cs 
b/src/Lucene.Net.Tests/Util/TestQueryBuilder.cs
index 02105267f..794d460d2 100644
--- a/src/Lucene.Net.Tests/Util/TestQueryBuilder.cs
+++ b/src/Lucene.Net.Tests/Util/TestQueryBuilder.cs
@@ -57,8 +57,7 @@ namespace Lucene.Net.Util
             expected.Add(new TermQuery(new Term("field", "foo")), 
Occur.SHOULD);
             expected.Add(new TermQuery(new Term("field", "bar")), 
Occur.SHOULD);
             QueryBuilder builder = new QueryBuilder(new MockAnalyzer(Random));
-            Assert.IsTrue(expected.Equals(builder.CreateBooleanQuery("field", 
"foo bar")));
-            //Assert.AreEqual(expected, builder.CreateBooleanQuery("field", 
"foo bar"));
+            Assert.AreEqual(expected, builder.CreateBooleanQuery("field", "foo 
bar"));
         }
 
         [Test]
@@ -429,4 +428,4 @@ namespace Lucene.Net.Util
             Assert.AreEqual(expected, builder.CreatePhraseQuery("field", "中国", 
3));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestRamUsageEstimator.cs 
b/src/Lucene.Net.Tests/Util/TestRamUsageEstimator.cs
index f51fdfc58..f92912f87 100644
--- a/src/Lucene.Net.Tests/Util/TestRamUsageEstimator.cs
+++ b/src/Lucene.Net.Tests/Util/TestRamUsageEstimator.cs
@@ -86,7 +86,7 @@ namespace Lucene.Net.Util
             }
         }
 
-        
+
        [Test]
         public virtual void TestReferenceSize()
         {
@@ -151,4 +151,4 @@ namespace Lucene.Net.Util
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestRamUsageEstimatorOnWildAnimals.cs 
b/src/Lucene.Net.Tests/Util/TestRamUsageEstimatorOnWildAnimals.cs
index 6d4f309b3..f8e57ccbf 100644
--- a/src/Lucene.Net.Tests/Util/TestRamUsageEstimatorOnWildAnimals.cs
+++ b/src/Lucene.Net.Tests/Util/TestRamUsageEstimatorOnWildAnimals.cs
@@ -67,4 +67,4 @@ namespace Lucene.Net.Util
         }
 #endif
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestRecyclingByteBlockAllocator.cs 
b/src/Lucene.Net.Tests/Util/TestRecyclingByteBlockAllocator.cs
index 0e04bd836..501386232 100644
--- a/src/Lucene.Net.Tests/Util/TestRecyclingByteBlockAllocator.cs
+++ b/src/Lucene.Net.Tests/Util/TestRecyclingByteBlockAllocator.cs
@@ -1,8 +1,6 @@
 using J2N.Collections.Generic.Extensions;
 using NUnit.Framework;
 using System;
-using System.Collections.Generic;
-using System.Linq;
 using Assert = Lucene.Net.TestFramework.Assert;
 using JCG = J2N.Collections.Generic;
 
@@ -39,7 +37,7 @@ namespace Lucene.Net.Util
 
         private RecyclingByteBlockAllocator NewAllocator()
         {
-            return new RecyclingByteBlockAllocator(1 << (2 + Random.Next(15)), 
Random.Next(97), Util.Counter.NewCounter());
+            return new RecyclingByteBlockAllocator(1 << (2 + Random.Next(15)), 
Random.Next(97), Counter.NewCounter());
         }
 
         [Test]
@@ -151,4 +149,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestRecyclingIntBlockAllocator.cs 
b/src/Lucene.Net.Tests/Util/TestRecyclingIntBlockAllocator.cs
index a3d681136..d13a81552 100644
--- a/src/Lucene.Net.Tests/Util/TestRecyclingIntBlockAllocator.cs
+++ b/src/Lucene.Net.Tests/Util/TestRecyclingIntBlockAllocator.cs
@@ -2,7 +2,6 @@
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using System.Linq;
 using Assert = Lucene.Net.TestFramework.Assert;
 using JCG = J2N.Collections.Generic;
 
@@ -151,4 +150,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs 
b/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs
index 2a4be4b2a..de30241f2 100644
--- a/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs
+++ b/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs
@@ -109,4 +109,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestSentinelIntSet.cs 
b/src/Lucene.Net.Tests/Util/TestSentinelIntSet.cs
index e9231d233..3e769afcc 100644
--- a/src/Lucene.Net.Tests/Util/TestSentinelIntSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestSentinelIntSet.cs
@@ -75,4 +75,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestSetOnce.cs 
b/src/Lucene.Net.Tests/Util/TestSetOnce.cs
index 2f572eb54..4af4b812c 100644
--- a/src/Lucene.Net.Tests/Util/TestSetOnce.cs
+++ b/src/Lucene.Net.Tests/Util/TestSetOnce.cs
@@ -1,10 +1,13 @@
 using J2N.Threading;
 using NUnit.Framework;
-using RandomizedTesting.Generators;
 using System;
 using System.Globalization;
 using Assert = Lucene.Net.TestFramework.Assert;
 
+#if !FEATURE_RANDOM_NEXTINT64_NEXTSINGLE
+using RandomizedTesting.Generators; // for Random.NextInt64 extension method
+#endif
+
 namespace Lucene.Net.Util
 {
     /*
@@ -126,4 +129,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestSloppyMath.cs 
b/src/Lucene.Net.Tests/Util/TestSloppyMath.cs
index de988ff53..7348b0efb 100644
--- a/src/Lucene.Net.Tests/Util/TestSloppyMath.cs
+++ b/src/Lucene.Net.Tests/Util/TestSloppyMath.cs
@@ -131,4 +131,4 @@ namespace Lucene.Net.Util
             Assert.AreEqual(8.572, SloppyMath.Haversin(40.7143528, 
-74.0059731, 40.65, -73.95), 0.01D);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestSmallFloat.cs 
b/src/Lucene.Net.Tests/Util/TestSmallFloat.cs
index 106985ec9..ca18ea9c1 100644
--- a/src/Lucene.Net.Tests/Util/TestSmallFloat.cs
+++ b/src/Lucene.Net.Tests/Util/TestSmallFloat.cs
@@ -158,4 +158,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestStringHelper.cs 
b/src/Lucene.Net.Tests/Util/TestStringHelper.cs
index 396d3e42e..9576da5fd 100644
--- a/src/Lucene.Net.Tests/Util/TestStringHelper.cs
+++ b/src/Lucene.Net.Tests/Util/TestStringHelper.cs
@@ -33,4 +33,4 @@ namespace Lucene.Net.Util
             Assert.AreEqual(0x2c628cd0, 
(uint)StringHelper.Murmurhash3_x86_32(new BytesRef("You want weapons? We're in 
a library! Books! The best weapons in the world!"), 3476));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestTimSorter.cs 
b/src/Lucene.Net.Tests/Util/TestTimSorter.cs
index e9dd7ba99..0bcc503ce 100644
--- a/src/Lucene.Net.Tests/Util/TestTimSorter.cs
+++ b/src/Lucene.Net.Tests/Util/TestTimSorter.cs
@@ -29,4 +29,4 @@ namespace Lucene.Net.Util
             return new ArrayTimSorter<Entry>(arr, 
ArrayUtil.GetNaturalComparer<Entry>(), TestUtil.NextInt32(Random, 0, 
arr.Length));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs 
b/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs
index 27801bc99..bb8e736a7 100644
--- a/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs
+++ b/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs
@@ -328,4 +328,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestVersion.cs 
b/src/Lucene.Net.Tests/Util/TestVersion.cs
index 4283d2ec1..14e7ee460 100644
--- a/src/Lucene.Net.Tests/Util/TestVersion.cs
+++ b/src/Lucene.Net.Tests/Util/TestVersion.cs
@@ -80,4 +80,4 @@ namespace Lucene.Net.Util
         }
     }
 #pragma warning restore 612, 618
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestVersionComparator.cs 
b/src/Lucene.Net.Tests/Util/TestVersionComparator.cs
index 14f2976b7..2b3b33592 100644
--- a/src/Lucene.Net.Tests/Util/TestVersionComparator.cs
+++ b/src/Lucene.Net.Tests/Util/TestVersionComparator.cs
@@ -58,4 +58,4 @@ namespace Lucene.Net.Util
             Assert.IsTrue(comp.Compare("3.0", Convert.ToString(int.MinValue, 
CultureInfo.InvariantCulture)) > 0);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestVirtualMethod.cs 
b/src/Lucene.Net.Tests/Util/TestVirtualMethod.cs
index 0ac784141..450eb9480 100644
--- a/src/Lucene.Net.Tests/Util/TestVirtualMethod.cs
+++ b/src/Lucene.Net.Tests/Util/TestVirtualMethod.cs
@@ -145,4 +145,4 @@ namespace Lucene.Net.Util
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Lucene.Net.Tests/Util/TestWAH8DocIdSet.cs 
b/src/Lucene.Net.Tests/Util/TestWAH8DocIdSet.cs
index d9a0a9c44..effc8b5ec 100644
--- a/src/Lucene.Net.Tests/Util/TestWAH8DocIdSet.cs
+++ b/src/Lucene.Net.Tests/Util/TestWAH8DocIdSet.cs
@@ -33,7 +33,7 @@ namespace Lucene.Net.Util
         public override WAH8DocIdSet CopyOf(BitSet bs, int length)
         {
             int indexInterval = TestUtil.NextInt32(Random, 8, 256);
-            WAH8DocIdSet.Builder builder = (WAH8DocIdSet.Builder)(new 
WAH8DocIdSet.Builder()).SetIndexInterval(indexInterval);
+            WAH8DocIdSet.Builder builder = (WAH8DocIdSet.Builder)new 
WAH8DocIdSet.Builder().SetIndexInterval(indexInterval);
             for (int i = bs.NextSetBit(0); i != -1; i = bs.NextSetBit(i + 1))
             {
                 builder.Add(i);
@@ -41,10 +41,11 @@ namespace Lucene.Net.Util
             return builder.Build();
         }
 
+        // LUCENENET: Added to support OpenBitSet, see OpenBitSet documentation
         public WAH8DocIdSet CopyOf(OpenBitSet bs, int length)
         {
             int indexInterval = TestUtil.NextInt32(Random, 8, 256);
-            WAH8DocIdSet.Builder builder = (WAH8DocIdSet.Builder)(new 
WAH8DocIdSet.Builder()).SetIndexInterval(indexInterval);
+            WAH8DocIdSet.Builder builder = (WAH8DocIdSet.Builder)new 
WAH8DocIdSet.Builder().SetIndexInterval(indexInterval);
             for (int i = bs.NextSetBit(0); i != -1; i = bs.NextSetBit(i + 1))
             {
                 builder.Add(i);
@@ -92,6 +93,7 @@ namespace Lucene.Net.Util
             AssertEquals(numBits, expected, union);
         }
 
+        // LUCENENET specific - added to support OpenBitSet, see OpenBitSet 
documentation
         /// <summary>
         /// Create a random set which has <paramref name="numBitsSet"/> of its 
<paramref name="numBits"/> bits set. </summary>
         protected static OpenBitSet RandomOpenSet(int numBits, int numBitsSet)
@@ -121,6 +123,7 @@ namespace Lucene.Net.Util
             return set;
         }
 
+        // LUCENENET specific - added to support OpenBitSet, see OpenBitSet 
documentation
         /// <summary>
         /// Same as <see cref="RandomSet(int, int)"/> but given a load factor. 
</summary>
         protected static OpenBitSet RandomOpenSet(int numBits, float 
percentSet)
@@ -128,6 +131,7 @@ namespace Lucene.Net.Util
             return RandomOpenSet(numBits, (int)(percentSet * numBits));
         }
 
+        // LUCENENET specific - added to support OpenBitSet, see OpenBitSet 
documentation
         /// <summary>
         /// Assert that the content of the <see cref="DocIdSet"/> is the same 
as the content of the <see cref="OpenBitSet"/>.
         /// </summary>
@@ -212,6 +216,8 @@ namespace Lucene.Net.Util
         [Test]
         public virtual void TestIntersection()
         {
+            // LUCENENET: using OpenBitSet instead of BitSet in this test, see 
OpenBitSet documentation for rationale
+
             int numBits = TestUtil.NextInt32(Random, 100, 1 << 20);
             int numDocIdSets = TestUtil.NextInt32(Random, 1, 4);
             IList<OpenBitSet> fixedSets = new 
JCG.List<OpenBitSet>(numDocIdSets);
@@ -246,4 +252,4 @@ namespace Lucene.Net.Util
             AssertEquals(numBits, expected, union);
         }
     }
-}
\ No newline at end of file
+}

Reply via email to