You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sy...@apache.org on 2014/09/16 00:52:53 UTC

[02/13] git commit: Made tests deterministic

Made tests deterministic

All calls to Random use a Random object with a fixed seed now. Until we
can integrate proper unit test randomization, we're going to keep tests
deterministic for ease of debugging.


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/8d49ec79
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/8d49ec79
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/8d49ec79

Branch: refs/heads/master
Commit: 8d49ec7978525ae13cc466a9a23791da60ef2d7f
Parents: 8db47fa
Author: Prad Nelluru <pr...@microsoft.com>
Authored: Tue Sep 9 14:03:31 2014 -0700
Committer: Prad Nelluru <pr...@microsoft.com>
Committed: Tue Sep 9 14:03:31 2014 -0700

----------------------------------------------------------------------
 .../JavaCompatibility/LuceneTestCase.cs         |  5 ---
 .../Util/LuceneTestCase.cs                      |  2 +-
 .../Util/TestRuleSetupAndRestoreClassEnv.cs     |  4 +--
 .../core/Analysis/TestMockAnalyzer.cs           | 38 ++++++++++----------
 .../core/Document/TestBinaryDocument.cs         |  2 +-
 5 files changed, 23 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8d49ec79/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs b/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs
index cf9f59c..0f83822 100644
--- a/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs
@@ -100,10 +100,5 @@ namespace Lucene.Net
         {
             Assert.Fail(message);
         }
-
-        protected Random Random()
-        {
-            return new Random();
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8d49ec79/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
index 7e441e7..24c74a5 100644
--- a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
@@ -650,7 +650,7 @@ namespace Lucene.Net.Util
         /// </summary>
         public static Random Random()
         {
-            return new Random();
+            return new Random(1);
             //return RandomizedContext.Current.Random;
         }
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8d49ec79/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs b/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
index 7090d5c..9ee5c68 100644
--- a/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
+++ b/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
@@ -195,8 +195,8 @@ namespace Lucene.Net.Util
             }
             Codec.Default = Codec;
             */
