Beispiel #1
0
		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);
		}
Beispiel #3
0
		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);
		}
Beispiel #4
0
		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);
		}