< Summary

Line coverage
100%
Covered lines: 157
Uncovered lines: 0
Coverable lines: 157
Total lines: 208
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: .cctor()100%11100%
File 2: .cctor()100%11100%
File 3: .cctor()100%11100%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Globalization/Inflection/Cultures/Inflectors.English.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="Inflectors.English.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using MyNet.Globalization.Culture;
 8
 9namespace MyNet.Globalization.Inflection.Cultures;
 10
 11public static partial class Inflectors
 12{
 13    /// <summary>
 14    /// Gets an inflector for the English language, which includes rules for pluralization and singularization of Englis
 15    /// </summary>
 616    public static IInflector English { get; } = Inflector.Create(SupportedCultures.English)
 617        .AddPluralRule("$", "s")
 618        .AddPluralRule("s$", "s")
 619        .AddPluralRule("(ax|test)is$", "$1es")
 620        .AddPluralRule("(octop|vir|alumn|fung|cact|foc|hippopotam|radi|stimul|syllab|nucle)us$", "$1i")
 621        .AddPluralRule("(alias|bias|iris|status|campus|apparatus|virus|walrus|trellis)$", "$1es")
 622        .AddPluralRule("(buffal|tomat|volcan|ech|embarg|her|mosquit|potat|torped|vet)o$", "$1oes")
 623        .AddPluralRule("([dti])um$", "$1a")
 624        .AddPluralRule("sis$", "ses")
 625        .AddPluralRule("(?:([^f])fe|([lr])f)$", "$1$2ves")
 626        .AddPluralRule("(hive)$", "$1s")
 627        .AddPluralRule("([^aeiouy]|qu)y$", "$1ies")
 628        .AddPluralRule("(x|ch|ss|sh)$", "$1es")
 629        .AddPluralRule("(matr|vert|ind|d)ix|ex$", "$1ices")
 630        .AddPluralRule("(^[m|l])ouse$", "$1ice")
 631        .AddPluralRule("^(ox)$", "$1en")
 632        .AddPluralRule("(quiz)$", "$1zes")
 633        .AddPluralRule("(buz|blit|walt)z$", "$1zes")
 634        .AddPluralRule("(hoo|lea|loa|thie)f$", "$1ves")
 635        .AddPluralRule("(alumn|alg|larv|vertebr)a$", "$1ae")
 636        .AddPluralRule("(criteri|phenomen)on$", "$1a")
 637        .AddSingularRule("s$", string.Empty)
 638        .AddSingularRule("(n)ews$", "$1ews")
 639        .AddSingularRule("([dti])a$", "$1um")
 640        .AddSingularRule("(analy|ba|diagno|parenthe|progno|synop|the|ellip|empha|neuro|oa|paraly)ses$", "$1sis")
 641        .AddSingularRule("([^f])ves$", "$1fe")
 642        .AddSingularRule("(hive)s$", "$1")
 643        .AddSingularRule("(tive)s$", "$1")
 644        .AddSingularRule("([lr]|hoo|lea|loa|thie)ves$", "$1f")
 645        .AddSingularRule("(^zomb)?([^aeiouy]|qu)ies$", "$2y")
 646        .AddSingularRule("(s)eries$", "$1eries")
 647        .AddSingularRule("(m)ovies$", "$1ovie")
 648        .AddSingularRule("(x|ch|ss|sh)es$", "$1")
 649        .AddSingularRule("(^[m|l])ice$", "$1ouse")
 650        .AddSingularRule("(o)es$", "$1")
 651        .AddSingularRule("(shoe)s$", "$1")
 652        .AddSingularRule("(cris|ax|test)es$", "$1is")
 653        .AddSingularRule("(octop|vir|alumn|fung|cact|foc|hippopotam|radi|stimul|syllab|nucle)i$", "$1us")
 654        .AddSingularRule("(alias|bias|iris|status|campus|apparatus|virus|walrus|trellis)es$", "$1")
 655        .AddSingularRule("^(ox)en", "$1")
 656        .AddSingularRule("(matr|d)ices$", "$1ix")
 657        .AddSingularRule("(vert|ind)ices$", "$1ex")
 658        .AddSingularRule("(quiz)zes$", "$1")
 659        .AddSingularRule("(buz|blit|walt)zes$", "$1z")
 660        .AddSingularRule("(alumn|alg|larv|vertebr)ae$", "$1a")
 661        .AddSingularRule("(criteri|phenomen)a$", "$1on")
 662        .AddSingularRule("([b|r|c]ook|room|smooth)ies$", "$1ie")
 663        .AddIrregular("person", "people")
 664        .AddIrregular("man", "men")
 665        .AddIrregular("human", "humans")
 666        .AddIrregular("child", "children")
 667        .AddIrregular("sex", "sexes")
 668        .AddIrregular("move", "moves")
 669        .AddIrregular("goose", "geese")
 670        .AddIrregular("wave", "waves")
 671        .AddIrregular("die", "dice")
 672        .AddIrregular("foot", "feet")
 673        .AddIrregular("tooth", "teeth")
 674        .AddIrregular("curriculum", "curricula")
 675        .AddIrregular("database", "databases")
 676        .AddIrregular("zombie", "zombies")
 677        .AddIrregular("personnel", "personnel")
 678        .AddIrregular("cache", "caches")
 679        .AddIrregular("is", "are", matchEnding: false)
 680        .AddIrregular("that", "those", matchEnding: false)
 681        .AddIrregular("this", "these", matchEnding: false)
 682        .AddIrregular("bus", "buses", matchEnding: false)
 683        .AddIrregular("staff", "staff", matchEnding: false)
 684        .AddUncountable("equipment")
 685        .AddUncountable("information")
 686        .AddUncountable("corn")
 687        .AddUncountable("milk")
 688        .AddUncountable("rice")
 689        .AddUncountable("money")
 690        .AddUncountable("species")
 691        .AddUncountable("series")
 692        .AddUncountable("fish")
 693        .AddUncountable("sheep")
 694        .AddUncountable("deer")
 695        .AddUncountable("aircraft")
 696        .AddUncountable("oz")
 697        .AddUncountable("tsp")
 698        .AddUncountable("tbsp")
 699        .AddUncountable("ml")
 6100        .AddUncountable("l")
 6101        .AddUncountable("water")
 6102        .AddUncountable("waters")
 6103        .AddUncountable("semen")
 6104        .AddUncountable("sperm")
 6105        .AddUncountable("bison")
 6106        .AddUncountable("grass")
 6107        .AddUncountable("hair")
 6108        .AddUncountable("mud")
 6109        .AddUncountable("elk")
 6110        .AddUncountable("luggage")
 6111        .AddUncountable("moose")
 6112        .AddUncountable("offspring")
 6113        .AddUncountable("salmon")
 6114        .AddUncountable("shrimp")
 6115        .AddUncountable("someone")
 6116        .AddUncountable("swine")
 6117        .AddUncountable("trout")
 6118        .AddUncountable("tuna")
 6119        .AddUncountable("corps")
 6120        .AddUncountable("scissors")
 6121        .AddUncountable("means")
 6122        .AddUncountable("mail")
 6123        .AddUncountable("data")
 6124        .Build();
 125}
 126

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Globalization/Inflection/Cultures/Inflectors.French.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="Inflectors.French.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using MyNet.Globalization.Culture;
 8
 9namespace MyNet.Globalization.Inflection.Cultures;
 10
 11public static partial class Inflectors
 12{
 13    /// <summary>
 14    /// Gets an inflector for the French language, which applies the pluralization and singularization rules specific to
 15    /// </summary>
 616    public static IInflector French { get; } = Inflector.Create(SupportedCultures.French)
 617        .AddPluralRule("$", "s")
 618        .AddPluralRule("s$", "s")
 619        .AddPluralRule("x$", "x")
 620        .AddPluralRule("z$", "z")
 621        .AddPluralRule("(eau|au|eu)$", "$1x")
 622        .AddPluralRule("al$", "aux")
 623        .AddSingularRule("s$", string.Empty)
 624        .AddSingularRule("aux$", "al")
 625        .AddSingularRule("(eau|eu)x$", "$1")
 626        .AddIrregular("boyau", "boyaux")
 627        .AddIrregular("joyau", "joyaux")
 628        .AddIrregular("tuyau", "tuyaux")
 629        .AddIrregular("noyau", "noyaux")
 630        .AddIrregular("cabillau", "cabillaux")
 631        .AddIrregular("chaux", "chaux")
 632        .AddIrregular("faux", "faux")
 633        .AddIrregular("oeil", "yeux")
 634        .AddIrregular("pneu", "pneus")
 635        .AddIrregular("bleu", "bleus")
 636        .AddIrregular("émeu", "émeus")
 637        .AddIrregular("carnaval", "carnavals")
 638        .AddIrregular("caracal", "caracals")
 639        .AddIrregular("chacal", "chacals")
 640        .AddIrregular("choral", "chorals")
 641        .AddIrregular("corral", "corrals")
 642        .AddIrregular("étal", "étals")
 643        .AddIrregular("festival", "festivals")
 644        .AddIrregular("récital ", "récitals")
 645        .AddIrregular("val", "vals")
 646        .AddIrregular("aspirail", "aspiraux")
 647        .AddIrregular("corail", "coraux")
 648        .AddIrregular("émail", "émaux")
 649        .AddIrregular("fermail", "fermaux")
 650        .AddIrregular("soupirail", "soupiraux")
 651        .AddIrregular("travail", "travaux")
 652        .AddIrregular("vantail", "vantaux")
 653        .AddIrregular("vitrail", "vitraux")
 654        .AddIrregular("bail", "baux")
 655        .AddIrregular("bijou", "bijoux")
 656        .AddIrregular("caillou", "cailloux")
 657        .AddIrregular("chou", "choux")
 658        .AddIrregular("genou", "genoux")
 659        .AddIrregular("hibou", "hiboux")
 660        .AddIrregular("joujou", "joujoux")
 661        .AddIrregular("pou", "poux")
 662        .Build();
 63}
 64

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Globalization/Inflection/Cultures/Inflectors.Invariant.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="Inflectors.Invariant.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System.Globalization;
 8
 9namespace MyNet.Globalization.Inflection.Cultures;
 10
 11public static partial class Inflectors
 12{
 13    /// <summary>
 14    /// Gets an inflector that uses the invariant culture and has no specific inflection rules. This class can be used a
 15    /// </summary>
 616    public static IInflector Invariant { get; } = Inflector.Create(CultureInfo.InvariantCulture).Build();
 17}
 18

Methods/Properties

.cctor()
.cctor()
.cctor()