225 lines
8.3 KiB
JavaScript
225 lines
8.3 KiB
JavaScript
import test from 'tape'
|
|
import nlp from '../_lib.js'
|
|
const here = '[three/verb-toFuture] '
|
|
|
|
test('toFuture:', function (t) {
|
|
const arr = [
|
|
// known forms:
|
|
['he walked', 'he will walk'],
|
|
['i walked', 'i will walk'],
|
|
['we walked', 'we will walk'],
|
|
['they walked', 'they will walk'],
|
|
['the friends walked', 'the friends will walk'],
|
|
['the friend walked', 'the friend will walk'],
|
|
['our users walked', 'our users will walk'],
|
|
['our user walked', 'our user will walk'],
|
|
['the eye closed', 'the eye will close'],
|
|
['the eyes closed', 'the eyes will close'],
|
|
|
|
// copula forms
|
|
['i am not cool', 'i will be not cool'],
|
|
['i was not cool', 'i will be not cool'],
|
|
['i will not be cool', 'i will not be cool'],
|
|
['he is not cool', 'he will be not cool'],
|
|
['he was not cool', 'he will be not cool'],
|
|
['he will not be cool', 'he will not be cool'],
|
|
['they are not cool', 'they will be not cool'],
|
|
['they were not cool', 'they will be not cool'],
|
|
['they will not be cool', 'they will not be cool'],
|
|
|
|
['their colloseum will open', 'their colloseum will open'],
|
|
['their children will open', 'their children will open'],
|
|
|
|
['he walks', 'he will walk'],
|
|
['he walked', 'he will walk'],
|
|
['he will walk', 'he will walk'],
|
|
['he is walking', 'he will be walking'],
|
|
['he was walking', 'he will be walking'],
|
|
['i was walking', 'i will be walking'],
|
|
['we were walking', 'we will be walking'],
|
|
['i am walking', 'i will be walking'],
|
|
['he will be walking', 'he will be walking'],
|
|
|
|
['he has walked', 'he will have walked'],
|
|
['he had walked', 'he will have walked'],
|
|
['he will have walked', 'he will have walked'],
|
|
['he really will have walked', 'he really will have walked'],
|
|
['he will really have walked', 'he will really have walked'],
|
|
['he will have really walked', 'he will have really walked'],
|
|
|
|
['he has been walking', 'he will have been walking'],
|
|
['he had been walking', 'he will have been walking'],
|
|
['he will have been walking', 'he will have been walking'],
|
|
|
|
['he got walked', 'he will get walked'],
|
|
['we got walked', 'we will get walked'],
|
|
['i got walked', 'i will get walked'],
|
|
['he was walked', 'he will be walked'],
|
|
['i was walked', 'i will be walked'],
|
|
['soldiers were walked', 'soldiers will be walked'],
|
|
|
|
['i am being walked', 'i will be walked'],
|
|
['we are being walked', 'we will be walked'],
|
|
['he was being walked', 'he will be walked'],
|
|
// ['had been walked', 'will be walked'], //?
|
|
// ['has been walked', 'will be walked'], //?
|
|
['have been walked', 'will be walked'],
|
|
['were walked', 'will be walked'],
|
|
['was being walked', 'will be walked'],
|
|
// // // ['has been walked', 'had been walked'],
|
|
['had been walked', 'will be walked'],
|
|
// // ['will have been walked', 'has been walked'],
|
|
['will be walked', 'will be walked'],
|
|
|
|
['would be walked', 'will be walked'],
|
|
['would have been walked', 'will have been walked'],
|
|
['is going to walk', 'is going to walk'],
|
|
['did walk', 'will walk'],
|
|
['used to walk', 'will walk'],
|
|
// // ['do walk', 'did walk'],
|
|
['does walk', 'will walk'],
|
|
// ['he used to walk', 'he will be walking'],
|
|
['he did walk', 'he will walk'],
|
|
// ['he must walk', 'he must walk'],
|
|
// ['he must have walked', 'he must walk'],
|
|
|
|
// modal/conditions are weird
|
|
// ['he can walk', 'he can walk'],
|
|
// ['he could walk', 'he can walk'],
|
|
// ['he should walk', 'he should walk'],
|
|
|
|
// want-infinitive
|
|
['he wants to walk', 'he will want to walk'],
|
|
['he wanted to walk', 'he will want to walk'],
|
|
['he will want to walk', 'he will want to walk'],
|
|
|
|
// more past-tense forms
|
|
[`used to claw`, `will claw`],
|
|
[`had clawed`, `will have clawed`],
|
|
[`have clawed`, `will have clawed`],
|
|
[`clawed`, `will claw`],
|
|
[`did claw`, `will claw`],
|
|
|
|
// conjugation -ed issues
|
|
[`sing`, `will sing`],
|
|
[`sung`, `will sing`],
|
|
[`clawed`, `will claw`],
|
|
[`trumped`, `will trump`],
|
|
[`out-lived`, `will out-live`],
|
|
// [`out-live`, `will out-live`],
|
|
[`slugged`, `will slug`],
|
|
[`splashed`, `will splash`],
|
|
[`he uploaded`, `he will upload`],
|
|
[`he echoed`, `he will echo`],
|
|
[`she absorbed`, `she will absorb`],
|
|
[`she bounced`, `she will bounce`],
|
|
|
|
[`faced`, `will face`],
|
|
[`trounced`, `will trounce`],
|
|
|
|
[`appeared`, `will appear`],
|
|
[`sparred`, `will spar`],
|
|
[`speared`, `will spear`],
|
|
[`they colored`, `they will color`],
|
|
[`it cured`, `it will cure`],
|
|
[`roared`, `will roar`],
|
|
[`withered`, `will wither`],
|
|
|
|
[`trumpeted`, `will trumpet`],
|
|
[`he bloated`, `he will bloat`],
|
|
[`he drifted`, `he will drift`],
|
|
[`he doubted`, `he will doubt`],
|
|
[`he rooted`, `he will root`],
|
|
[`he benefited`, `he will benefit`],
|
|
[`he suited`, `he will suit`],
|
|
[`he attributed`, `he will attribute`],
|
|
[`he completed`, `he will complete`],
|
|
[`he shouted`, `he will shout`],
|
|
[`he limited`, `he will limit`],
|
|
[`he prohibited`, `he will prohibit`],
|
|
|
|
[`he annoyed`, `he will annoy`],
|
|
[`he enjoyed`, `he will enjoy`],
|
|
[`he prayed`, `he will pray`],
|
|
[`he preyed`, `he will prey`],
|
|
[`he sprayed`, `he will spray`],
|
|
[`strayed`, `will stray`],
|
|
|
|
[`he lied`, `he will lie`],
|
|
[`he qualified`, `he will qualify`],
|
|
|
|
[`he fluffed`, `he will fluff`],
|
|
[`he engulfed`, `he will engulf`],
|
|
|
|
[`he ruled`, `he will rule`],
|
|
[`he sailed`, `he will sail`],
|
|
[`he piled`, `he will pile`],
|
|
// [`he piled-on`, `he will pile-on`],
|
|
[`he styled`, `he will style`],
|
|
[`he totaled`, `he will total`],
|
|
[`he scheduled`, `he will schedule`],
|
|
[`he pulled`, `he will pull`],
|
|
[`she whirled`, `she will whirl`],
|
|
[`snarled`, `will snarl`],
|
|
|
|
[`she vexed`, `she will vex`],
|
|
[`she relaxed`, `she will relax`],
|
|
|
|
[`she aligned`, `she will align`],
|
|
[`she ruined`, `she will ruin`],
|
|
[`she turned`, `she will turn`],
|
|
[`it rained`, `it will rain`],
|
|
[`she worsened`, `she will worsen`],
|
|
|
|
[`she filmed`, `she will film`],
|
|
[`we nicknamed`, `we will nickname`],
|
|
[`we doomed`, `we will doom`],
|
|
[`we summed`, `we will sum`],
|
|
|
|
['i write', 'i will write'],
|
|
['spencer writes', 'spencer will write'],
|
|
// ['i barely write', 'i will barely write'],
|
|
// ['we barely write', 'we will barely write'],
|
|
// ['we will barely write', 'we will barely write'],
|
|
// [`i'll start looking`, "i'll start looking"],
|
|
[`i won't start looking`, 'i won\'t start looking'],
|
|
// negatives
|
|
['we do not write', 'we will not write'],
|
|
['we will not write', 'we will not write'],
|
|
['angelina does not write', 'angelina will not write'],
|
|
['angelina will not write', 'angelina will not write'],
|
|
['there is no hope', 'there will be no hope'],
|
|
// ['toronto barely starts', 'toronto will barely start'],
|
|
['say it again', 'say it again'],
|
|
// ['council votes to deny it', 'council will vote to deny it'],
|
|
['nobody will say for certain', 'nobody will say for certain'],
|
|
['he will say for certain', 'he will say for certain'],
|
|
['she will not say for certain', 'she will not say for certain'],
|
|
['waiters are furious', 'waiters will be furious'],
|
|
['the waiters will walk out', 'the waiters will walk out'],
|
|
['this union will disrupt', 'this union will disrupt'],
|
|
['this union has disrupted', 'this union will have disrupted'],
|
|
['it will have real feelings', 'it will have real feelings'],
|
|
// ['it had no real feelings', 'it had no real feelings'],
|
|
// ['it will not have studied enough', 'it had not studied enough'],
|
|
// ['spencer will have learned enough', 'spencer will have learned enough'],
|
|
// ['spencer will not have learned enough', 'spencer had not learned enough'],
|
|
|
|
// gerund-phrase
|
|
[`he starts seeing`, `he will start seeing`],
|
|
[`he started seeing`, `he will start seeing`],
|
|
[`he will start seeing`, `he will start seeing`],
|
|
[`we start seeing`, `we will start seeing`],
|
|
[`we started seeing`, `we will start seeing`],
|
|
[`we will start seeing`, `we will start seeing`],
|
|
[`we have started seeing`, `we will start seeing`],
|
|
[`we will have started seeing`, `we will have started seeing`],
|
|
]
|
|
arr.forEach(a => {
|
|
const doc = nlp(a[0])
|
|
doc.verbs().toFutureTense()
|
|
t.equal(doc.text(), a[1], here + ' ' + a[0])
|
|
})
|
|
t.end()
|
|
})
|