Linguistics 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Artistic +127 -0
- data/ChangeLog +444 -0
- data/MANIFEST +19 -0
- data/README +178 -0
- data/README.english +245 -0
- data/TODO +17 -0
- data/experiments/randobjlist.rb +34 -0
- data/install.rb +154 -0
- data/lib/linguistics/en/infinitive.rb +1149 -0
- data/lib/linguistics/en/linkparser.rb +142 -0
- data/lib/linguistics/en/wordnet.rb +253 -0
- data/lib/linguistics/en.rb +1694 -0
- data/lib/linguistics/iso639.rb +456 -0
- data/lib/linguistics.rb +368 -0
- data/redist/crosscase.rb +298 -0
- data/test.rb +110 -0
- data/tests/en/conjunction.tests.rb +114 -0
- data/tests/en/inflect.tests.rb +1378 -0
- data/tests/lingtestcase.rb +239 -0
- data/tests/use.tests.rb +99 -0
- data/utils.rb +689 -0
- metadata +58 -0
@@ -0,0 +1,1378 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
#
|
3
|
+
# Unit test for English inflection
|
4
|
+
# $Id: inflect.tests.rb,v 1.2 2003/09/11 05:04:04 deveiant Exp $
|
5
|
+
#
|
6
|
+
# Copyright (c) 2003 The FaerieMUD Consortium.
|
7
|
+
#
|
8
|
+
# Much of this test was adapted from the test script for Lingua::EN::Inflect by
|
9
|
+
# Damien Conway:
|
10
|
+
#
|
11
|
+
# Copyright (c) 1997-2000, Damian Conway. All Rights Reserved.
|
12
|
+
# This module is free software. It may be used, redistributed
|
13
|
+
# and/or modified under the same terms as Perl itself.
|
14
|
+
#
|
15
|
+
|
16
|
+
unless defined? Linguistics::TestCase
|
17
|
+
testsdir = File::dirname( File::dirname(File::expand_path( __FILE__ )) )
|
18
|
+
$LOAD_PATH.unshift testsdir unless $LOAD_PATH.include?( testsdir )
|
19
|
+
|
20
|
+
require 'lingtestcase'
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
### This test case tests the english pluralization routines of the Linguistics
|
25
|
+
### module.
|
26
|
+
class EnglishInflectionTestCase < Linguistics::TestCase
|
27
|
+
|
28
|
+
InflectFromItems = [ %w{foo bar}, "foo bar", 15, 18.13 ]
|
29
|
+
|
30
|
+
NumberTests = [
|
31
|
+
["0", "zero", "zero", "zero", "zero", "zeroth", ],
|
32
|
+
["1", "one", "one", "one", "one", "first", ],
|
33
|
+
["2", "two", "two", "two", "two", "second", ],
|
34
|
+
["3", "three", "three", "three", "three", "third", ],
|
35
|
+
["4", "four", "four", "four", "four", "fourth", ],
|
36
|
+
["5", "five", "five", "five", "five", "fifth", ],
|
37
|
+
["6", "six", "six", "six", "six", "sixth", ],
|
38
|
+
["7", "seven", "seven", "seven", "seven", "seventh", ],
|
39
|
+
["8", "eight", "eight", "eight", "eight", "eighth", ],
|
40
|
+
["9", "nine", "nine", "nine", "nine", "ninth", ],
|
41
|
+
["10", "ten", "one, zero", "ten", "ten", "tenth", ],
|
42
|
+
["11", "eleven", "one, one", "eleven", "eleven", "eleventh", ],
|
43
|
+
["12", "twelve", "one, two", "twelve", "twelve", "twelfth", ],
|
44
|
+
["13", "thirteen", "one, three", "thirteen", "thirteen", "thirteenth", ],
|
45
|
+
["14", "fourteen", "one, four", "fourteen", "fourteen", "fourteenth", ],
|
46
|
+
["15", "fifteen", "one, five", "fifteen", "fifteen", "fifteenth", ],
|
47
|
+
["16", "sixteen", "one, six", "sixteen", "sixteen", "sixteenth", ],
|
48
|
+
["17", "seventeen", "one, seven", "seventeen", "seventeen", "seventeenth", ],
|
49
|
+
["18", "eighteen", "one, eight", "eighteen", "eighteen", "eighteenth", ],
|
50
|
+
["19", "nineteen", "one, nine", "nineteen", "nineteen", "nineteenth", ],
|
51
|
+
["20", "twenty", "two, zero", "twenty", "twenty", "twentieth", ],
|
52
|
+
["21", "twenty-one", "two, one", "twenty-one", "twenty-one", "twenty-first", ],
|
53
|
+
["29", "twenty-nine", "two, nine", "twenty-nine", "twenty-nine", "twenty-ninth", ],
|
54
|
+
["99", "ninety-nine", "nine, nine", "ninety-nine", "ninety-nine", "ninety-ninth", ],
|
55
|
+
|
56
|
+
["100", "one hundred", "one, zero, zero", "ten, zero", "one zero zero",
|
57
|
+
"one hundredth", ],
|
58
|
+
["101", "one hundred and one", "one, zero, one", "ten, one", "one zero one",
|
59
|
+
"one hundred and first", ],
|
60
|
+
["110", "one hundred and ten", "one, one, zero", "eleven, zero", "one ten",
|
61
|
+
"one hundred and tenth", ],
|
62
|
+
["111", "one hundred and eleven", "one, one, one", "eleven, one", "one eleven",
|
63
|
+
"one hundred and eleventh", ],
|
64
|
+
["900", "nine hundred", "nine, zero, zero", "ninety, zero", "nine zero zero",
|
65
|
+
"nine hundredth", ],
|
66
|
+
["999", "nine hundred and ninety-nine", "nine, nine, nine", "ninety-nine, nine",
|
67
|
+
"nine ninety-nine", "nine hundred and ninety-ninth", ],
|
68
|
+
|
69
|
+
["1000", "one thousand", "one, zero, zero, zero", "ten, zero zero",
|
70
|
+
"one zero zero, zero", "one thousandth", ],
|
71
|
+
["1001", "one thousand and one", "one, zero, zero, one", "ten, zero one",
|
72
|
+
"one zero zero, one", "one thousand and first", ],
|
73
|
+
["1010", "one thousand and ten", "one, zero, one, zero", "ten, ten",
|
74
|
+
"one zero one, zero", "one thousand and tenth", ],
|
75
|
+
["1100", "one thousand, one hundred", "one, one, zero, zero",
|
76
|
+
"eleven, zero zero", "one ten, zero", "one thousand, one hundredth", ],
|
77
|
+
["2000", "two thousand", "two, zero, zero, zero", "twenty, zero zero",
|
78
|
+
"two zero zero, zero", "two thousandth", ],
|
79
|
+
["10000", "ten thousand", "one, zero, zero, zero, zero", "ten, zero zero, zero",
|
80
|
+
"one zero zero, zero zero", "ten thousandth", ],
|
81
|
+
|
82
|
+
["100000", "one hundred thousand", "one, zero, zero, zero, zero, zero",
|
83
|
+
"ten, zero zero, zero zero", "one zero zero, zero zero zero",
|
84
|
+
"one hundred thousandth", ],
|
85
|
+
["100001", "one hundred thousand and one", "one, zero, zero, zero, zero, one",
|
86
|
+
"ten, zero zero, zero one", "one zero zero, zero zero one",
|
87
|
+
"one hundred thousand and first", ],
|
88
|
+
["123456", "one hundred and twenty-three thousand, four hundred and fifty-six",
|
89
|
+
"one, two, three, four, five, six", "twelve, thirty-four, fifty-six",
|
90
|
+
"one twenty-three, four fifty-six",
|
91
|
+
"one hundred and twenty-three thousand, four hundred and fifty-sixth", ],
|
92
|
+
["0123456", "one hundred and twenty-three thousand, four hundred and fifty-six",
|
93
|
+
"zero, one, two, three, four, five, six",
|
94
|
+
"zero one, twenty-three, forty-five, six",
|
95
|
+
"zero twelve, three forty-five, six",
|
96
|
+
"one hundred and twenty-three thousand, four hundred and fifty-sixth", ],
|
97
|
+
|
98
|
+
["1234567",
|
99
|
+
"one million, two hundred and thirty-four thousand, five hundred and sixty-seven",
|
100
|
+
"one, two, three, four, five, six, seven", "twelve, thirty-four, fifty-six, seven",
|
101
|
+
"one twenty-three, four fifty-six, seven",
|
102
|
+
"one million, two hundred and thirty-four thousand, five hundred and sixty-seventh", ],
|
103
|
+
["12345678",
|
104
|
+
"twelve million, three hundred and forty-five thousand, six hundred and seventy-eight",
|
105
|
+
"one, two, three, four, five, six, seven, eight",
|
106
|
+
"twelve, thirty-four, fifty-six, seventy-eight",
|
107
|
+
"one twenty-three, four fifty-six, seventy-eight",
|
108
|
+
"twelve million, three hundred and forty-five thousand, six hundred and seventy-eighth", ],
|
109
|
+
["12_345_678",
|
110
|
+
"twelve million, three hundred and forty-five thousand, six hundred and seventy-eight",
|
111
|
+
"one, two, three, four, five, six, seven, eight",
|
112
|
+
"twelve, thirty-four, fifty-six, seventy-eight",
|
113
|
+
"one twenty-three, four fifty-six, seventy-eight", ],
|
114
|
+
["1234,5678",
|
115
|
+
"twelve million, three hundred and forty-five thousand, six hundred and seventy-eight",
|
116
|
+
"one, two, three, four, five, six, seven, eight",
|
117
|
+
"twelve, thirty-four, fifty-six, seventy-eight",
|
118
|
+
"one twenty-three, four fifty-six, seventy-eight", ],
|
119
|
+
["1234567890",
|
120
|
+
"one billion, two hundred and thirty-four million, five hundred and sixty-seven thousand, eight hundred and ninety",
|
121
|
+
"one, two, three, four, five, six, seven, eight, nine, zero",
|
122
|
+
"twelve, thirty-four, fifty-six, seventy-eight, ninety",
|
123
|
+
"one twenty-three, four fifty-six, seven eighty-nine, zero",
|
124
|
+
"one billion, two hundred and thirty-four million, five hundred and sixty-seven thousand, eight hundred and ninetieth", ],
|
125
|
+
["123456789012345",
|
126
|
+
"one hundred and twenty-three trillion, four hundred and fifty-six billion, seven hundred and eighty-nine million, twelve thousand, three hundred and forty-five",
|
127
|
+
"one, two, three, four, five, six, seven, eight, nine, zero, one, two, three, four, five",
|
128
|
+
"twelve, thirty-four, fifty-six, seventy-eight, ninety, twelve, thirty-four, five",
|
129
|
+
"one twenty-three, four fifty-six, seven eighty-nine, zero twelve, three forty-five",
|
130
|
+
"one hundred and twenty-three trillion, four hundred and fifty-six billion, seven hundred and eighty-nine million, twelve thousand, three hundred and forty-fifth", ],
|
131
|
+
["12345678901234567890",
|
132
|
+
"twelve quintillion, three hundred and forty-five quadrillion, six hundred and seventy-eight trillion, nine hundred and one billion, two hundred and thirty-four million, five hundred and sixty-seven thousand, eight hundred and ninety",
|
133
|
+
"one, two, three, four, five, six, seven, eight, nine, zero, one, two, three, four, five, six, seven, eight, nine, zero",
|
134
|
+
"twelve, thirty-four, fifty-six, seventy-eight, ninety, twelve, thirty-four, fifty-six, seventy-eight, ninety",
|
135
|
+
"one twenty-three, four fifty-six, seven eighty-nine, zero twelve, three forty-five, six seventy-eight, ninety",
|
136
|
+
"twelve quintillion, three hundred and forty-five quadrillion, six hundred and seventy-eight trillion, nine hundred and one billion, two hundred and thirty-four million, five hundred and sixty-seven thousand, eight hundred and ninetieth", ],
|
137
|
+
|
138
|
+
["0.987654", "zero point nine eight seven six five four",
|
139
|
+
"zero, point, nine, eight, seven, six, five, four",
|
140
|
+
"zero, point, ninety-eight, seventy-six, fifty-four",
|
141
|
+
"zero, point, nine eighty-seven, six fifty-four",
|
142
|
+
"zero point nine eight seven six five fourth", ],
|
143
|
+
[".987654", "point nine eight seven six five four",
|
144
|
+
"point, nine, eight, seven, six, five, four",
|
145
|
+
"point, ninety-eight, seventy-six, fifty-four",
|
146
|
+
"point, nine eighty-seven, six fifty-four",
|
147
|
+
"point nine eight seven six five fourth", ],
|
148
|
+
["9.87654", "nine point eight seven six five four",
|
149
|
+
"nine, point, eight, seven, six, five, four",
|
150
|
+
"nine, point, eighty-seven, sixty-five, four",
|
151
|
+
"nine, point, eight seventy-six, fifty-four",
|
152
|
+
"nine point eight seven six five fourth", ],
|
153
|
+
["98.7654", "ninety-eight point seven six five four",
|
154
|
+
"nine, eight, point, seven, six, five, four",
|
155
|
+
"ninety-eight, point, seventy-six, fifty-four",
|
156
|
+
"ninety-eight, point, seven sixty-five, four",
|
157
|
+
"ninety-eight point seven six five fourth", ],
|
158
|
+
["987.654", "nine hundred and eighty-seven point six five four",
|
159
|
+
"nine, eight, seven, point, six, five, four",
|
160
|
+
"ninety-eight, seven, point, sixty-five, four",
|
161
|
+
"nine eighty-seven, point, six fifty-four",
|
162
|
+
"nine hundred and eighty-seven point six five fourth", ],
|
163
|
+
["9876.54", "nine thousand, eight hundred and seventy-six point five four",
|
164
|
+
"nine, eight, seven, six, point, five, four",
|
165
|
+
"ninety-eight, seventy-six, point, fifty-four",
|
166
|
+
"nine eighty-seven, six, point, fifty-four",
|
167
|
+
"nine thousand, eight hundred and seventy-six point five fourth", ],
|
168
|
+
["98765.4", "ninety-eight thousand, seven hundred and sixty-five point four",
|
169
|
+
"nine, eight, seven, six, five, point, four",
|
170
|
+
"ninety-eight, seventy-six, five, point, four",
|
171
|
+
"nine eighty-seven, sixty-five, point, four",
|
172
|
+
"ninety-eight thousand, seven hundred and sixty-five point fourth", ],
|
173
|
+
["101.202.303", "one hundred and one point two zero two three zero three",
|
174
|
+
"one, zero, one, point, two, zero, two, point, three, zero, three",
|
175
|
+
"ten, one, point, twenty, two, point, thirty, three",
|
176
|
+
"one zero one, point, two zero two, point, three zero three",
|
177
|
+
]
|
178
|
+
]
|
179
|
+
|
180
|
+
|
181
|
+
Ordinals = {
|
182
|
+
:numbers => {
|
183
|
+
0 => "0th",
|
184
|
+
1 => "1st",
|
185
|
+
2 => "2nd",
|
186
|
+
3 => "3rd",
|
187
|
+
4 => "4th",
|
188
|
+
5 => "5th",
|
189
|
+
6 => "6th",
|
190
|
+
7 => "7th",
|
191
|
+
8 => "8th",
|
192
|
+
9 => "9th",
|
193
|
+
10 => "10th",
|
194
|
+
11 => "11th",
|
195
|
+
12 => "12th",
|
196
|
+
13 => "13th",
|
197
|
+
14 => "14th",
|
198
|
+
15 => "15th",
|
199
|
+
16 => "16th",
|
200
|
+
17 => "17th",
|
201
|
+
18 => "18th",
|
202
|
+
19 => "19th",
|
203
|
+
20 => "20th",
|
204
|
+
21 => "21st",
|
205
|
+
22 => "22nd",
|
206
|
+
23 => "23rd",
|
207
|
+
24 => "24th",
|
208
|
+
100 => "100th",
|
209
|
+
101 => "101st",
|
210
|
+
102 => "102nd",
|
211
|
+
103 => "103rd",
|
212
|
+
104 => "104th",
|
213
|
+
},
|
214
|
+
|
215
|
+
:words => {
|
216
|
+
'zero' => "zeroth",
|
217
|
+
'one' => "first",
|
218
|
+
'two' => "second",
|
219
|
+
'three' => "third",
|
220
|
+
'four' => "fourth",
|
221
|
+
'five' => "fifth",
|
222
|
+
'six' => "sixth",
|
223
|
+
'seven' => "seventh",
|
224
|
+
'eight' => "eighth",
|
225
|
+
'nine' => "ninth",
|
226
|
+
'ten' => "tenth",
|
227
|
+
|
228
|
+
'eleven' => "eleventh",
|
229
|
+
'twelve' => "twelfth",
|
230
|
+
'thirteen' => "thirteenth",
|
231
|
+
'fourteen' => "fourteenth",
|
232
|
+
'fifteen' => "fifteenth",
|
233
|
+
'sixteen' => "sixteenth",
|
234
|
+
'seventeen' => "seventeenth",
|
235
|
+
'eighteen' => "eighteenth",
|
236
|
+
'nineteen' => "nineteenth",
|
237
|
+
'twenty' => "twentieth",
|
238
|
+
|
239
|
+
'twenty-one' => "twenty-first",
|
240
|
+
'twenty-two' => "twenty-second",
|
241
|
+
'twenty-three' => "twenty-third",
|
242
|
+
'twenty-four' => "twenty-fourth",
|
243
|
+
'one hundred' => "one hundredth",
|
244
|
+
|
245
|
+
'one hundred and one' => "one hundred and first",
|
246
|
+
'one hundred and two' => "one hundred and second",
|
247
|
+
'one hundred and three' => "one hundred and third",
|
248
|
+
'one hundred and four' => "one hundred and fourth",
|
249
|
+
}
|
250
|
+
}
|
251
|
+
|
252
|
+
PresentParticiples = {
|
253
|
+
'sees' => "seeing",
|
254
|
+
'eats' => "eating",
|
255
|
+
'bats' => "batting",
|
256
|
+
'hates' => "hating",
|
257
|
+
'spies' => "spying",
|
258
|
+
}
|
259
|
+
|
260
|
+
|
261
|
+
PluralDataLine = /^\s*(.*?)\s*->\s*(.*?)\s*(?:\|\s*(.*?)\s*)?(?:#\s*(.*))?$/
|
262
|
+
ArticleDataLine = /^\s+(an?)\s+(.*?)\s*$/
|
263
|
+
|
264
|
+
### Auto-generate tests for pluralization and indefinite articles
|
265
|
+
begin
|
266
|
+
inDataSection = false
|
267
|
+
methodCounter = 100
|
268
|
+
File::readlines( __FILE__ ).find_all {|line|
|
269
|
+
case line
|
270
|
+
when /^__END_DATA__$/
|
271
|
+
inDataSection = false
|
272
|
+
false
|
273
|
+
|
274
|
+
when /^__END__$/
|
275
|
+
inDataSection = true
|
276
|
+
false
|
277
|
+
|
278
|
+
else
|
279
|
+
inDataSection
|
280
|
+
end
|
281
|
+
}.each {|line|
|
282
|
+
case line
|
283
|
+
when PluralDataLine
|
284
|
+
singular, plural, altplural, comment = $~.to_a[1,4]
|
285
|
+
methodName = "test_%04d_pluralize%s" %
|
286
|
+
[ methodCounter, singular.gsub(/\W+/, '').capitalize ]
|
287
|
+
define_method( methodName.intern ) {||
|
288
|
+
printTestHeader "English: Plural of '#{singular}'"
|
289
|
+
assertPlural( singular, plural, altplural, comment )
|
290
|
+
}
|
291
|
+
methodCounter += 1
|
292
|
+
|
293
|
+
when ArticleDataLine
|
294
|
+
article, word = $~.to_a[1,2]
|
295
|
+
methodName = "test_%04d_%s%s" %
|
296
|
+
[ methodCounter, article, word.gsub(/\W+/, '').capitalize ]
|
297
|
+
define_method( methodName.intern ) {||
|
298
|
+
printTestHeader "English: Indefinite article for '#{word}'"
|
299
|
+
assertArticle( article, word )
|
300
|
+
}
|
301
|
+
|
302
|
+
methodCounter += 1
|
303
|
+
else
|
304
|
+
debugMsg "Skipped test data line '#{line.chomp}'"
|
305
|
+
end
|
306
|
+
}
|
307
|
+
end
|
308
|
+
|
309
|
+
### Overridden initializer: auto-generated test methods have an arity of 1
|
310
|
+
### even though they don't require an argument (as of the current Ruby CVS),
|
311
|
+
### and the default initializer throws an :invalid_test for methods with
|
312
|
+
### arity != 0.
|
313
|
+
def initialize( test_method_name )
|
314
|
+
if !respond_to?( test_method_name )
|
315
|
+
throw :invalid_test
|
316
|
+
end
|
317
|
+
@method_name = test_method_name
|
318
|
+
@test_passed = true
|
319
|
+
|
320
|
+
Linguistics::use( :en )
|
321
|
+
end
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
#################################################################
|
326
|
+
### T E S T S
|
327
|
+
#################################################################
|
328
|
+
|
329
|
+
def test_0000_loaded
|
330
|
+
assert_respond_to Linguistics::EN, :numwords
|
331
|
+
end
|
332
|
+
|
333
|
+
|
334
|
+
def test_0030_numwords
|
335
|
+
printTestHeader "English: Numbers to words"
|
336
|
+
rval = nil
|
337
|
+
|
338
|
+
NumberTests.each do
|
339
|
+
|origin, regular, group1, group2, group3, numord, ordnum|
|
340
|
+
|
341
|
+
op = "Regular numwords for #{origin}"
|
342
|
+
assert_nothing_raised( op ) { rval = origin.en.numwords }
|
343
|
+
assert_equal regular, rval, op
|
344
|
+
|
345
|
+
op = "Group 1 numwords for #{origin}"
|
346
|
+
assert_nothing_raised( op ) { rval = origin.en.numwords( :group => 1 ) }
|
347
|
+
assert_equal group1, rval, op
|
348
|
+
|
349
|
+
op = "Group 2 numwords for #{origin}"
|
350
|
+
assert_nothing_raised( op ) { rval = origin.en.numwords( :group => 2 ) }
|
351
|
+
assert_equal group2, rval, op
|
352
|
+
|
353
|
+
op = "Group 3 numwords for #{origin}"
|
354
|
+
assert_nothing_raised( op ) { rval = origin.en.numwords( :group => 3 ) }
|
355
|
+
assert_equal group3, rval, op
|
356
|
+
|
357
|
+
if numord
|
358
|
+
op = "Numwords -> ordinal for #{origin}"
|
359
|
+
assert_nothing_raised( op ) { rval = origin.en.numwords.en.ordinal }
|
360
|
+
assert_equal numord, rval, op
|
361
|
+
end
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
|
366
|
+
def test_0040_ordinalNumbers
|
367
|
+
printTestHeader "English: Numbers to ordinals"
|
368
|
+
rval = nil
|
369
|
+
|
370
|
+
Ordinals[:numbers].each do |input,output|
|
371
|
+
op = "Ordinal for #{input.inspect}"
|
372
|
+
assert_nothing_raised( op ) { rval = input.en.ordinal }
|
373
|
+
assert_kind_of String, rval, op
|
374
|
+
assert_equal output, rval, op
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
|
379
|
+
def test_0045_ordinalWords
|
380
|
+
printTestHeader "English: Number words to ordinals"
|
381
|
+
rval = nil
|
382
|
+
|
383
|
+
Ordinals[:numbers].each do |input,output|
|
384
|
+
op = "Ordinal for #{input.inspect}"
|
385
|
+
assert_nothing_raised( op ) { rval = input.en.ordinal }
|
386
|
+
assert_kind_of String, rval, op
|
387
|
+
assert_equal output, rval, op
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
#
|
394
|
+
# Common routines for auto-generated test methods
|
395
|
+
#
|
396
|
+
|
397
|
+
def assertPlural( singular, plural, altplural, comment )
|
398
|
+
rval, pl_noun, pl_verb, pl, pl_val, altpl_val = [nil] * 6
|
399
|
+
|
400
|
+
isNv = false
|
401
|
+
case comment
|
402
|
+
when /verb/i
|
403
|
+
isNv = 'verb'
|
404
|
+
when /noun/i
|
405
|
+
isNv = 'noun'
|
406
|
+
end
|
407
|
+
|
408
|
+
op = "Pluralizing '#{singular}': "
|
409
|
+
assert_nothing_raised( op + "plural verb" ) {
|
410
|
+
pl_verb = singular.en.plural_verb
|
411
|
+
}
|
412
|
+
assert_nothing_raised( op + "plural noun" ) {
|
413
|
+
pl_noun = singular.en.plural_noun
|
414
|
+
}
|
415
|
+
assert_nothing_raised( op + "plural" ) {
|
416
|
+
pl = singular.en.plural
|
417
|
+
}
|
418
|
+
|
419
|
+
if !altplural.nil? && !altplural.empty?
|
420
|
+
begin
|
421
|
+
assert_nothing_raised( op + "classical" ) {
|
422
|
+
Linguistics::classical = true
|
423
|
+
altpl_val = singular.en.plural
|
424
|
+
}
|
425
|
+
ensure
|
426
|
+
Linguistics::classical = false
|
427
|
+
end
|
428
|
+
end
|
429
|
+
|
430
|
+
pl_val = isNv ? (isNv == "noun" ? pl_noun : pl_verb) : pl
|
431
|
+
|
432
|
+
assert_equal plural, pl_val, "Plural of '#{singular}'"
|
433
|
+
assert_equal altplural, altpl_val,
|
434
|
+
"Classical plural of '#{singular}'" unless
|
435
|
+
altplural.nil? or altplural.empty?
|
436
|
+
end
|
437
|
+
|
438
|
+
|
439
|
+
def assertArticle( article, word )
|
440
|
+
rval = nil
|
441
|
+
op = "Indefinite article for '#{word}'"
|
442
|
+
assert_nothing_raised( op ) {
|
443
|
+
rval = word.en.a
|
444
|
+
}
|
445
|
+
assert_equal "#{article} #{word}", rval, op
|
446
|
+
end
|
447
|
+
|
448
|
+
|
449
|
+
end
|
450
|
+
|
451
|
+
|
452
|
+
### Dataset is from Lingua::EN::Inflect's test suite.
|
453
|
+
__END__
|
454
|
+
|
455
|
+
a -> some # INDEFINITE ARTICLE
|
456
|
+
a -> as # NOUN FORM
|
457
|
+
A.C.R.O.N.Y.M. -> A.C.R.O.N.Y.M.s
|
458
|
+
abscissa -> abscissas|abscissae
|
459
|
+
Achinese -> Achinese
|
460
|
+
acropolis -> acropolises
|
461
|
+
adieu -> adieus|adieux
|
462
|
+
adjutant general -> adjutant generals
|
463
|
+
aegis -> aegises
|
464
|
+
afflatus -> afflatuses
|
465
|
+
afreet -> afreets|afreeti
|
466
|
+
afrit -> afrits|afriti
|
467
|
+
agendum -> agenda
|
468
|
+
aide-de-camp -> aides-de-camp
|
469
|
+
Alabaman -> Alabamans
|
470
|
+
albino -> albinos
|
471
|
+
album -> albums
|
472
|
+
Alfurese -> Alfurese
|
473
|
+
alga -> algae
|
474
|
+
alias -> aliases
|
475
|
+
alto -> altos|alti
|
476
|
+
alumna -> alumnae
|
477
|
+
alumnus -> alumni
|
478
|
+
alveolus -> alveoli
|
479
|
+
am -> are
|
480
|
+
am going -> are going
|
481
|
+
ambassador-at-large -> ambassadors-at-large
|
482
|
+
Amboinese -> Amboinese
|
483
|
+
Americanese -> Americanese
|
484
|
+
amoeba -> amoebas|amoebae
|
485
|
+
Amoyese -> Amoyese
|
486
|
+
an -> some # INDEFINITE ARTICLE
|
487
|
+
analysis -> analyses
|
488
|
+
anathema -> anathemas|anathemata
|
489
|
+
Andamanese -> Andamanese
|
490
|
+
Angolese -> Angolese
|
491
|
+
Annamese -> Annamese
|
492
|
+
antenna -> antennas|antennae
|
493
|
+
anus -> anuses
|
494
|
+
apex -> apexes|apices
|
495
|
+
apex's -> apexes'|apices' # POSSESSIVE FORM
|
496
|
+
aphelion -> aphelia
|
497
|
+
apparatus -> apparatuses|apparatus
|
498
|
+
appendix -> appendixes|appendices
|
499
|
+
apple -> apples
|
500
|
+
aquarium -> aquariums|aquaria
|
501
|
+
Aragonese -> Aragonese
|
502
|
+
Arakanese -> Arakanese
|
503
|
+
archipelago -> archipelagos
|
504
|
+
are -> are
|
505
|
+
are made -> are made
|
506
|
+
armadillo -> armadillos
|
507
|
+
arpeggio -> arpeggios
|
508
|
+
arthritis -> arthritises
|
509
|
+
asbestos -> asbestoses
|
510
|
+
asparagus -> asparaguses
|
511
|
+
ass -> asses
|
512
|
+
Assamese -> Assamese
|
513
|
+
asylum -> asylums
|
514
|
+
asyndeton -> asyndeta
|
515
|
+
at it -> at them # ACCUSATIVE
|
516
|
+
ate -> ate
|
517
|
+
atlas -> atlases
|
518
|
+
attorney general -> attorneys general
|
519
|
+
attorney of record -> attorneys of record
|
520
|
+
aurora -> auroras|aurorae
|
521
|
+
aviatrix -> aviatrixes|aviatrices
|
522
|
+
aviatrix's -> aviatrixes'|aviatrices'
|
523
|
+
Avignonese -> Avignonese
|
524
|
+
axe -> axes
|
525
|
+
axis -> axes
|
526
|
+
Azerbaijanese -> Azerbaijanese
|
527
|
+
bacillus -> bacilli
|
528
|
+
bacterium -> bacteria
|
529
|
+
Bahaman -> Bahamans
|
530
|
+
Balinese -> Balinese
|
531
|
+
bamboo -> bamboos
|
532
|
+
banjo -> banjoes
|
533
|
+
bass -> basses # INSTRUMENT, NOT FISH
|
534
|
+
basso -> bassos|bassi
|
535
|
+
bathos -> bathoses
|
536
|
+
beau -> beaus|beaux
|
537
|
+
beef -> beefs|beeves
|
538
|
+
beneath it -> beneath them # ACCUSATIVE
|
539
|
+
Bengalese -> Bengalese
|
540
|
+
bent -> bent # VERB FORM
|
541
|
+
bent -> bents # NOUN FORM
|
542
|
+
Bernese -> Bernese
|
543
|
+
Bhutanese -> Bhutanese
|
544
|
+
bias -> biases
|
545
|
+
biceps -> biceps
|
546
|
+
bison -> bisons|bison
|
547
|
+
Bolognese -> Bolognese
|
548
|
+
bonus -> bonuses
|
549
|
+
Borghese -> Borghese
|
550
|
+
boss -> bosses
|
551
|
+
Bostonese -> Bostonese
|
552
|
+
box -> boxes
|
553
|
+
boy -> boys
|
554
|
+
bravo -> bravoes
|
555
|
+
bream -> bream
|
556
|
+
breeches -> breeches
|
557
|
+
bride-to-be -> brides-to-be
|
558
|
+
britches -> britches
|
559
|
+
bronchitis -> bronchitises
|
560
|
+
bronchus -> bronchi
|
561
|
+
brother -> brothers|brethren
|
562
|
+
brother's -> brothers'|brethren's
|
563
|
+
buffalo -> buffaloes|buffalo
|
564
|
+
Buginese -> Buginese
|
565
|
+
buoy -> buoys
|
566
|
+
bureau -> bureaus|bureaux
|
567
|
+
Burman -> Burmans
|
568
|
+
Burmese -> Burmese
|
569
|
+
bursitis -> bursitises
|
570
|
+
bus -> buses
|
571
|
+
buzz -> buzzes
|
572
|
+
buzzes -> buzz # VERB FORM
|
573
|
+
by it -> by them # ACCUSATIVE
|
574
|
+
caddis -> caddises
|
575
|
+
cake -> cakes
|
576
|
+
Calabrese -> Calabrese
|
577
|
+
calf -> calves
|
578
|
+
callus -> calluses
|
579
|
+
Camaldolese -> Camaldolese
|
580
|
+
cameo -> cameos
|
581
|
+
campus -> campuses
|
582
|
+
can -> cans # NOUN FORM
|
583
|
+
can -> can # VERB FORM (all pers.)
|
584
|
+
candelabrum -> candelabra
|
585
|
+
cannabis -> cannabises
|
586
|
+
canto -> cantos
|
587
|
+
Cantonese -> Cantonese
|
588
|
+
cantus -> cantus
|
589
|
+
canvas -> canvases
|
590
|
+
CAPITAL -> CAPITALS
|
591
|
+
carcinoma -> carcinomas|carcinomata
|
592
|
+
care -> cares
|
593
|
+
cargo -> cargoes
|
594
|
+
Carlylese -> Carlylese
|
595
|
+
carp -> carp
|
596
|
+
Cassinese -> Cassinese
|
597
|
+
cat -> cats
|
598
|
+
catfish -> catfish
|
599
|
+
Celanese -> Celanese
|
600
|
+
Ceylonese -> Ceylonese
|
601
|
+
chairman -> chairmen
|
602
|
+
chamois -> chamois
|
603
|
+
chaos -> chaoses
|
604
|
+
chapeau -> chapeaus|chapeaux
|
605
|
+
charisma -> charismas|charismata
|
606
|
+
chases -> chase
|
607
|
+
chassis -> chassis
|
608
|
+
chateau -> chateaus|chateaux
|
609
|
+
cherub -> cherubs|cherubim
|
610
|
+
chickenpox -> chickenpox
|
611
|
+
chief -> chiefs
|
612
|
+
child -> children
|
613
|
+
Chinese -> Chinese
|
614
|
+
chorus -> choruses
|
615
|
+
church -> churches
|
616
|
+
cicatrix -> cicatrixes|cicatrices
|
617
|
+
circus -> circuses
|
618
|
+
class -> classes
|
619
|
+
classes -> class # VERB FORM
|
620
|
+
clippers -> clippers
|
621
|
+
clitoris -> clitorises|clitorides
|
622
|
+
cod -> cod
|
623
|
+
codex -> codices
|
624
|
+
coitus -> coitus
|
625
|
+
commando -> commandos
|
626
|
+
compendium -> compendiums|compendia
|
627
|
+
Congoese -> Congoese
|
628
|
+
Congolese -> Congolese
|
629
|
+
conspectus -> conspectuses
|
630
|
+
contralto -> contraltos|contralti
|
631
|
+
contretemps -> contretemps
|
632
|
+
conundrum -> conundrums
|
633
|
+
corps -> corps
|
634
|
+
corpus -> corpuses|corpora
|
635
|
+
cortex -> cortexes|cortices
|
636
|
+
cosmos -> cosmoses
|
637
|
+
court martial -> courts martial
|
638
|
+
cow -> cows|kine
|
639
|
+
cranium -> craniums|crania
|
640
|
+
crescendo -> crescendos
|
641
|
+
criterion -> criteria
|
642
|
+
curriculum -> curriculums|curricula
|
643
|
+
dais -> daises
|
644
|
+
data point -> data points
|
645
|
+
datum -> data
|
646
|
+
debris -> debris
|
647
|
+
decorum -> decorums
|
648
|
+
deer -> deer
|
649
|
+
delphinium -> delphiniums
|
650
|
+
desideratum -> desiderata
|
651
|
+
diabetes -> diabetes
|
652
|
+
dictum -> dictums|dicta
|
653
|
+
did -> did
|
654
|
+
did need -> did need
|
655
|
+
digitalis -> digitalises
|
656
|
+
dingo -> dingoes
|
657
|
+
diploma -> diplomas|diplomata
|
658
|
+
discus -> discuses
|
659
|
+
dish -> dishes
|
660
|
+
ditto -> dittos
|
661
|
+
djinn -> djinn
|
662
|
+
does -> do
|
663
|
+
dog -> dogs
|
664
|
+
dogma -> dogmas|dogmata
|
665
|
+
dominatrix -> dominatrixes|dominatrices
|
666
|
+
domino -> dominoes
|
667
|
+
Dongolese -> Dongolese
|
668
|
+
drama -> dramas|dramata
|
669
|
+
drum -> drums
|
670
|
+
dwarf -> dwarves
|
671
|
+
dynamo -> dynamos
|
672
|
+
edema -> edemas|edemata
|
673
|
+
eland -> elands|eland
|
674
|
+
elf -> elves
|
675
|
+
elk -> elks|elk
|
676
|
+
embryo -> embryos
|
677
|
+
emporium -> emporiums|emporia
|
678
|
+
encephalitis -> encephalitises
|
679
|
+
enconium -> enconiums|enconia
|
680
|
+
enema -> enemas|enemata
|
681
|
+
enigma -> enigmas|enigmata
|
682
|
+
ephemeris -> ephemerides
|
683
|
+
epidermis -> epidermises
|
684
|
+
erratum -> errata
|
685
|
+
ethos -> ethoses
|
686
|
+
eucalyptus -> eucalyptuses
|
687
|
+
extremum -> extrema
|
688
|
+
eyas -> eyases
|
689
|
+
factotum -> factotums
|
690
|
+
Faroese -> Faroese
|
691
|
+
fauna -> faunas|faunae
|
692
|
+
fax -> faxes
|
693
|
+
Ferrarese -> Ferrarese
|
694
|
+
ferry -> ferries
|
695
|
+
fetus -> fetuses
|
696
|
+
fiance -> fiances
|
697
|
+
fiancee -> fiancees
|
698
|
+
fiasco -> fiascos
|
699
|
+
fish -> fish
|
700
|
+
fizz -> fizzes
|
701
|
+
flamingo -> flamingoes
|
702
|
+
flora -> floras|florae
|
703
|
+
flounder -> flounder
|
704
|
+
focus -> focuses|foci
|
705
|
+
foetus -> foetuses
|
706
|
+
folio -> folios
|
707
|
+
Foochowese -> Foochowese
|
708
|
+
foot -> feet
|
709
|
+
foot's -> feet's # POSSESSIVE FORM
|
710
|
+
foramen -> foramens|foramina
|
711
|
+
formula -> formulas|formulae
|
712
|
+
forum -> forums
|
713
|
+
fought -> fought
|
714
|
+
fox -> foxes
|
715
|
+
from him -> from them
|
716
|
+
from it -> from them # ACCUSATIVE
|
717
|
+
fungus -> funguses|fungi
|
718
|
+
Gabunese -> Gabunese
|
719
|
+
gallows -> gallows
|
720
|
+
ganglion -> ganglions|ganglia
|
721
|
+
gas -> gases
|
722
|
+
gateau -> gateaus|gateaux
|
723
|
+
gave -> gave
|
724
|
+
generalissimo -> generalissimos
|
725
|
+
Genevese -> Genevese
|
726
|
+
genie -> genies|genii
|
727
|
+
genius -> geniuses|genii
|
728
|
+
Genoese -> Genoese
|
729
|
+
genus -> genera
|
730
|
+
German -> Germans
|
731
|
+
ghetto -> ghettos
|
732
|
+
Gilbertese -> Gilbertese
|
733
|
+
glottis -> glottises
|
734
|
+
Goanese -> Goanese
|
735
|
+
goose -> geese
|
736
|
+
Governor General -> Governors General
|
737
|
+
goy -> goys|goyim
|
738
|
+
graffiti -> graffiti
|
739
|
+
graffito -> graffiti
|
740
|
+
guano -> guanos
|
741
|
+
guardsman -> guardsmen
|
742
|
+
Guianese -> Guianese
|
743
|
+
gumma -> gummas|gummata
|
744
|
+
gymnasium -> gymnasiums|gymnasia
|
745
|
+
had -> had
|
746
|
+
had thought -> had thought
|
747
|
+
Hainanese -> Hainanese
|
748
|
+
handkerchief -> handkerchiefs
|
749
|
+
Hararese -> Hararese
|
750
|
+
Harlemese -> Harlemese
|
751
|
+
harmonium -> harmoniums
|
752
|
+
has -> have
|
753
|
+
has become -> have become
|
754
|
+
has been -> have been
|
755
|
+
has-been -> has-beens
|
756
|
+
Havanese -> Havanese
|
757
|
+
have -> have
|
758
|
+
have conceded -> have conceded
|
759
|
+
he -> they
|
760
|
+
headquarters -> headquarters
|
761
|
+
Heavenese -> Heavenese
|
762
|
+
helix -> helices
|
763
|
+
hepatitis -> hepatitises
|
764
|
+
her -> them # PRONOUN
|
765
|
+
her -> their # POSSESSIVE ADJ
|
766
|
+
hero -> heroes
|
767
|
+
herpes -> herpes
|
768
|
+
hers -> theirs # POSSESSIVE NOUN
|
769
|
+
herself -> themselves
|
770
|
+
hiatus -> hiatuses|hiatus
|
771
|
+
highlight -> highlights
|
772
|
+
hijinks -> hijinks
|
773
|
+
him -> them
|
774
|
+
himself -> themselves
|
775
|
+
hippopotamus -> hippopotamuses|hippopotami
|
776
|
+
Hiroshiman -> Hiroshimans
|
777
|
+
his -> their # POSSESSIVE ADJ
|
778
|
+
his -> theirs # POSSESSIVE NOUN
|
779
|
+
honorarium -> honorariums|honoraria
|
780
|
+
hoof -> hoofs|hooves
|
781
|
+
Hoosierese -> Hoosierese
|
782
|
+
Hottentotese -> Hottentotese
|
783
|
+
house -> houses
|
784
|
+
housewife -> housewives
|
785
|
+
hubris -> hubrises
|
786
|
+
human -> humans
|
787
|
+
Hunanese -> Hunanese
|
788
|
+
hydra -> hydras|hydrae
|
789
|
+
hyperbaton -> hyperbata
|
790
|
+
hyperbola -> hyperbolas|hyperbolae
|
791
|
+
I -> we
|
792
|
+
ibis -> ibises
|
793
|
+
ignoramus -> ignoramuses
|
794
|
+
impetus -> impetuses|impetus
|
795
|
+
incubus -> incubuses|incubi
|
796
|
+
index -> indexes|indices
|
797
|
+
Indochinese -> Indochinese
|
798
|
+
inferno -> infernos
|
799
|
+
innings -> innings
|
800
|
+
Inspector General -> Inspectors General
|
801
|
+
interregnum -> interregnums|interregna
|
802
|
+
iris -> irises|irides
|
803
|
+
is -> are
|
804
|
+
is eaten -> are eaten
|
805
|
+
it -> they # NOMINATIVE
|
806
|
+
its -> their # POSSESSIVE FORM
|
807
|
+
itself -> themselves
|
808
|
+
jackanapes -> jackanapes
|
809
|
+
Japanese -> Japanese
|
810
|
+
Javanese -> Javanese
|
811
|
+
Jerry -> Jerrys
|
812
|
+
jerry -> jerries
|
813
|
+
jinx -> jinxes
|
814
|
+
jinxes -> jinx # VERB FORM
|
815
|
+
Johnsonese -> Johnsonese
|
816
|
+
Jones -> Joneses
|
817
|
+
jumbo -> jumbos
|
818
|
+
Kanarese -> Kanarese
|
819
|
+
Kiplingese -> Kiplingese
|
820
|
+
knife -> knives # NOUN FORM
|
821
|
+
knife -> knife # VERB FORM (1st/2nd pers.)
|
822
|
+
knifes -> knife # VERB FORM (3rd pers.)
|
823
|
+
Kongoese -> Kongoese
|
824
|
+
Kongolese -> Kongolese
|
825
|
+
lacuna -> lacunas|lacunae
|
826
|
+
lady in waiting -> ladies in waiting
|
827
|
+
Lapponese -> Lapponese
|
828
|
+
larynx -> larynxes|larynges
|
829
|
+
latex -> latexes|latices
|
830
|
+
leaf -> leaf # VERB FORM (1st/2nd pers.)
|
831
|
+
leaf -> leaves # NOUN FORM
|
832
|
+
leafs -> leaf # VERB FORM (3rd pers.)
|
833
|
+
Lebanese -> Lebanese
|
834
|
+
lemma -> lemmas|lemmata
|
835
|
+
lens -> lenses
|
836
|
+
Leonese -> Leonese
|
837
|
+
lick of the cat -> licks of the cat
|
838
|
+
Lieutenant General -> Lieutenant Generals
|
839
|
+
life -> lives
|
840
|
+
Liman -> Limans
|
841
|
+
lingo -> lingos
|
842
|
+
loaf -> loaves
|
843
|
+
locus -> loci
|
844
|
+
Londonese -> Londonese
|
845
|
+
Lorrainese -> Lorrainese
|
846
|
+
lothario -> lotharios
|
847
|
+
louse -> lice
|
848
|
+
Lucchese -> Lucchese
|
849
|
+
lumbago -> lumbagos
|
850
|
+
lumen -> lumens|lumina
|
851
|
+
lustrum -> lustrums|lustra
|
852
|
+
lyceum -> lyceums
|
853
|
+
lymphoma -> lymphomas|lymphomata
|
854
|
+
lynx -> lynxes
|
855
|
+
Lyonese -> Lyonese
|
856
|
+
M.I.A. -> M.I.A.s
|
857
|
+
Macanese -> Macanese
|
858
|
+
Macassarese -> Macassarese
|
859
|
+
mackerel -> mackerel
|
860
|
+
made -> made
|
861
|
+
Madurese -> Madurese
|
862
|
+
magma -> magmas|magmata
|
863
|
+
magneto -> magnetos
|
864
|
+
Major General -> Major Generals
|
865
|
+
Malabarese -> Malabarese
|
866
|
+
Maltese -> Maltese
|
867
|
+
man -> men
|
868
|
+
mandamus -> mandamuses
|
869
|
+
manifesto -> manifestos
|
870
|
+
mantis -> mantises
|
871
|
+
marquis -> marquises
|
872
|
+
Mary -> Marys
|
873
|
+
maximum -> maximums|maxima
|
874
|
+
measles -> measles
|
875
|
+
medico -> medicos
|
876
|
+
medium -> mediums|media
|
877
|
+
medium's -> mediums'|media's
|
878
|
+
medusa -> medusas|medusae
|
879
|
+
memorandum -> memorandums|memoranda
|
880
|
+
meniscus -> menisci
|
881
|
+
Messinese -> Messinese
|
882
|
+
metamorphosis -> metamorphoses
|
883
|
+
metropolis -> metropolises
|
884
|
+
mews -> mews
|
885
|
+
miasma -> miasmas|miasmata
|
886
|
+
Milanese -> Milanese
|
887
|
+
milieu -> milieus|milieux
|
888
|
+
millenium -> milleniums|millenia
|
889
|
+
minimum -> minimums|minima
|
890
|
+
minx -> minxes
|
891
|
+
miss -> miss # VERB FORM (1st/2nd pers.)
|
892
|
+
miss -> misses # NOUN FORM
|
893
|
+
misses -> miss # VERB FORM (3rd pers.)
|
894
|
+
mittamus -> mittamuses
|
895
|
+
Modenese -> Modenese
|
896
|
+
momentum -> momentums|momenta
|
897
|
+
money -> monies
|
898
|
+
mongoose -> mongooses
|
899
|
+
moose -> mooses|moose
|
900
|
+
mother-in-law -> mothers-in-law
|
901
|
+
mouse -> mice
|
902
|
+
mumps -> mumps
|
903
|
+
Muranese -> Muranese
|
904
|
+
murex -> murices
|
905
|
+
museum -> museums
|
906
|
+
mustachio -> mustachios
|
907
|
+
my -> our # POSSESSIVE FORM
|
908
|
+
myself -> ourselves
|
909
|
+
mythos -> mythoi
|
910
|
+
Nakayaman -> Nakayamans
|
911
|
+
Nankingese -> Nankingese
|
912
|
+
nasturtium -> nasturtiums
|
913
|
+
Navarrese -> Navarrese
|
914
|
+
nebula -> nebulas|nebulae
|
915
|
+
Nepalese -> Nepalese
|
916
|
+
neuritis -> neuritises
|
917
|
+
neurosis -> neuroses
|
918
|
+
news -> news
|
919
|
+
nexus -> nexus
|
920
|
+
Niasese -> Niasese
|
921
|
+
Nicobarese -> Nicobarese
|
922
|
+
nimbus -> nimbuses|nimbi
|
923
|
+
Nipponese -> Nipponese
|
924
|
+
no -> noes
|
925
|
+
nostrum -> nostrums
|
926
|
+
noumenon -> noumena
|
927
|
+
nova -> novas|novae
|
928
|
+
nucleolus -> nucleoluses|nucleoli
|
929
|
+
nucleus -> nuclei
|
930
|
+
oaf -> oafs
|
931
|
+
octavo -> octavos
|
932
|
+
octopus -> octopuses|octopodes
|
933
|
+
oedema -> oedemas|oedemata
|
934
|
+
Oklahoman -> Oklahomans
|
935
|
+
omnibus -> omnibuses
|
936
|
+
on it -> on them # ACCUSATIVE
|
937
|
+
onus -> onuses
|
938
|
+
opera -> operas
|
939
|
+
optimum -> optimums|optima
|
940
|
+
opus -> opuses|opera
|
941
|
+
organon -> organa
|
942
|
+
ought to be -> ought to be # VERB (UNLIKE bride to be)
|
943
|
+
ovum -> ova
|
944
|
+
ox -> oxen
|
945
|
+
ox's -> oxen's # POSSESSIVE FORM
|
946
|
+
oxymoron -> oxymorons|oxymora
|
947
|
+
Panaman -> Panamans
|
948
|
+
parabola -> parabolas|parabolae
|
949
|
+
Parmese -> Parmese
|
950
|
+
pathos -> pathoses
|
951
|
+
pegasus -> pegasuses
|
952
|
+
Pekingese -> Pekingese
|
953
|
+
pelvis -> pelvises
|
954
|
+
pendulum -> pendulums
|
955
|
+
penis -> penises|penes
|
956
|
+
penumbra -> penumbras|penumbrae
|
957
|
+
perihelion -> perihelia
|
958
|
+
persona -> personae
|
959
|
+
petroleum -> petroleums
|
960
|
+
phalanx -> phalanxes|phalanges
|
961
|
+
PhD -> PhDs
|
962
|
+
phenomenon -> phenomena
|
963
|
+
philtrum -> philtrums
|
964
|
+
photo -> photos
|
965
|
+
phylum -> phylums|phyla
|
966
|
+
piano -> pianos|piani
|
967
|
+
Piedmontese -> Piedmontese
|
968
|
+
pincer -> pincers
|
969
|
+
pincers -> pincers
|
970
|
+
Pistoiese -> Pistoiese
|
971
|
+
plateau -> plateaus|plateaux
|
972
|
+
play -> plays
|
973
|
+
plexus -> plexuses|plexus
|
974
|
+
pliers -> pliers
|
975
|
+
plies -> ply # VERB FORM
|
976
|
+
polis -> polises
|
977
|
+
Polonese -> Polonese
|
978
|
+
pontifex -> pontifexes|pontifices
|
979
|
+
portmanteau -> portmanteaus|portmanteaux
|
980
|
+
Portuguese -> Portuguese
|
981
|
+
potato -> potatoes
|
982
|
+
pox -> pox
|
983
|
+
pragma -> pragmas|pragmata
|
984
|
+
premium -> premiums
|
985
|
+
prima donna -> prima donnas|prime donne
|
986
|
+
pro -> pros
|
987
|
+
proceedings -> proceedings
|
988
|
+
prolegomenon -> prolegomena
|
989
|
+
proof -> proofs
|
990
|
+
proof of concept -> proofs of concept
|
991
|
+
prosecutrix -> prosecutrixes|prosecutrices
|
992
|
+
prospectus -> prospectuses|prospectus
|
993
|
+
protozoan -> protozoans
|
994
|
+
protozoon -> protozoa
|
995
|
+
put -> put
|
996
|
+
quantum -> quantums|quanta
|
997
|
+
quartermaster general -> quartermasters general
|
998
|
+
quarto -> quartos
|
999
|
+
quorum -> quorums
|
1000
|
+
rabies -> rabies
|
1001
|
+
radius -> radiuses|radii
|
1002
|
+
radix -> radices
|
1003
|
+
rebus -> rebuses
|
1004
|
+
reindeer -> reindeer
|
1005
|
+
rhino -> rhinos
|
1006
|
+
rhinoceros -> rhinoceroses|rhinoceros
|
1007
|
+
Romagnese -> Romagnese
|
1008
|
+
Romanese -> Romanese
|
1009
|
+
romeo -> romeos
|
1010
|
+
roof -> roofs
|
1011
|
+
rostrum -> rostrums|rostra
|
1012
|
+
ruckus -> ruckuses
|
1013
|
+
salmon -> salmon
|
1014
|
+
Sangirese -> Sangirese
|
1015
|
+
sank -> sank
|
1016
|
+
Sarawakese -> Sarawakese
|
1017
|
+
sarcoma -> sarcomas|sarcomata
|
1018
|
+
sassafras -> sassafrases
|
1019
|
+
saw -> saws # NOUN FORM
|
1020
|
+
saw -> saw # VERB FORM (1st/2nd pers.)
|
1021
|
+
saws -> saw # VERB FORM (3rd pers.)
|
1022
|
+
scarf -> scarves
|
1023
|
+
schema -> schemas|schemata
|
1024
|
+
scissors -> scissors
|
1025
|
+
Scotsman -> Scotsmen
|
1026
|
+
sea-bass -> sea-bass
|
1027
|
+
self -> selves
|
1028
|
+
Selman -> Selmans
|
1029
|
+
Senegalese -> Senegalese
|
1030
|
+
seraph -> seraphs|seraphim
|
1031
|
+
series -> series
|
1032
|
+
shall eat -> shall eat
|
1033
|
+
Shavese -> Shavese
|
1034
|
+
Shawanese -> Shawanese
|
1035
|
+
she -> they
|
1036
|
+
sheaf -> sheaves
|
1037
|
+
shears -> shears
|
1038
|
+
sheep -> sheep
|
1039
|
+
shelf -> shelves
|
1040
|
+
should have -> should have
|
1041
|
+
Siamese -> Siamese
|
1042
|
+
Sienese -> Sienese
|
1043
|
+
Sikkimese -> Sikkimese
|
1044
|
+
silex -> silices
|
1045
|
+
simplex -> simplexes|simplices
|
1046
|
+
Singhalese -> Singhalese
|
1047
|
+
Sinhalese -> Sinhalese
|
1048
|
+
sinus -> sinuses|sinus
|
1049
|
+
size -> sizes
|
1050
|
+
sizes -> size #VERB FORM
|
1051
|
+
smallpox -> smallpox
|
1052
|
+
Smith -> Smiths
|
1053
|
+
Sogdianese -> Sogdianese
|
1054
|
+
soliloquy -> soliloquies
|
1055
|
+
solo -> solos|soli
|
1056
|
+
soma -> somas|somata
|
1057
|
+
son of a bitch -> sons of bitches
|
1058
|
+
Sonaman -> Sonamans
|
1059
|
+
soprano -> sopranos|soprani
|
1060
|
+
sought -> sought
|
1061
|
+
species -> species
|
1062
|
+
spectrum -> spectrums|spectra
|
1063
|
+
speculum -> speculums|specula
|
1064
|
+
spent -> spent
|
1065
|
+
spermatozoon -> spermatozoa
|
1066
|
+
sphinx -> sphinxes|sphinges
|
1067
|
+
stadium -> stadiums|stadia
|
1068
|
+
stamen -> stamens|stamina
|
1069
|
+
status -> statuses|status
|
1070
|
+
stereo -> stereos
|
1071
|
+
stigma -> stigmas|stigmata
|
1072
|
+
stimulus -> stimuli
|
1073
|
+
stoma -> stomas|stomata
|
1074
|
+
storey -> storeys
|
1075
|
+
story -> stories
|
1076
|
+
stratum -> strata
|
1077
|
+
strife -> strifes
|
1078
|
+
stylo -> stylos
|
1079
|
+
stylus -> styluses|styli
|
1080
|
+
succubus -> succubuses|succubi
|
1081
|
+
Sudanese -> Sudanese
|
1082
|
+
suffix -> suffixes
|
1083
|
+
Sundanese -> Sundanese
|
1084
|
+
superior -> superiors
|
1085
|
+
Surgeon-General -> Surgeons-General
|
1086
|
+
surplus -> surpluses
|
1087
|
+
Swahilese -> Swahilese
|
1088
|
+
swine -> swines|swine
|
1089
|
+
syringe -> syringes
|
1090
|
+
syrinx -> syrinxes|syringes
|
1091
|
+
tableau -> tableaus|tableaux
|
1092
|
+
Tacoman -> Tacomans
|
1093
|
+
tattoo -> tattoos
|
1094
|
+
tempo -> tempos|tempi
|
1095
|
+
Tenggerese -> Tenggerese
|
1096
|
+
testatrix -> testatrixes|testatrices
|
1097
|
+
testes -> testes
|
1098
|
+
testis -> testes
|
1099
|
+
that -> those
|
1100
|
+
their -> their # POSSESSIVE FORM (GENDER-INCLUSIVE)
|
1101
|
+
themself -> themselves # ugly but gaining currency
|
1102
|
+
they -> they # for indeterminate gender
|
1103
|
+
this -> these
|
1104
|
+
thought -> thought # VERB FORM
|
1105
|
+
thought -> thoughts # NOUN FORM
|
1106
|
+
Times -> Timeses
|
1107
|
+
Timorese -> Timorese
|
1108
|
+
Tirolese -> Tirolese
|
1109
|
+
to her -> to them
|
1110
|
+
to herself -> to themselves
|
1111
|
+
to him -> to them
|
1112
|
+
to himself -> to themselves
|
1113
|
+
to it -> to them
|
1114
|
+
to it -> to them # ACCUSATIVE
|
1115
|
+
to itself -> to themselves
|
1116
|
+
to me -> to us
|
1117
|
+
to myself -> to ourselves
|
1118
|
+
to them -> to them # for indeterminate gender
|
1119
|
+
to themself -> to themselves # ugly but gaining currency
|
1120
|
+
to you -> to you
|
1121
|
+
to yourself -> to yourselves
|
1122
|
+
Tocharese -> Tocharese
|
1123
|
+
tomato -> tomatoes
|
1124
|
+
Tonkinese -> Tonkinese
|
1125
|
+
tonsillitis -> tonsillitises
|
1126
|
+
tooth -> teeth
|
1127
|
+
Torinese -> Torinese
|
1128
|
+
torus -> toruses|tori
|
1129
|
+
trapezium -> trapeziums|trapezia
|
1130
|
+
trauma -> traumas|traumata
|
1131
|
+
travois -> travois
|
1132
|
+
trellis -> trellises
|
1133
|
+
tries -> try
|
1134
|
+
trilby -> trilbys
|
1135
|
+
trousers -> trousers
|
1136
|
+
trousseau -> trousseaus|trousseaux
|
1137
|
+
trout -> trout
|
1138
|
+
try -> tries
|
1139
|
+
tuna -> tuna
|
1140
|
+
turf -> turfs|turves
|
1141
|
+
Tyrolese -> Tyrolese
|
1142
|
+
ultimatum -> ultimatums|ultimata
|
1143
|
+
umbilicus -> umbilicuses|umbilici
|
1144
|
+
umbra -> umbras|umbrae
|
1145
|
+
uterus -> uteruses|uteri
|
1146
|
+
vacuum -> vacuums|vacua
|
1147
|
+
vellum -> vellums
|
1148
|
+
velum -> velums|vela
|
1149
|
+
Vermontese -> Vermontese
|
1150
|
+
Veronese -> Veronese
|
1151
|
+
vertebra -> vertebrae
|
1152
|
+
vertex -> vertexes|vertices
|
1153
|
+
Viennese -> Viennese
|
1154
|
+
Vietnamese -> Vietnamese
|
1155
|
+
virus -> viruses
|
1156
|
+
vixen -> vixens
|
1157
|
+
vortex -> vortexes|vortices
|
1158
|
+
walrus -> walruses
|
1159
|
+
was -> were
|
1160
|
+
was faced with -> were faced with
|
1161
|
+
was hoping -> were hoping
|
1162
|
+
Wenchowese -> Wenchowese
|
1163
|
+
were -> were
|
1164
|
+
were found -> were found
|
1165
|
+
wharf -> wharves
|
1166
|
+
whiting -> whiting
|
1167
|
+
Whitmanese -> Whitmanese
|
1168
|
+
wife -> wives
|
1169
|
+
wildebeest -> wildebeests|wildebeest
|
1170
|
+
will -> will # VERB FORM
|
1171
|
+
will -> wills # NOUN FORM
|
1172
|
+
will eat -> will eat # VERB FORM
|
1173
|
+
wills -> will # VERB FORM
|
1174
|
+
wish -> wishes
|
1175
|
+
with him -> with them
|
1176
|
+
with it -> with them # ACCUSATIVE
|
1177
|
+
wolf -> wolves
|
1178
|
+
woman -> women
|
1179
|
+
woman of substance -> women of substance
|
1180
|
+
woman's -> women's # POSSESSIVE FORM
|
1181
|
+
woodlouse -> woodlice
|
1182
|
+
Yakiman -> Yakimans
|
1183
|
+
Yengeese -> Yengeese
|
1184
|
+
Yokohaman -> Yokohamans
|
1185
|
+
you -> you
|
1186
|
+
your -> your # POSSESSIVE FORM
|
1187
|
+
yourself -> yourselves
|
1188
|
+
Yuman -> Yumans
|
1189
|
+
Yunnanese -> Yunnanese
|
1190
|
+
zoon -> zoa
|
1191
|
+
|
1192
|
+
an A.B.C
|
1193
|
+
an AI
|
1194
|
+
an AGE
|
1195
|
+
an agendum
|
1196
|
+
an aide-de-camp
|
1197
|
+
an albino
|
1198
|
+
a B.L.T. sandwich
|
1199
|
+
a BMW
|
1200
|
+
a BLANK
|
1201
|
+
a bacterium
|
1202
|
+
a Burmese restaurant
|
1203
|
+
a C.O.
|
1204
|
+
a CCD
|
1205
|
+
a COLON
|
1206
|
+
a cameo
|
1207
|
+
a CAPITAL
|
1208
|
+
a D.S.M.
|
1209
|
+
a DNR
|
1210
|
+
a DINNER
|
1211
|
+
a dynamo
|
1212
|
+
an E.K.G.
|
1213
|
+
an ECG
|
1214
|
+
an EGG
|
1215
|
+
an embryo
|
1216
|
+
an erratum
|
1217
|
+
a eucalyptus
|
1218
|
+
an Euler number
|
1219
|
+
a eulogy
|
1220
|
+
a euphemism
|
1221
|
+
a euphoria
|
1222
|
+
a ewe
|
1223
|
+
a ewer
|
1224
|
+
an extremum
|
1225
|
+
an eye
|
1226
|
+
an F.B.I. agent
|
1227
|
+
an FSM
|
1228
|
+
a FACT
|
1229
|
+
a FAQ
|
1230
|
+
an F.A.Q.
|
1231
|
+
a fish
|
1232
|
+
a G-string
|
1233
|
+
a GSM phone
|
1234
|
+
a GOD
|
1235
|
+
a genus
|
1236
|
+
a Governor General
|
1237
|
+
an H-Bomb
|
1238
|
+
an H.M.S Ark Royal
|
1239
|
+
an HSL colour space
|
1240
|
+
a HAL 9000
|
1241
|
+
an H.A.L. 9000
|
1242
|
+
a has-been
|
1243
|
+
a height
|
1244
|
+
an heir
|
1245
|
+
a honed blade
|
1246
|
+
an honest man
|
1247
|
+
a honeymoon
|
1248
|
+
an honorarium
|
1249
|
+
an honorary degree
|
1250
|
+
an honoree
|
1251
|
+
an honorific
|
1252
|
+
a Hough transform
|
1253
|
+
a hound
|
1254
|
+
an hour
|
1255
|
+
an hourglass
|
1256
|
+
a houri
|
1257
|
+
a house
|
1258
|
+
an I.O.U.
|
1259
|
+
an IQ
|
1260
|
+
an IDEA
|
1261
|
+
an inferno
|
1262
|
+
an Inspector General
|
1263
|
+
a jumbo
|
1264
|
+
a knife
|
1265
|
+
an L.E.D.
|
1266
|
+
a LED
|
1267
|
+
an LCD
|
1268
|
+
a lady in waiting
|
1269
|
+
a leaf
|
1270
|
+
an M.I.A.
|
1271
|
+
a MIASMA
|
1272
|
+
an MTV channel
|
1273
|
+
a Major General
|
1274
|
+
an N.C.O.
|
1275
|
+
an NCO
|
1276
|
+
a NATO country
|
1277
|
+
a note
|
1278
|
+
an O.K.
|
1279
|
+
an OK
|
1280
|
+
an OLE
|
1281
|
+
an octavo
|
1282
|
+
an octopus
|
1283
|
+
an okay
|
1284
|
+
a once-and-future-king
|
1285
|
+
an oncologist
|
1286
|
+
a one night stand
|
1287
|
+
an onerous task
|
1288
|
+
an opera
|
1289
|
+
an optimum
|
1290
|
+
an opus
|
1291
|
+
an ox
|
1292
|
+
a Ph.D.
|
1293
|
+
a PET
|
1294
|
+
a P.E.T. scan
|
1295
|
+
a plateau
|
1296
|
+
a quantum
|
1297
|
+
an R.S.V.P.
|
1298
|
+
an RSVP
|
1299
|
+
a REST
|
1300
|
+
a reindeer
|
1301
|
+
an S.O.S.
|
1302
|
+
a SUM
|
1303
|
+
an SST
|
1304
|
+
a salmon
|
1305
|
+
a T.N.T. bomb
|
1306
|
+
a TNT bomb
|
1307
|
+
a TENT
|
1308
|
+
a thought
|
1309
|
+
a tomato
|
1310
|
+
a U-boat
|
1311
|
+
a U.F.O.
|
1312
|
+
a UFO
|
1313
|
+
a ubiquity
|
1314
|
+
a unicorn
|
1315
|
+
an unidentified flying object
|
1316
|
+
a uniform
|
1317
|
+
a unimodal system
|
1318
|
+
an unimpressive record
|
1319
|
+
an uninformed opinion
|
1320
|
+
an uninvited guest
|
1321
|
+
a union
|
1322
|
+
a uniplex
|
1323
|
+
a uniprocessor
|
1324
|
+
a unique opportunity
|
1325
|
+
a unisex hairdresser
|
1326
|
+
a unison
|
1327
|
+
a unit
|
1328
|
+
a unitarian
|
1329
|
+
a united front
|
1330
|
+
a unity
|
1331
|
+
a univalent bond
|
1332
|
+
a univariate statistic
|
1333
|
+
a universe
|
1334
|
+
an unordered meal
|
1335
|
+
a uranium atom
|
1336
|
+
an urban myth
|
1337
|
+
an urbane miss
|
1338
|
+
an urchin
|
1339
|
+
a urea detector
|
1340
|
+
a urethane monomer
|
1341
|
+
an urge
|
1342
|
+
an urgency
|
1343
|
+
a urinal
|
1344
|
+
an urn
|
1345
|
+
a usage
|
1346
|
+
a use
|
1347
|
+
an usher
|
1348
|
+
a usual suspect
|
1349
|
+
a usurer
|
1350
|
+
a usurper
|
1351
|
+
a utensil
|
1352
|
+
a utility
|
1353
|
+
an utmost urgency
|
1354
|
+
a utopia
|
1355
|
+
an utterance
|
1356
|
+
a V.I.P.
|
1357
|
+
a VIPER
|
1358
|
+
a viper
|
1359
|
+
an X-ray
|
1360
|
+
an X.O.
|
1361
|
+
a XYLAPHONE
|
1362
|
+
an XY chromosome
|
1363
|
+
a xenophobe
|
1364
|
+
a Y-shaped pipe
|
1365
|
+
a Y.Z. plane
|
1366
|
+
a YMCA
|
1367
|
+
an YBLENT eye
|
1368
|
+
an yblent eye
|
1369
|
+
an yclad body
|
1370
|
+
a yellowing
|
1371
|
+
a yield
|
1372
|
+
a youth
|
1373
|
+
a youth
|
1374
|
+
an ypsiliform junction
|
1375
|
+
an yttrium atom
|
1376
|
+
a zoo
|
1377
|
+
|
1378
|
+
__END_DATA__
|