platform/packages/inflection2/test/singular_test.dart

66 lines
2.8 KiB
Dart
Raw Normal View History

2021-05-02 08:39:25 +00:00
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"));
});
});
}