public FileBasedMapReduceWritersTests() { dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var keyAndTypes = new List <KeyAndType>(); hasher0 = JComparer.Create(keyAndTypes); cmp0 = JComparer.Create(keyAndTypes); keyAndTypes.Add(new KeyAndType("k1", CompareType.Int)); hasher1 = JComparer.Create(keyAndTypes); cmp1 = JComparer.Create(keyAndTypes); keyAndTypes.Add(new KeyAndType("k2", CompareType.String)); hasher2 = JComparer.Create(keyAndTypes); cmp2 = JComparer.Create(keyAndTypes); keyAndTypes.Add(new KeyAndType("k3", CompareType.Double)); hasher3 = JComparer.Create(keyAndTypes); cmp3 = JComparer.Create(keyAndTypes); Console.WriteLine("Hasher0={0}, cmp0={1}", hasher0, cmp0); Console.WriteLine("Hasher1={0}, cmp1={1}", hasher1, cmp1); Console.WriteLine("Hasher2={0}, cmp2={1}", hasher2, cmp2); Console.WriteLine("Hasher3={0}, cmp3={1}", hasher3, cmp3); }
private static void checkHash(JObject o, JComparer hasher, int expHash, int expNullIndex) { int nullIndex; int h = hasher.GetHash(o, out nullIndex); Assert.AreEqual(expHash, h); Assert.AreEqual(expHash, hasher.GetHash(o)); Assert.AreEqual(expNullIndex, nullIndex); }
private List <JObject> sortAndDump(List <JObject> list, JComparer cmp, string p) { Console.WriteLine("Dumping entries after sorting {0}...", p); list.Sort(cmp); foreach (var o in list) { Console.WriteLine("-- " + o.ToString(Newtonsoft.Json.Formatting.None)); } return(list); }
public void TestCmpString() { //var cmp = JComparer.Create(new List<JPath> { new JPath("k2") }, new List<CompareType>() { CompareType.String }); //var cmpI = JComparer.Create(new List<JPath> { new JPath("k2") }, new List<CompareType>() { CompareType.String | CompareType.CaseInsensitive }); //var cmpRev = JComparer.Create(new List<JPath> { new JPath("k2") }, new List<CompareType>() { CompareType.String | CompareType.Descending }); var cmp = JComparer.Create(new List <KeyAndType> { new KeyAndType("k2", CompareType.String) }); var cmpI = JComparer.Create(new List <KeyAndType> { new KeyAndType("k2", CompareType.String | CompareType.CaseInsensitive) }); var cmpRev = JComparer.Create(new List <KeyAndType> { new KeyAndType("k2", CompareType.String | CompareType.Descending) }); JObject o1 = Create(1, "aB", 23); JObject o2 = Create("AB", 23); JObject o3 = Create(2, "bb"); JObject o4 = Create(2, ""); JObject o5 = Create(2, null); checkCompare(o1, o1, cmp, 0); checkCompare(o1, o1, cmpI, 0); checkCompare(o1, o1, cmpRev, 0); checkCompare(o4, o5, cmp, 0); checkCompare(o4, o5, cmpI, 0); checkCompare(o4, o5, cmpRev, 0); checkCompare(o1, o3, cmp, -1); checkCompare(o1, o2, cmp, 1); checkCompare(o1, o2, cmpI, 0); checkCompare(o1, o2, cmpRev, -1); var list = new List <JObject>(); list.Add(o1); list.Add(o2); list.Add(o3); list.Add(o4); list.Add(o5); list.Add(Create("BB", 23)); list.Add(Create("Bb", 23)); list.Add(Create("bB", 23)); list.Add(Create("c", 23)); list.Add(Create("C", 23)); sortAndDump(list, cmp, "Case-sens"); sortAndDump(list, cmpI, "Case-in-sens"); }
private static void checkCompare(JObject a, JObject b, JComparer cmp, int exp) { int rc = cmp.Compare(a, b); if (rc < 0) { rc = -1; } else if (rc > 0) { rc = 1; } Assert.AreEqual(exp, rc); }
public void TestCmpNull() { var cmp = JComparer.Create(new List <KeyAndType> { new KeyAndType("k1", CompareType.Int) }); var cmpRev = JComparer.Create(new List <KeyAndType> { new KeyAndType("k1", CompareType.Int | CompareType.Descending) }); // { CompareType.Int | CompareType.Descending }); JObject o1 = Create(1, "22", 23); JObject o2 = Create("22", 23); JObject o3 = Create(2, "22"); checkCompare(o1, o3, cmp, -1); checkCompare(o2, o3, cmp, -1); checkCompare(o2, o2, cmp, 0); checkCompare(o3, o2, cmp, 1); checkCompare(o2, o2, cmpRev, 0); checkCompare(o3, o2, cmpRev, -1); }