66 lines
2.8 KiB
Dart
66 lines
2.8 KiB
Dart
|
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"));
|
||
|
});
|
||
|
});
|
||
|
}
|