Esempio n. 1
0
		public void Ustuzhanina_Katerina()
		{
			var result = new FioTransformer().GetVariants("Устюжанина Катерина", null);
			Assert.NotNull(result.FirstOrDefault(x => x.Fio == "УСТЮЖАНИНОЙ ЕКАТЕРИНЫ"));


		}
Esempio n. 2
0
		public void Baranov_Arsenij_Tvorit_LastName_Bug()
		{
			var result = new FioTransformer().GetVariants("Баранов Арсений");
			Console.WriteLine(string.Join("\r\n", result.Where(x=>x.Padezh==Padezh.Tvorit).Select(x=>x.Fio)));
			Assert.False(result.Any(x => x.Padezh == Padezh.Tvorit && x.Fio == "БАРАНОВОМ АРСЕНИЕМ"));
			Assert.True(result.Any(x => x.Padezh == Padezh.Tvorit && x.Fio == "БАРАНОВЫМ АРСЕНИЕМ"));
		}
Esempio n. 3
0
		public void Hisamov_Ilya_Bug() {
			var result = new FioTransformer().GetVariants("Хисамов Илья", null);
			Assert.NotNull(result.FirstOrDefault(x=>x.Fio=="ХИСАМОВА ИЛЬИ"));
			result = FioTransformerSqlFunctions.GetFioVariants("Хисамов Илья", 0).OfType<FioVariant>();
			var test = result.FirstOrDefault(x => x.Fio == "ХИСАМОВА ИЛЬИ");
			Assert.NotNull(test);

		}
Esempio n. 4
0
		public void Borin_Pavel_All()
		{
			var result = new FioTransformer().GetVariants("Борина Мария Анатольевна",new FioTransformerOptions{NotDotedAbbrevations = true,SelfLastNameWeight = 60});
			foreach (var fioVariant in result) {
				Console.WriteLine(fioVariant.Padezh+ " "+ fioVariant.Fio);
			}

		}
Esempio n. 5
0
		public void Borin_Pavel()
		{
			var result = new FioTransformer().GetVariants("Борин Павел", null);
			Assert.NotNull(result.FirstOrDefault(x => x.Fio == "БОРИНА ПАВЛА"));
			result = FioTransformerSqlFunctions.GetFioVariants("Борин Павел", 0).OfType<FioVariant>();
			var test = result.FirstOrDefault(x => x.Fio == "БОРИНА ПАВЛА");
			Assert.NotNull(test);

		}
		public static IEnumerable GetFioVariants(SqlString stringtotest, SqlInt32 lastNameWeight) {
			if (stringtotest.IsNull) {
				yield break;
			}
			var options = FioTransformerOptions.Default;
			if (!lastNameWeight.IsNull) {
				options.SelfLastNameWeight = lastNameWeight.Value;
			}
			var result =
				new FioTransformer().GetVariants(stringtotest.Value, options)
					.GroupBy(x => x.Fio).Select(
						g =>
						new FioVariant(g.Key, g.Max(x => x.Weight), g.Min(x => x.Padezh), g.Min(x => x.OnlyLastName),
						               g.Min(x => x.AddNameUsed), g.Min(x => x.Abbrevated), g.Min(x => x.LastNameFirst)));
			foreach (var variant in result) {
				yield return variant;
			}
		}
		public static IEnumerable GetFioVariantsEx(SqlString stringtotest, SqlBoolean usefamilyonly, SqlBoolean lastfirstonly,
		                                           SqlBoolean mergeabbr) {
			if (stringtotest.IsNull) {
				yield break;
			}
			var options = FioTransformerOptions.Default;
			if (usefamilyonly.IsTrue) {
				options.SelfLastNameWeight = 60;
				
			}
            options.NotDotedAbbrevations = mergeabbr.IsTrue;
		    options.IgnoreErrors = true;
			var result =
				new FioTransformer().GetVariants(stringtotest.Value, options)
					.Where(x => lastfirstonly.IsFalse || x.LastNameFirst)
					.GroupBy(x => x.Fio).Select(
						g =>
						new FioVariant(g.Key, g.Max(x => x.Weight), g.Min(x => x.Padezh), g.Min(x => x.OnlyLastName),
						               g.Min(x => x.AddNameUsed), g.Min(x => x.Abbrevated), g.Min(x => x.LastNameFirst)));
			foreach (var variant in result) {
				yield return variant;
			}
		}
Esempio n. 8
0
		public void Borina_Marina_Bug()
		{
			var result = new FioTransformer().GetVariants("Борина Мария Анатольевна");
			Assert.False(result.Any(x => x.Padezh == Padezh.Rodit && x.Fio == "БОРИНЫ МАРИИ"));
			Assert.True(result.Any(x => x.Padezh == Padezh.Rodit && x.Fio == "БОРИНОЙ МАРИИ"));
		}
Esempio n. 9
0
	    public void Abaturov_Alexandr_Kuzmich_in_RODIT()
	    {
            var result = new FioTransformer().GetVariants("Абатуров Александр Кузьмич").First(_=>_.Abbrevated==false && _.LastNameFirst==false && _.Padezh==Padezh.Rodit && _.AddNameUsed);
            Assert.AreEqual("АЛЕКСАНДРА КУЗЬМИЧА АБАТУРОВА",result.Fio);
	    }
		/// <summary>
		/// 	Выполняет преобразование фамили в набор вариантов
		/// </summary>
		/// <returns> </returns>
		protected override object MainProcess() {
			var opts = new FioTransformerOptions
				{AutoSex = true, NotDotedAbbrevations = usemergedabbr, SelfLastNameWeight = uselastname ? 100 : 0};
			var scaner = new FioTransformer();
			return scaner.GetVariants(fio, opts).ToArray();
		}