public void PersistSimpleSorter() { string xml; IcuComparer icomp = new IcuComparer("fr"); GenRecordSorter grs = new GenRecordSorter(icomp); xml = DynamicLoader.PersistObject(grs, "sorter"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); Assert.AreEqual("sorter", doc.DocumentElement.Name); object obj = DynamicLoader.RestoreObject(doc.DocumentElement); try { Assert.IsInstanceOf<GenRecordSorter>(obj); GenRecordSorter grsOut = obj as GenRecordSorter; IComparer compOut = grsOut.Comparer; Assert.IsTrue(compOut is IcuComparer); Assert.AreEqual("fr", (compOut as IcuComparer).WsCode); } finally { var disposable = obj as IDisposable; if (disposable != null) disposable.Dispose(); } }
public void SortIsAlphabeticalForNullSearchString() { var enWs = Cache.DefaultAnalWs; var nullString = Cache.TsStrFactory.MakeString(null, enWs); var sorter = new GenRecordSorter(new StringFinderCompare(new OwnMlPropFinder(Cache.DomainDataByFlid, m_CitationFlid, Cache.DefaultAnalWs), new WritingSystemComparer((IWritingSystem)Cache.WritingSystemFactory.get_EngineOrNull(Cache.DefaultAnalWs)))); var resultsSorter = new FindResultSorter(nullString, sorter); var records = CreateRecords(new[] { "c", "b", "a" }); resultsSorter.Sort(records); VerifySortOrder(new[] { "a", "b", "c" }, records); }
public void PersistSimpleSorter() { IcuComparer icomp = new IcuComparer("fr"); GenRecordSorter grs = new GenRecordSorter(icomp); string xml = DynamicLoader.PersistObject(grs, "sorter"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); Assert.AreEqual("sorter", doc.DocumentElement.Name); object obj = DynamicLoader.RestoreObject(doc.DocumentElement); Assert.IsTrue(obj is GenRecordSorter); GenRecordSorter grsOut = obj as GenRecordSorter; IComparer compOut = grsOut.Comparer; Assert.IsTrue(compOut is IcuComparer); Assert.AreEqual("fr", (compOut as IcuComparer).WsCode); }
public void PersistAndSorter() { string xml; IcuComparer icomp1 = new IcuComparer("fr"), icomp2 = new IcuComparer("en"); GenRecordSorter grs1 = new GenRecordSorter(icomp1), grs2 = new GenRecordSorter(icomp2); ArrayList sorters = new ArrayList(); sorters.Add(grs1); sorters.Add(grs2); AndSorter asorter = new AndSorter(sorters); xml = DynamicLoader.PersistObject(asorter, "sorter"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); Assert.AreEqual("sorter", doc.DocumentElement.Name); object obj = DynamicLoader.RestoreObject(doc.DocumentElement); m_objectsToDispose.Add(obj); Assert.IsInstanceOf<AndSorter>(obj); ArrayList sortersOut = (obj as AndSorter).Sorters; GenRecordSorter grsOut1 = sortersOut[0] as GenRecordSorter; GenRecordSorter grsOut2 = sortersOut[1] as GenRecordSorter; IComparer compOut1 = grsOut1.Comparer; IComparer compOut2 = grsOut2.Comparer; Assert.IsTrue(compOut1 is IcuComparer); Assert.IsTrue(compOut2 is IcuComparer); Assert.AreEqual("fr", (compOut1 as IcuComparer).WsCode); Assert.AreEqual("en", (compOut2 as IcuComparer).WsCode); }
public void FullMatchIsCaseIgnorant() { var enWs = Cache.DefaultAnalWs; var matchString = Cache.TsStrFactory.MakeString("bob", enWs); var sorter = new GenRecordSorter(new StringFinderCompare(new OwnMlPropFinder(Cache.DomainDataByFlid, m_CitationFlid, Cache.DefaultAnalWs), new WritingSystemComparer((IWritingSystem)Cache.WritingSystemFactory.get_EngineOrNull(Cache.DefaultAnalWs)))); var resultsSorter = new FindResultSorter(matchString, sorter); var records = CreateRecords(new[] { "c", "Bob", "a", "Bob and more" }); resultsSorter.Sort(records); VerifySortOrder(new[] { "Bob", "Bob and more", "a", "c" }, records); }
public void EmptyDataForIndirectStringPropertyDoesNotCrash() { var enWs = Cache.DefaultAnalWs; var matchString = Cache.TsStrFactory.MakeString("irrelevant", enWs); // create a sorter that looks at the collection of definitions from the senses var sorter = new GenRecordSorter(new StringFinderCompare(new OneIndirectMlPropFinder(Cache.DomainDataByFlid, LexEntryTags.kflidSenses, m_DefinitionFlid, Cache.DefaultVernWs), new WritingSystemComparer((IWritingSystem)Cache.WritingSystemFactory.get_EngineOrNull(Cache.DefaultVernWs)))); var records = CreateRecords("WithDef", "WithoutDef"); // SUT var resultsSorter = new FindResultSorter(matchString, sorter); resultsSorter.Sort(records); // order here isn't really the SUT. The fact that we got here is the real test. VerifySortOrder(new[] { "WithoutDef", "WithDef" }, records); }