-            Random random = new Random();
-            Similarity = random.NextBoolean() ? (Similarity)new DefaultSimilarity() : new RandomSimilarityProvider(new Random());
+            Random random = new Random(1);
+            Similarity = random.NextBoolean() ? (Similarity)new DefaultSimilarity() : new RandomSimilarityProvider(new Random(1));
             /*
             // Check codec restrictions once at class level.
             try

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8d49ec79/src/Lucene.Net.Tests/core/Analysis/TestMockAnalyzer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/Analysis/TestMockAnalyzer.cs b/src/Lucene.Net.Tests/core/Analysis/TestMockAnalyzer.cs
index e84c912..d6f4fac 100644
--- a/src/Lucene.Net.Tests/core/Analysis/TestMockAnalyzer.cs
+++ b/src/Lucene.Net.Tests/core/Analysis/TestMockAnalyzer.cs
@@ -52,7 +52,7 @@ namespace Lucene.Net.Analysis
         [Test]
         public virtual void TestWhitespace()
         {
-            Analyzer a = new MockAnalyzer(new Random());
+            Analyzer a = new MockAnalyzer(Random());
             AssertAnalyzesTo(a, "A bc defg hiJklmn opqrstuv wxy z ", new string[] { "a", "bc", "defg", "hijklmn", "opqrstuv", "wxy", "z" });
             AssertAnalyzesTo(a, "aba cadaba shazam", new string[] { "aba", "cadaba", "shazam" });
             AssertAnalyzesTo(a, "break on whitespace", new string[] { "break", "on", "whitespace" });
@@ -63,7 +63,7 @@ namespace Lucene.Net.Analysis
         [Test]
         public virtual void TestSimple()
         {
-            Analyzer a = new MockAnalyzer(new Random(), MockTokenizer.SIMPLE, true);
+            Analyzer a = new MockAnalyzer(Random(), MockTokenizer.SIMPLE, true);
             AssertAnalyzesTo(a, "a-bc123 defg+hijklmn567opqrstuv78wxy_z ", new string[] { "a", "bc", "defg", "hijklmn", "opqrstuv", "wxy", "z" });
             AssertAnalyzesTo(a, "aba4cadaba-Shazam", new string[] { "aba", "cadaba", "shazam" });
             AssertAnalyzesTo(a, "break+on/Letters", new string[] { "break", "on", "letters" });
@@ -74,7 +74,7 @@ namespace Lucene.Net.Analysis
         [Test]
         public virtual void TestKeyword()
         {
-            Analyzer a = new MockAnalyzer(new Random(), MockTokenizer.KEYWORD, false);
+            Analyzer a = new MockAnalyzer(Random(), MockTokenizer.KEYWORD, false);
             AssertAnalyzesTo(a, "a-bc123 defg+hijklmn567opqrstuv78wxy_z ", new string[] { "a-bc123 defg+hijklmn567opqrstuv78wxy_z " });
             AssertAnalyzesTo(a, "aba4cadaba-Shazam", new string[] { "aba4cadaba-Shazam" });
             AssertAnalyzesTo(a, "break+on/Nothing", new string[] { "break+on/Nothing" });
@@ -101,11 +101,11 @@ namespace Lucene.Net.Analysis
         public virtual void TestTwoChars()
         {
             CharacterRunAutomaton single = new CharacterRunAutomaton((new RegExp("..")).ToAutomaton());
-            Analyzer a = new MockAnalyzer(new Random(), single, false);
+            Analyzer a = new MockAnalyzer(Random(), single, false);
             AssertAnalyzesTo(a, "foobar", new string[] { "fo", "ob", "ar" }, new int[] { 0, 2, 4 }, new int[] { 2, 4, 6 });
             // make sure when last term is a "partial" match that End() is correct
             AssertTokenStreamContents(a.TokenStream("bogus", new StringReader("fooba")), new string[] { "fo", "ob" }, new int[] { 0, 2 }, new int[] { 2, 4 }, new int[] { 1, 1 }, new int?(5));
-            CheckRandomData(new Random(), a, 100);
+            CheckRandomData(Random(), a, 100);
         }
 
         /// <summary>
@@ -114,11 +114,11 @@ namespace Lucene.Net.Analysis
         public virtual void TestThreeChars()
         {
             CharacterRunAutomaton single = new CharacterRunAutomaton((new RegExp("...")).ToAutomaton());
-            Analyzer a = new MockAnalyzer(new Random(), single, false);
+            Analyzer a = new MockAnalyzer(Random(), single, false);
             AssertAnalyzesTo(a, "foobar", new string[] { "foo", "bar" }, new int[] { 0, 3 }, new int[] { 3, 6 });
             // make sure when last term is a "partial" match that End() is correct
             AssertTokenStreamContents(a.TokenStream("bogus", new StringReader("fooba")), new string[] { "foo" }, new int[] { 0 }, new int[] { 3 }, new int[] { 1 }, new int?(5));
-            CheckRandomData(new Random(), a, 100);
+            CheckRandomData(Random(), a, 100);
         }
 
         /// <summary>
@@ -127,10 +127,10 @@ namespace Lucene.Net.Analysis
         public virtual void TestUppercase()
         {
             CharacterRunAutomaton single = new CharacterRunAutomaton((new RegExp("[A-Z][a-z]*")).ToAutomaton());
-            Analyzer a = new MockAnalyzer(new Random(), single, false);
+            Analyzer a = new MockAnalyzer(Random(), single, false);
             AssertAnalyzesTo(a, "FooBarBAZ", new string[] { "Foo", "Bar", "B", "A", "Z" }, new int[] { 0, 3, 6, 7, 8 }, new int[] { 3, 6, 7, 8, 9 });
             AssertAnalyzesTo(a, "aFooBar", new string[] { "Foo", "Bar" }, new int[] { 1, 4 }, new int[] { 4, 7 });
-            CheckRandomData(new Random(), a, 100);
+            CheckRandomData(Random(), a, 100);
         }
 
         /// <summary>
@@ -138,7 +138,7 @@ namespace Lucene.Net.Analysis
         [Test]
         public virtual void TestStop()
         {
-            Analyzer a = new MockAnalyzer(new Random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET);
+            Analyzer a = new MockAnalyzer(Random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET);
             AssertAnalyzesTo(a, "the quick brown a fox", new string[] { "quick", "brown", "fox" }, new int[] { 2, 1, 2 });
         }
 
@@ -148,7 +148,7 @@ namespace Lucene.Net.Analysis
         public virtual void TestKeep()
         {
             CharacterRunAutomaton keepWords = new CharacterRunAutomaton(BasicOperations.Complement(Automaton.Union(Arrays.AsList(BasicAutomata.MakeString("foo"), BasicAutomata.MakeString("bar")))));
-            Analyzer a = new MockAnalyzer(new Random(), MockTokenizer.SIMPLE, true, keepWords);
+            Analyzer a = new MockAnalyzer(Random(), MockTokenizer.SIMPLE, true, keepWords);
             AssertAnalyzesTo(a, "quick foo brown bar bar fox foo", new string[] { "foo", "bar", "bar", "foo" }, new int[] { 2, 2, 1, 2 });
         }
 
@@ -158,7 +158,7 @@ namespace Lucene.Net.Analysis
         public virtual void TestLength()
         {
             CharacterRunAutomaton length5 = new CharacterRunAutomaton((new RegExp(".{5,}")).ToAutomaton());
-            Analyzer a = new MockAnalyzer(new Random(), MockTokenizer.WHITESPACE, true, length5);
+            Analyzer a = new MockAnalyzer(Random(), MockTokenizer.WHITESPACE, true, length5);
             AssertAnalyzesTo(a, "ok toolong fine notfine", new string[] { "ok", "fine" }, new int[] { 1, 2 });
         }
 
@@ -193,7 +193,7 @@ namespace Lucene.Net.Analysis
         {
             string testString = "t";
 
-            Analyzer analyzer = new MockAnalyzer(new Random());
+            Analyzer analyzer = new MockAnalyzer(Random());
             Exception priorException = null;
             TokenStream stream = analyzer.TokenStream("dummy", new StringReader(testString));
             try
@@ -222,7 +222,7 @@ namespace Lucene.Net.Analysis
         [Test]
         public virtual void TestRandomStrings()
         {
-            CheckRandomData(new Random(), new MockAnalyzer(new Random()), AtLeast(1000));
+            CheckRandomData(Random(), new MockAnalyzer(Random()), AtLeast(1000));
         }
 
         /// <summary>
@@ -235,9 +235,9 @@ namespace Lucene.Net.Analysis
             {
                 CharacterRunAutomaton dfa = new CharacterRunAutomaton(AutomatonTestUtil.RandomAutomaton(Random()));
                 bool lowercase = Random().NextBoolean();
-                int limit = TestUtil.NextInt(new Random(), 0, 500);
+                int limit = TestUtil.NextInt(Random(), 0, 500);
                 Analyzer a = new AnalyzerAnonymousInnerClassHelper2(this, dfa, lowercase, limit);
-                CheckRandomData(new Random(), a, 100);
+                CheckRandomData(Random(), a, 100);
                 a.Dispose();
             }
         }
@@ -271,7 +271,7 @@ namespace Lucene.Net.Analysis
             int num = AtLeast(10000);
             for (int i = 0; i < num; i++)
             {
-                string s = TestUtil.RandomHtmlishString(new Random(), 20);
+                string s = TestUtil.RandomHtmlishString(Random(), 20);
                 StringReader reader = new StringReader(s);
                 MockCharFilter charfilter = new MockCharFilter(reader, 2);
                 MockAnalyzer analyzer = new MockAnalyzer(Random());
@@ -301,7 +301,7 @@ namespace Lucene.Net.Analysis
         public virtual void TestWrapReader()
         {
             // LUCENE-5153: test that wrapping an analyzer's reader is allowed
-            Random random = new Random();
+            Random random = Random();
 
             Analyzer @delegate = new MockAnalyzer(random);
             Analyzer a = new AnalyzerWrapperAnonymousInnerClassHelper(this, @delegate.Strategy, @delegate);
@@ -344,7 +344,7 @@ namespace Lucene.Net.Analysis
             // LUCENE-5324: check that it is possible to change the wrapper's gaps
             int positionGap = Random().Next(1000);
             int offsetGap = Random().Next(1000);
-            Analyzer @delegate = new MockAnalyzer(new Random());
+            Analyzer @delegate = new MockAnalyzer(Random());
             Analyzer a = new AnalyzerWrapperAnonymousInnerClassHelper2(this, @delegate.Strategy, positionGap, offsetGap, @delegate);
 
             RandomIndexWriter writer = new RandomIndexWriter(Random(), NewDirectory());

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8d49ec79/src/Lucene.Net.Tests/core/Document/TestBinaryDocument.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/Document/TestBinaryDocument.cs b/src/Lucene.Net.Tests/core/Document/TestBinaryDocument.cs
index 7ebf0af..a678c34 100644
--- a/src/Lucene.Net.Tests/core/Document/TestBinaryDocument.cs
+++ b/src/Lucene.Net.Tests/core/Document/TestBinaryDocument.cs
@@ -59,7 +59,7 @@ namespace Lucene.Net.Document
             /// <summary>
             /// add the doc to a ram index </summary>
             Directory dir = NewDirectory();
-            Random r = new Random();
+            Random r = Random();
             RandomIndexWriter writer = new RandomIndexWriter(r, dir);
             writer.AddDocument(doc);