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 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 StartsWithMatchSortsFirstAlphabeticalAfter() { var enWs = Cache.DefaultAnalWs; var matchString = Cache.TsStrFactory.MakeString("b", 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" }); resultsSorter.Sort(records); VerifySortOrder(new[] { "bob", "a", "c" }, records); }
public void SortIsAlphabeticalIfNoMatches() { var enWs = Cache.DefaultAnalWs; var noMatchString = TsStringUtils.MakeString("z", enWs); var sorter = new GenRecordSorter(new StringFinderCompare(new OwnMlPropFinder(Cache.DomainDataByFlid, m_CitationFlid, Cache.DefaultAnalWs), new WritingSystemComparer((CoreWritingSystemDefinition)Cache.WritingSystemFactory.get_EngineOrNull(Cache.DefaultAnalWs)))); var resultsSorter = new FindResultSorter(noMatchString, sorter); var records = CreateRecords(new[] { "c", "b", "a" }); resultsSorter.Sort(records); VerifySortOrder(new [] { "a", "b", "c" }, records); }
public void FullMatchIsFollowedByStartsWithAlphabeticalAfter() { var enWs = Cache.DefaultAnalWs; var matchString = TsStringUtils.MakeString("bob", enWs); var sorter = new GenRecordSorter(new StringFinderCompare(new OwnMlPropFinder(Cache.DomainDataByFlid, m_CitationFlid, Cache.DefaultAnalWs), new WritingSystemComparer((CoreWritingSystemDefinition)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); }
public void OtherLanguageSystemCollationWhenCollationInValid() { var enWs = Cache.DefaultAnalWs; var matchString = TsStringUtils.MakeString("buburuq", enWs); CoreWritingSystemDefinition mvpWs = (CoreWritingSystemDefinition)Cache.WritingSystemFactory.get_EngineOrNull(enWs); mvpWs.DefaultCollation = new SystemCollationDefinition { LanguageTag = "mvp" }; var sorter = new GenRecordSorter(new StringFinderCompare(new OwnMlPropFinder(Cache.DomainDataByFlid, m_CitationFlid, enWs), new WritingSystemComparer(mvpWs))); var resultsSorter = new FindResultSorter(matchString, sorter); var records = CreateRecords(new[] { "Ramban", "buburuq" }); resultsSorter.Sort(records); VerifySortOrder(new[] { "buburuq", "Ramban" }, records); }
public void SortDoesNotThrowWhenIcuRulesAreInvalid() { var enWs = Cache.DefaultAnalWs; var matchString = TsStringUtils.MakeString("buburuq", enWs); CoreWritingSystemDefinition mvpWs = (CoreWritingSystemDefinition)Cache.WritingSystemFactory.get_EngineOrNull(enWs); mvpWs.DefaultCollation = new IcuRulesCollationDefinition("standard") { IcuRules = "a < b" }; var sorter = new GenRecordSorter(new StringFinderCompare(new OwnMlPropFinder(Cache.DomainDataByFlid, m_CitationFlid, enWs), new WritingSystemComparer(mvpWs))); var resultsSorter = new FindResultSorter(matchString, sorter); var records = CreateRecords(new[] { "Ramban", "buburuq" }); Assert.DoesNotThrow(() => resultsSorter.Sort(records)); VerifySortOrder(new[] { "buburuq", "Ramban" }, records); }