public void Ustuzhanina_Katerina() { var result = new FioTransformer().GetVariants("Устюжанина Катерина", null); Assert.NotNull(result.FirstOrDefault(x => x.Fio == "УСТЮЖАНИНОЙ ЕКАТЕРИНЫ")); }
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 == "БАРАНОВЫМ АРСЕНИЕМ")); }
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); }
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); } }
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; } }
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 == "БОРИНОЙ МАРИИ")); }
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(); }