You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2019/08/07 22:26:21 UTC

[lucenenet] 24/42: BUG: Lucene.Net.TestFramework.Index.AlcoholicMergePolicy: The value chosen for Hour was supposed to be random, but it was setup to be a constant by a mistranslation from Java to .NET

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

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

commit c120519f51f663febf8268491a38360fada6c27d
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sun Aug 4 02:50:57 2019 +0700

    BUG: Lucene.Net.TestFramework.Index.AlcoholicMergePolicy: The value chosen for Hour was supposed to be random, but it was setup to be a constant by a mistranslation from Java to .NET
---
 .../Index/AlcoholicMergePolicy.cs                  | 36 ++++++++++------------
 1 file changed, 16 insertions(+), 20 deletions(-)

diff --git a/src/Lucene.Net.TestFramework/Index/AlcoholicMergePolicy.cs b/src/Lucene.Net.TestFramework/Index/AlcoholicMergePolicy.cs
index 07089f4..60b3b3a 100644
--- a/src/Lucene.Net.TestFramework/Index/AlcoholicMergePolicy.cs
+++ b/src/Lucene.Net.TestFramework/Index/AlcoholicMergePolicy.cs
@@ -1,5 +1,4 @@
 using System;
-using System.Globalization;
 using System.Linq;
 
 namespace Lucene.Net.Index
@@ -39,43 +38,40 @@ namespace Lucene.Net.Index
     /// </summary>
     public class AlcoholicMergePolicy : LogMergePolicy
     {
-        private readonly Random Random;
-        private readonly DateTime Calendar;
+        private readonly Random random;
+        private readonly DateTime calendar;
 
         public AlcoholicMergePolicy(Random random)
         {
-            this.Calendar = new GregorianCalendar().ToDateTime(1970, 1, 1, 0, 0, 0, (int)TestUtil.NextLong(random, 0, long.MaxValue));
-            this.Random = random;
+            // LUCENENET NOTE: All we care about here is that we have a random distribution of "Hour", picking any valid
+            // date at random achives this. We have no actual need to create a Calendar object in .NET.
+            this.calendar = new DateTime(TestUtil.NextLong(random, DateTime.MinValue.Ticks, DateTime.MaxValue.Ticks));
+            this.random = random;
             m_maxMergeSize = TestUtil.NextInt(random, 1024 * 1024, int.MaxValue);
         }
 
         protected override long Size(SegmentCommitInfo info)
         {
-            int hourOfDay = Calendar.Hour;
-            if (hourOfDay < 6 || hourOfDay > 20 || Random.Next(23) == 5)
+            int hourOfDay = calendar.Hour;
+            if (hourOfDay < 6 || hourOfDay > 20 || random.Next(23) == 5)
             // its 5 o'clock somewhere
             {
-                Drink.Drink_e[] values = Enum.GetValues(typeof(Drink.Drink_e)).Cast<Drink.Drink_e>().ToArray();
+                Drink[] values = Enum.GetValues(typeof(Drink)).Cast<Drink>().ToArray();
                 // pick a random drink during the day
-                Drink.Drink_e drink = values[Random.Next(values.Length - 1)];
+                Drink drink = values[random.Next(values.Length - 1)];
                 return (long)drink * info.GetSizeInBytes();
             }
 
             return info.GetSizeInBytes();
         }
 
-        private class Drink
+        private enum Drink
         {
-            private const int NumDrinks = 5;
-
-            internal enum Drink_e
-            {
-                Beer = 15,
-                Wine = 17,
-                Champagne = 21,
-                WhiteRussian = 22,
-                SingleMalt = 30
-            }
+            Beer = 15,
+            Wine = 17,
+            Champagne = 21,
+            WhiteRussian = 22,
+            SingleMalt = 30
         }
     }
 }
\ No newline at end of file