/** * @param me * @param stayWithMe */ private void checkEquals(UnicodeMap <Integer> me, JCG.SortedDictionary <String, Integer> stayWithMe) { temp.Clear(); foreach (var e in me.EntrySet()) { temp.Add(e); } ISet <KeyValuePair <String, Integer> > entrySet = new JCG.HashSet <KeyValuePair <string, Integer> >(stayWithMe); if (!entrySet.SetEquals(temp)) { Logln(me.EntrySet().ToString()); Logln(me.ToString()); assertEquals("are in parallel", entrySet, temp); // we failed. Reset and start again entrySet.Clear(); temp.Clear(); return; } // ICU4N: looping through pairs instead of doing explicity table lookups is much faster foreach (var pair in stayWithMe) { assertEquals("containsKey", stayWithMe.ContainsKey(pair.Key), me.ContainsKey(pair.Key)); Integer value = pair.Value; assertEquals("get", value, me.Get(pair.Key)); assertEquals("containsValue", stayWithMe.ContainsValue(value), me.ContainsValue(value)); int cp = UnicodeSet.GetSingleCodePoint(pair.Key); if (cp != int.MaxValue) { assertEquals("get", value, me.Get(cp)); } } // ICU4N TODO: complete implementation //ISet<String> nonCodePointStrings = stayWithMe.tailMap("").keySet(); //if (nonCodePointStrings.Count == 0) nonCodePointStrings = null; // for parallel api //assertEquals("getNonRangeStrings", nonCodePointStrings, me.GetNonRangeStrings()); ISet <Integer> values = new JCG.SortedSet <Integer>(stayWithMe.Values); ISet <Integer> myValues = new JCG.SortedSet <Integer>(me.Values()); assertEquals("values", myValues, values); foreach (String key in stayWithMe.Keys) { assertEquals("containsKey", stayWithMe.ContainsKey(key), me.ContainsKey(key)); } }
protected virtual void AssertEquals(RandomDocument doc, Fields fields) { // compare field names Assert.AreEqual(doc is null, fields is null); Assert.AreEqual(doc.fieldNames.Length, fields.Count); ISet <string> fields1 = new JCG.HashSet <string>(); ISet <string> fields2 = new JCG.HashSet <string>(); for (int i = 0; i < doc.fieldNames.Length; ++i) { fields1.Add(doc.fieldNames[i]); } foreach (string field in fields) { fields2.Add(field); } Assert.IsTrue(fields1.SetEquals(fields2)); for (int i = 0; i < doc.fieldNames.Length; ++i) { AssertEquals(doc.tokenStreams[i], doc.fieldTypes[i], fields.GetTerms(doc.fieldNames[i])); } }