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 2017/01/31 17:55:35 UTC
[02/50] [abbrv] lucenenet git commit: Lucene.Net.Core.Support:
Consolidated ReverseComparer functionality into the
Support.Compaitiblity.Collections class.
Lucene.Net.Core.Support: Consolidated ReverseComparer functionality into the Support.Compaitiblity.Collections class.
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/15b94d2a
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/15b94d2a
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/15b94d2a
Branch: refs/heads/api-work
Commit: 15b94d2ad02f5a0aefc30de4d304df5ac91f45d1
Parents: 2391561
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Tue Jan 31 10:54:16 2017 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Tue Jan 31 11:19:00 2017 +0700
----------------------------------------------------------------------
.../Support/Compatibility/Collections.cs | 28 +++++++++++++++-----
src/Lucene.Net.Tests/core/Util/TestArrayUtil.cs | 14 +++++-----
.../core/Util/TestCollectionUtil.cs | 22 +++++++--------
3 files changed, 37 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/15b94d2a/src/Lucene.Net.Core/Support/Compatibility/Collections.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Support/Compatibility/Collections.cs b/src/Lucene.Net.Core/Support/Compatibility/Collections.cs
index 9412424..d0ba71d 100644
--- a/src/Lucene.Net.Core/Support/Compatibility/Collections.cs
+++ b/src/Lucene.Net.Core/Support/Compatibility/Collections.cs
@@ -38,7 +38,7 @@ namespace Lucene.Net
public static IComparer<T> ReverseOrder<T>()
{
- return (IComparer<T>)ReverseComparer.REVERSE_ORDER;
+ return (IComparer<T>)ReverseComparer<T>.REVERSE_ORDER;
}
public static IComparer<T> ReverseOrder<T>(IComparer<T> cmp)
@@ -306,14 +306,28 @@ namespace Lucene.Net
#region ReverseComparer
- internal class ReverseComparer : IComparer<IComparable>
- {
- internal static readonly ReverseComparer REVERSE_ORDER = new ReverseComparer();
+ //private class ReverseComparer : IComparer<IComparable>
+ //{
+ // internal static readonly ReverseComparer REVERSE_ORDER = new ReverseComparer();
+
+ // public int Compare(IComparable c1, IComparable c2)
+ // {
+ // return c2.CompareTo(c1);
+ // }
+ //}
+
+ // LUCENENET NOTE: When consolidating this, it turns out that only the
+ // CaseInsensitiveComparer works correctly in .NET (not sure why).
+ // So, this hybrid was made from the original Java implementation and the
+ // original implemenation (above) that used CaseInsensitiveComparer.
+ public class ReverseComparer<T> : IComparer<T>
+ {
+ internal static readonly ReverseComparer<T> REVERSE_ORDER = new ReverseComparer<T>();
- public int Compare(IComparable c1, IComparable c2)
+ public int Compare(T x, T y)
{
- return c2.CompareTo(c1);
+ return (new CaseInsensitiveComparer()).Compare(y, x);
}
}
@@ -321,7 +335,7 @@ namespace Lucene.Net
#region ReverseComparer2
- internal class ReverseComparer2<T> : IComparer<T>
+ private class ReverseComparer2<T> : IComparer<T>
{
/**
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/15b94d2a/src/Lucene.Net.Tests/core/Util/TestArrayUtil.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/Util/TestArrayUtil.cs b/src/Lucene.Net.Tests/core/Util/TestArrayUtil.cs
index 0b0c27c..58c2c21 100644
--- a/src/Lucene.Net.Tests/core/Util/TestArrayUtil.cs
+++ b/src/Lucene.Net.Tests/core/Util/TestArrayUtil.cs
@@ -169,8 +169,6 @@ namespace Lucene.Net.Util
return a;
}
- private CollectionsHelper.ReverseComparer<int> ReverseOrder = new CollectionsHelper.ReverseComparer<int>();
-
[Test]
public virtual void TestIntroSort()
{
@@ -185,8 +183,8 @@ namespace Lucene.Net.Util
a1 = CreateRandomArray(2000);
a2 = (int[])a1.Clone();
- ArrayUtil.IntroSort(a1, ReverseOrder);
- Array.Sort(a2, ReverseOrder);
+ ArrayUtil.IntroSort(a1, Collections.ReverseOrder<int>());
+ Array.Sort(a2, Collections.ReverseOrder<int>());
Assert.AreEqual(a2, a1);
// reverse back, so we can test that completely backwards sorted array (worst case) is working:
ArrayUtil.IntroSort(a1);
@@ -234,8 +232,8 @@ namespace Lucene.Net.Util
a1 = CreateRandomArray(2000);
a2 = (int[])a1.Clone();
- ArrayUtil.TimSort(a1, ReverseOrder);
- Array.Sort(a2, ReverseOrder);
+ ArrayUtil.TimSort(a1, Collections.ReverseOrder<int>());
+ Array.Sort(a2, Collections.ReverseOrder<int>());
Assert.AreEqual(a2, a1);
// reverse back, so we can test that completely backwards sorted array (worst case) is working:
ArrayUtil.TimSort(a1);
@@ -352,8 +350,8 @@ namespace Lucene.Net.Util
int[] a = new int[0];
ArrayUtil.IntroSort(a);
ArrayUtil.TimSort(a);
- ArrayUtil.IntroSort(a, ReverseOrder);
- ArrayUtil.TimSort(a, ReverseOrder);
+ ArrayUtil.IntroSort(a, Collections.ReverseOrder<int>());
+ ArrayUtil.TimSort(a, Collections.ReverseOrder<int>());
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/15b94d2a/src/Lucene.Net.Tests/core/Util/TestCollectionUtil.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/Util/TestCollectionUtil.cs b/src/Lucene.Net.Tests/core/Util/TestCollectionUtil.cs
index 0f3ed18..f89c837 100644
--- a/src/Lucene.Net.Tests/core/Util/TestCollectionUtil.cs
+++ b/src/Lucene.Net.Tests/core/Util/TestCollectionUtil.cs
@@ -26,8 +26,6 @@ namespace Lucene.Net.Util
[TestFixture]
public class TestCollectionUtil : LuceneTestCase
{
- private CollectionsHelper.ReverseComparer<int> ReverseOrder = new CollectionsHelper.ReverseComparer<int>();
-
private List<int> CreateRandomList(int maxSize)
{
Random rnd = Random();
@@ -51,8 +49,8 @@ namespace Lucene.Net.Util
list1 = CreateRandomList(2000);
list2 = new List<int>(list1);
- CollectionUtil.IntroSort<int>(list1, ReverseOrder);
- list2.Sort(ReverseOrder);
+ CollectionUtil.IntroSort(list1, Collections.ReverseOrder<int>());
+ list2.Sort(Collections.ReverseOrder<int>());
Assert.AreEqual(list2, list1);
// reverse back, so we can test that completely backwards sorted array (worst case) is working:
CollectionUtil.IntroSort(list1);
@@ -73,8 +71,8 @@ namespace Lucene.Net.Util
list1 = CreateRandomList(2000);
list2 = new List<int>(list1);
- CollectionUtil.TimSort(list1, ReverseOrder);
- list2.Sort(ReverseOrder);
+ CollectionUtil.TimSort(list1, Collections.ReverseOrder<int>());
+ list2.Sort(Collections.ReverseOrder<int>());
Assert.AreEqual(list2, list1);
// reverse back, so we can test that completely backwards sorted array (worst case) is working:
CollectionUtil.TimSort(list1);
@@ -90,15 +88,15 @@ namespace Lucene.Net.Util
IList<int> list = Arrays.AsList(new int[0]); // LUCENE-2989
CollectionUtil.IntroSort(list);
CollectionUtil.TimSort(list);
- CollectionUtil.IntroSort(list, ReverseOrder);
- CollectionUtil.TimSort(list, ReverseOrder);
+ CollectionUtil.IntroSort(list, Collections.ReverseOrder<int>());
+ CollectionUtil.TimSort(list, Collections.ReverseOrder<int>());
// check that empty non-random access lists pass sorting without ex (as sorting is not needed)
list = new List<int>();
CollectionUtil.IntroSort(list);
CollectionUtil.TimSort(list);
- CollectionUtil.IntroSort(list, ReverseOrder);
- CollectionUtil.TimSort(list, ReverseOrder);
+ CollectionUtil.IntroSort(list, Collections.ReverseOrder<int>());
+ CollectionUtil.TimSort(list, Collections.ReverseOrder<int>());
}
[Test]
@@ -109,8 +107,8 @@ namespace Lucene.Net.Util
list.Add(1);
CollectionUtil.IntroSort(list);
CollectionUtil.TimSort(list);
- CollectionUtil.IntroSort(list, ReverseOrder);
- CollectionUtil.TimSort(list, ReverseOrder);
+ CollectionUtil.IntroSort(list, Collections.ReverseOrder<int>());
+ CollectionUtil.TimSort(list, Collections.ReverseOrder<int>());
}
}
}
\ No newline at end of file