aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/js/language/en/english-transforms.js2
-rw-r--r--test/language/english-transforms.test.js109
2 files changed, 109 insertions, 2 deletions
diff --git a/ext/js/language/en/english-transforms.js b/ext/js/language/en/english-transforms.js
index e4c4dcc6..079eb42b 100644
--- a/ext/js/language/en/english-transforms.js
+++ b/ext/js/language/en/english-transforms.js
@@ -255,7 +255,7 @@ export const englishTransforms = {
name: 'un-',
description: 'Negative form of an adjective, adverb, or verb',
rules: [
- suffixInflection('un', '', ['adj', 'adv', 'v'], ['adj', 'adv', 'v'])
+ prefixInflection('un', '', ['adj', 'adv', 'v'], ['adj', 'adv', 'v'])
]
},
{
diff --git a/test/language/english-transforms.test.js b/test/language/english-transforms.test.js
index 6612e006..9ae48ce1 100644
--- a/test/language/english-transforms.test.js
+++ b/test/language/english-transforms.test.js
@@ -26,16 +26,123 @@ const tests = [
category: 'nouns',
valid: true,
tests: [
- {term: 'cat', source: 'cats', rule: 'ns', reasons: ['plural']}
+ {term: 'cat', source: 'cats', rule: 'ns', reasons: ['plural']},
+ {term: 'cat', source: 'cat\'s', rule: 'ns', reasons: ['possessive']},
+ {term: 'cats', source: 'cats\'', rule: 'ns', reasons: ['possessive']},
+ {term: 'dirt', source: 'dirty', rule: 'ns', reasons: ['-y']},
+ {term: 'haze', source: 'hazy', rule: 'ns', reasons: ['-y']},
+ {term: 'bag', source: 'baggy', rule: 'ns', reasons: ['-y']},
+ {term: 'scum', source: 'scummy', rule: 'ns', reasons: ['-y']},
+ {term: 'run', source: 'runny', rule: 'ns', reasons: ['-y']},
+ {term: 'slip', source: 'slippy', rule: 'ns', reasons: ['-y']},
+ {term: 'star', source: 'starry', rule: 'ns', reasons: ['-y']},
+ {term: 'gas', source: 'gassy', rule: 'ns', reasons: ['-y']},
+ {term: 'wit', source: 'witty', rule: 'ns', reasons: ['-y']}
]
},
{
category: 'verbs',
valid: true,
tests: [
+ {term: 'walk', source: 'walked', rule: 'v', reasons: ['past']},
+ {term: 'walk', source: 'going to walk', rule: 'v', reasons: ['going-to future']},
+ {term: 'walk', source: 'will walk', rule: 'v', reasons: ['will future']},
+ {term: 'walk', source: 'don\'t walk', rule: 'v', reasons: ['imperative negative']},
+ {term: 'walk', source: 'do not walk', rule: 'v', reasons: ['imperative negative']},
+ {term: 'hope', source: 'hoped', rule: 'v', reasons: ['past']},
+ {term: 'try', source: 'tried', rule: 'v', reasons: ['past']},
+ {term: 'frolic', source: 'frolicked', rule: 'v', reasons: ['past']},
+ {term: 'rub', source: 'rubbed', rule: 'v', reasons: ['past']},
+ {term: 'bid', source: 'bidded', rule: 'v', reasons: ['past']},
+ {term: 'rig', source: 'rigged', rule: 'v', reasons: ['past']},
+ {term: 'yak', source: 'yakked', rule: 'v', reasons: ['past']},
+ {term: 'dial', source: 'dialled', rule: 'v', reasons: ['past']},
+ {term: 'skim', source: 'skimmed', rule: 'v', reasons: ['past']},
+ {term: 'bin', source: 'binned', rule: 'v', reasons: ['past']},
+ {term: 'rip', source: 'ripped', rule: 'v', reasons: ['past']},
+ {term: 'star', source: 'starred', rule: 'v', reasons: ['past']},
+ {term: 'bus', source: 'bussed', rule: 'v', reasons: ['past']},
+ {term: 'pit', source: 'pitted', rule: 'v', reasons: ['past']},
+ {term: 'quiz', source: 'quizzed', rule: 'v', reasons: ['past']},
+ {term: 'lay', source: 'laid', rule: 'v', reasons: ['past']},
+ {term: 'pay', source: 'paid', rule: 'v', reasons: ['past']},
+ {term: 'say', source: 'said', rule: 'v', reasons: ['past']},
+ {term: 'adorn', source: 'adorn\'d', rule: 'v', reasons: ['past', 'archaic']},
+ {term: 'walk', source: 'walking', rule: 'v', reasons: ['ing']},
+ {term: 'drive', source: 'driving', rule: 'v', reasons: ['ing']},
+ {term: 'lie', source: 'lying', rule: 'v', reasons: ['ing']},
+ {term: 'panic', source: 'panicking', rule: 'v', reasons: ['ing']},
+ {term: 'rub', source: 'rubbing', rule: 'v', reasons: ['ing']},
+ {term: 'bid', source: 'bidding', rule: 'v', reasons: ['ing']},
+ {term: 'rig', source: 'rigging', rule: 'v', reasons: ['ing']},
+ {term: 'yak', source: 'yakking', rule: 'v', reasons: ['ing']},
+ {term: 'dial', source: 'dialling', rule: 'v', reasons: ['ing']},
+ {term: 'skim', source: 'skimming', rule: 'v', reasons: ['ing']},
+ {term: 'bin', source: 'binning', rule: 'v', reasons: ['ing']},
+ {term: 'rip', source: 'ripping', rule: 'v', reasons: ['ing']},
+ {term: 'star', source: 'starring', rule: 'v', reasons: ['ing']},
+ {term: 'bus', source: 'bussing', rule: 'v', reasons: ['ing']},
+ {term: 'pit', source: 'pitting', rule: 'v', reasons: ['ing']},
+ {term: 'quiz', source: 'quizzing', rule: 'v', reasons: ['ing']},
+ {term: 'run', source: 'runnin\'', rule: 'v', reasons: ['ing', 'dropped g']},
+ {term: 'walk', source: 'walks', rule: 'v', reasons: ['3rd pers. sing. pres']},
+ {term: 'teach', source: 'teaches', rule: 'v', reasons: ['3rd pers. sing. pres']},
+ {term: 'try', source: 'tries', rule: 'v', reasons: ['3rd pers. sing. pres']},
+ {term: 'push', source: 'pushy', rule: 'v', reasons: ['-y']},
+ {term: 'groove', source: 'groovy', rule: 'v', reasons: ['-y']},
+ {term: 'sag', source: 'saggy', rule: 'v', reasons: ['-y']},
+ {term: 'swim', source: 'swimmy', rule: 'v', reasons: ['-y']},
+ {term: 'slip', source: 'slippy', rule: 'v', reasons: ['-y']},
+ {term: 'blur', source: 'blurry', rule: 'v', reasons: ['-y']},
+ {term: 'chat', source: 'chatty', rule: 'v', reasons: ['-y']},
+ {term: 'learn', source: 'unlearn', rule: 'v', reasons: ['un-']}
+ ]
+ },
+ {
+ category: 'phrasal verbs',
+ valid: true,
+ tests: [
{term: 'look up', source: 'look something up', rule: 'v_phr', reasons: ['interposed object']},
+ {term: 'look up', source: 'looking up', rule: 'v_phr', reasons: ['ing']},
+ {term: 'look up', source: 'looked up', rule: 'v_phr', reasons: ['past']},
+ {term: 'look up', source: 'looks up', rule: 'v_phr', reasons: ['3rd pers. sing. pres']},
{term: 'look up', source: 'looked something up', rule: 'v_phr', reasons: ['past', 'interposed object']}
]
+ },
+ {
+ category: 'adverbs',
+ valid: true,
+ tests: [
+ {term: 'interestingly', source: 'uninterestingly', rule: 'adj', reasons: ['un-']}
+ ]
+ },
+ {
+ category: 'adjectives',
+ valid: true,
+ tests: [
+ {term: 'funny', source: 'unfunny', rule: 'adj', reasons: ['un-']},
+ {term: 'cool', source: 'cooler', rule: 'adj', reasons: ['comparative']},
+ {term: 'subtle', source: 'subtler', rule: 'adj', reasons: ['comparative']},
+ {term: 'funny', source: 'funnier', rule: 'adj', reasons: ['comparative']},
+ {term: 'drab', source: 'drabber', rule: 'adj', reasons: ['comparative']},
+ {term: 'mad', source: 'madder', rule: 'adj', reasons: ['comparative']},
+ {term: 'big', source: 'bigger', rule: 'adj', reasons: ['comparative']},
+ {term: 'dim', source: 'dimmer', rule: 'adj', reasons: ['comparative']},
+ {term: 'tan', source: 'tanner', rule: 'adj', reasons: ['comparative']},
+ {term: 'hot', source: 'hotter', rule: 'adj', reasons: ['comparative']},
+ {term: 'cool', source: 'coolest', rule: 'adj', reasons: ['superlative']},
+ {term: 'subtle', source: 'subtlest', rule: 'adj', reasons: ['superlative']},
+ {term: 'funny', source: 'funniest', rule: 'adj', reasons: ['superlative']},
+ {term: 'drab', source: 'drabbest', rule: 'adj', reasons: ['superlative']},
+ {term: 'mad', source: 'maddest', rule: 'adj', reasons: ['superlative']},
+ {term: 'big', source: 'biggest', rule: 'adj', reasons: ['superlative']},
+ {term: 'dim', source: 'dimmest', rule: 'adj', reasons: ['superlative']},
+ {term: 'tan', source: 'tannest', rule: 'adj', reasons: ['superlative']},
+ {term: 'hot', source: 'hottest', rule: 'adj', reasons: ['superlative']},
+ {term: 'quick', source: 'quickly', rule: 'adj', reasons: ['adverb']},
+ {term: 'happy', source: 'happily', rule: 'adj', reasons: ['adverb']},
+ {term: 'humble', source: 'humbly', rule: 'adj', reasons: ['adverb']}
+ ]
}
];
/* eslint-enable @stylistic/no-multi-spaces */