Пример #1
0
		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);
		}
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
		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);
		}
Пример #10
0
		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);
		}