]> gitweb.factorcode.org Git - factor.git/blob - basis/english/english-tests.factor
Update actions, because Node.js 16 actions are deprecated, to Node.js 20
[factor.git] / basis / english / english-tests.factor
1 USING: arrays assocs english help.markup kernel math sequences
2 strings tools.test ;
3 FROM: english => a/an ;
4
5 { "record" }  [ "records" singularize ] unit-test
6 { "record" }  [ "record" singularize ] unit-test
7 { "baby" }    [ "babies" singularize ] unit-test
8 { "baby" }    [ "baby" singularize ] unit-test
9 { "FOOT" }    [ "FEET" singularize ] unit-test
10 { "FOOT" }    [ "FOOT" singularize ] unit-test
11 { "cactus" }  [ "cacti" singularize ] unit-test
12 { "cactus" }  [ "cactuses" singularize ] unit-test
13 { "octopus" } [ "octopi" singularize ] unit-test
14 { "octopus" } [ "octopuses" singularize ] unit-test
15
16 { "friends" } [ "friend" pluralize ] unit-test
17 { "friendlies" } [ "friendly" pluralize ] unit-test
18 { "friendlies" } [ "friendlies" pluralize ] unit-test
19 { "enemies" } [ "enemy" pluralize ] unit-test
20 { "Sheep" }   [ "Sheep" pluralize ] unit-test
21 { "Moose" }   [ "Moose" pluralize ] unit-test
22 { "cacti" }   [ "cactus" pluralize ] unit-test
23 { "octopi" }  [ "octopus" pluralize ] unit-test
24
25 { t } [ "singular" singular? ] unit-test
26 { f } [ "singulars" singular? ] unit-test
27 { t } [ "singularity" singular? ] unit-test
28 { f } [ "singularities" singular? ] unit-test
29 { t } [ "thesis" singular? ] unit-test
30 { f } [ "theses" singular? ] unit-test
31 { t } [ "goose" singular? ] unit-test
32 { t } [ "baby" singular? ] unit-test
33 { t } [ "bird" singular? ] unit-test
34 { f } [ "birds" singular? ] unit-test
35 { t } [ "octopus" singular? ] unit-test
36 { f } [ "octopi" singular? ] unit-test
37
38 { t } [ "geese" plural? ] unit-test
39 { f } [ "goose" plural? ] unit-test
40 { t } [ "birds" plural? ] unit-test
41 { f } [ "bird" plural? ] unit-test
42 { t } [ "cats" plural? ] unit-test
43 { f } [ "cat" plural? ] unit-test
44 { t } [ "babies" plural? ] unit-test
45 { f } [ "baby" plural? ] unit-test
46 { t } [ "octopi" plural? ] unit-test
47 { f } [ "octopus" plural? ] unit-test
48
49 ! they are both singular and plural
50 { t } [ "moose" plural? ] unit-test
51 { t } [ "moose" singular? ] unit-test
52 { t } [ "sheep" plural? ] unit-test
53 { t } [ "sheep" singular? ] unit-test
54
55 { "3 babies" } [ 3 "baby" count-of-things ] unit-test
56 { "2.5 cats" } [ 2.5 "cat" count-of-things ] unit-test
57 { "2.5 CATS" } [ 2.5 "CAT" count-of-things ] unit-test
58 { "1 pipe" }   [ 1 "pipe" count-of-things ] unit-test
59 { "0 pipes" }  [ 0 "pipe" count-of-things ] unit-test
60
61 { "babies" } [ 3 "baby" ?pluralize ] unit-test
62 { "BABIES" } [ 3 "BABY" ?pluralize ] unit-test
63 { "cats" } [ 2.5 "cat"  ?pluralize ] unit-test
64 { "Cats" } [ 2.5 "Cat"  ?pluralize ] unit-test
65 { "pipe" } [ 1 "pipe"   ?pluralize ] unit-test
66 { "pipes" } [ 0 "pipe"  ?pluralize ] unit-test
67
68 { "a5s" }     [ "address" a10n ] unit-test
69 { "a10n" }    [ "abbreviation" a10n ] unit-test
70 { "l10n" }    [ "localization" a10n ] unit-test
71 { "i18n" }    [ "internationalization" a10n ] unit-test
72 { "f28n" }    [ "floccinauccinihilipilification" a10n ] unit-test
73 { "p43s" }    [ "pneumonoultramicroscopicsilicovolcanoconiosis" a10n ] unit-test
74 { "a10000c" } [ 10000 CHAR: b <string> "a" "c" surround a10n ] unit-test
75
76 { "an" } [ "object" a/an ] unit-test
77 { "an" } [ "elephant" a/an ] unit-test
78 { "a" }  [ "moose" a/an ] unit-test
79 { "a" }  [ "xylophone" a/an ] unit-test
80
81 { "the" } [ "objects" ?plural-article ] unit-test
82 { "an" }  [ "object" ?plural-article ] unit-test
83 { "the" } [ "elephants" ?plural-article ] unit-test
84 { "an" }  [ "elephant" ?plural-article ] unit-test
85 { "a" }   [ "moose" ?plural-article ] unit-test
86 { "a" }   [ "goose" ?plural-article ] unit-test
87 { "the" } [ "geese" ?plural-article ] unit-test
88 { "a" }   [ "sheep" ?plural-article ] unit-test
89
90 { { } } [ { } "or" comma-list ] unit-test
91
92 { { "a" } } [ { "a" } "or" comma-list ] unit-test
93
94 { { "a" " or " "b" } }
95 [ { "a" "b" } "or" comma-list ] unit-test
96
97 { { "a" ", " "b" ", or " "c" } }
98 [ { "a" "b" "c" } "or" comma-list ] unit-test
99
100 { { "a" ", " "b" ", " "x" ", and " "c" } }
101 [ { "a" "b" "x" "c" } "and" comma-list ] unit-test
102
103 { {
104     { "an " { $link object } } ", "
105     { "a " { $link pair } } ", "
106     { "a " { $link number } } ", "
107     { "an " { $link array } } ", "
108     { "a " { $link string } } ", "
109     { "a " { $link sequence } } ", or "
110     { "an " { $link assoc } }
111 } } [
112     { object pair number array string sequence assoc }
113     or-markup-example
114     ! an object, a pair, a number, an array, a string, a sequence, or an assoc
115 ] unit-test
116
117 { {
118     { "an " { $link object } }
119 } } [ { object } or-markup-example ] unit-test
120
121 { {
122     { "an " { $link object } } " or "
123     { "a " { $link pair } }
124 } } [ { object pair } or-markup-example ] unit-test
125
126 { {
127     { "an " { $link object } } ", "
128     { "a " { $link pair } } ", or "
129     { "a " { $snippet "thing" } }
130 } } [ { object pair "thing" } or-markup-example ] unit-test