library inflection.singular.test; import 'package:test/test.dart'; import '../lib/src/singular.dart'; import '../lib/src/uncountable_nouns.dart'; void main() { group("The SingularEncoder", () { test("converts nouns from plural to singular", () { expect(SINGULAR.convert(""), equals("")); expect(SINGULAR.convert("Houses"), equals("House")); expect(SINGULAR.convert("houses"), equals("house")); expect(SINGULAR.convert("ultimata"), equals("ultimatum")); expect(SINGULAR.convert("pentia"), equals("pentium")); expect(SINGULAR.convert("analyses"), equals("analysis")); expect(SINGULAR.convert("diagnoses"), equals("diagnosis")); expect(SINGULAR.convert("Parentheses"), equals("Parenthesis")); expect(SINGULAR.convert("lives"), equals("life")); expect(SINGULAR.convert("hives"), equals("hive")); expect(SINGULAR.convert("tives"), equals("tive")); expect(SINGULAR.convert("shelves"), equals("shelf")); expect(SINGULAR.convert("qualities"), equals("quality")); expect(SINGULAR.convert("series"), equals("series")); expect(SINGULAR.convert("movies"), equals("movie")); expect(SINGULAR.convert("benches"), equals("bench")); expect(SINGULAR.convert("fishes"), equals("fish")); expect(SINGULAR.convert("mice"), equals("mouse")); expect(SINGULAR.convert("lice"), equals("louse")); expect(SINGULAR.convert("buses"), equals("bus")); expect(SINGULAR.convert("shoes"), equals("shoe")); expect(SINGULAR.convert("testis"), equals("testis")); expect(SINGULAR.convert("crisis"), equals("crisis")); expect(SINGULAR.convert("axes"), equals("axis")); expect(SINGULAR.convert("axis"), equals("axis")); expect(SINGULAR.convert("viri"), equals("virus")); expect(SINGULAR.convert("octopi"), equals("octopus")); expect(SINGULAR.convert("aliases"), equals("alias")); expect(SINGULAR.convert("statuses"), equals("status")); expect(SINGULAR.convert("vertices"), equals("vertex")); expect(SINGULAR.convert("indices"), equals("index")); expect(SINGULAR.convert("Matrices"), equals("Matrix")); expect(SINGULAR.convert("quizzes"), equals("quiz")); expect(SINGULAR.convert("databases"), equals("database")); }); test("handles uncountable nouns", () { uncountableNouns.forEach((noun) { expect(SINGULAR.convert(noun), equals(noun)); }); uncountableNouns.forEach((noun) { final upperNoun = noun.toUpperCase(); expect(SINGULAR.convert(upperNoun), equals(upperNoun)); }); }); test("handles irregular plural nouns", () { expect(SINGULAR.convert("people"), equals("person")); expect(SINGULAR.convert("Children"), equals("Child")); expect(SINGULAR.convert("child"), equals("child")); expect(SINGULAR.convert("men"), equals("man")); }); }); }