Humanizer icon indicating copy to clipboard operation
Humanizer copied to clipboard

"S".Pluralize(false) throws an IndexOutOfRangeException

Open joostverhoog opened this issue 1 year ago • 3 comments

I expected the output of "S".Pluralize(false) to be "Ss", because I see "s" appended for other letters. e.g. "K".Pluralize(false) == "Ks"

However, it throws an exception:

System.IndexOutOfRangeException: Index was outside the bounds of the array. at System.String.get_Chars(Int32 index) at Humanizer.Inflections.Vocabulary.MatchUpperCase(String word, String replacement) in //src/Humanizer/Inflections/Vocabulary.cs:line 158 at Humanizer.Inflections.Vocabulary.ApplyRules(IList`1 rules, String word, Boolean skipFirstRule) in //src/Humanizer/Inflections/Vocabulary.cs:line 148 at Humanizer.Inflections.Vocabulary.Pluralize(String word, Boolean inputIsKnownToBeSingular) in //src/Humanizer/Inflections/Vocabulary.cs:line 85 at Humanizer.InflectorExtensions.Pluralize(String word, Boolean inputIsKnownToBeSingular) in //src/Humanizer/InflectorExtensions.cs:line 42

Found in Humanizer.Core 2.14.1

joostverhoog avatar Sep 13 '24 13:09 joostverhoog

Could you test if you also get this Exception with a 3.x beta? I think this should've been fixed in #1178.

hangy avatar Sep 15 '24 19:09 hangy

I tested with 3.0.0-beta.54 and there it is solved.

Is a GA version of 3.0.0 in the planning? I would be happy to create a pull request to add these changes to 2.14, but it looks like there is no active development on that version.

joostverhoog avatar Sep 16 '24 08:09 joostverhoog

I think 3.x is the only relevant branch. @SimonCropp or @clairernovotny might know more about a release schedule

hangy avatar Sep 22 '24 07:09 hangy