项目文件夹

文件
2026-07-13 12:48:55 +08:00

102 行
4.3 KiB
JavaScript

import test from 'tape'
import nlp from '../_lib.js'
const here = '[three/verb-find] '
test('verb-splitter:', function (t) {
const arr = [
[`poodles like being pampered`, ['like', 'being pampered']],
[`i can help fix the tire`, ['can help', 'fix']],
[`i will help out the team`, ['will help out']],
[`we breifly studied up on the theory`, ['breifly studied up']],
[`we studied breifly up in the lobby`, ['studied breifly']],
[`it waxed and waned`, ['waxed', 'waned']],
[`he ran, swam, and biked`, ['ran,', 'swam,', 'biked']],
// [`he ran to get it`, ['ran to get']],
[`he should have earned or valued it by now`, ['should have earned', 'valued']],
[`he should not have shown such skill`, ['should not have shown']],
[`walk faster`, ['walk']],
[`he professes love`, ['professes']],
[`we go eat`, ['go eat']],
[`we will go eat`, ['will go eat']],
[`we will walk and eat`, ['will walk', 'eat']],
[`when the rain pours, come have a drink`, ['pours,', 'come have']],
// [ `poodles like to be pampered`, verbs: ['like', 'be pampered'] ]
// pastTense-pastTense
[`i have been told`, ['have been told']],
[`Everyone he met told him`, ['met', 'told']],
[`Everyone he met had told him`, ['met', 'had told']],
[`Particularly sought was information`, ['Particularly sought', 'was']],
[`The one he invented was expensive`, ['invented', 'was']],
// [`fans that are blowing feel amazing`, ['are blowing', 'feel amazing']],
[`fans that were blowing felt amazing`, ['were blowing', 'felt']],
// [`recognizing written language`, ['recognizing']],
[`I'm getting written up`, ['getting written up']],
// -- verb [to] verb --
// [`while being rocked to sleep`, ['being rocked to sleep']],
// [`whilst being rocked to permit even roasting`, ['being rocked', 'permit', 'even roasting']],
// [`I got to feeling like Superman`, ['got to feeling']],
// [` I look forward to coming to your city`, ['look forward to coming']],
[`he would not stop asking questions`, ['would not stop asking']],
[`he was pissed off for having to wait`, ['was', 'having to wait']],
[`so I'm not going to walk a mile`, ['not going to walk']],
// [`Some refused to leave`, ['refused to leave']],
// [`you mean to do it`, ['mean to do']],
[`They used to wander around here`, ['used to wander around']],
// [`it continues to function as a phone`, ['continues to function']],
// [`i am fully expecting to find the piece of rubber`, ['am fully expecting to find']],
// [`the kids are not to be allowed to swim`, ['']],
// [`We have got to do better`, ['have got to do']],
// [`trying to get loose`, ['']],
// [` I did not seem to mind`, ['did not seem to mind']],
// [``, ['']],
]
arr.forEach(a => {
const [str, vbs] = a
const verbs = nlp(str).verbs().out('array')
t.deepEqual(verbs, vbs, here + str)
})
t.end()
})
//dont take it too-far
test('verb-greedy:', function (t) {
let arr = nlp('he would be, had he survived').verbs().json()
t.equal(arr.length, 2, here + 'split-on-clause')
arr = nlp('we walked, talked, and sang').verbs().json()
t.equal(arr.length, 3, here + 'split-on-list')
arr = nlp('we walked, talked, and quickly sang').verbs().json()
t.equal(arr.length, 3, here + 'split-on-list2')
arr = nlp('we suddenly walked, talked, and abruptly sang').verbs().json()
t.equal(arr.length, 3, here + 'split-on-list3')
arr = nlp('we really').verbs().json()
t.equal(arr.length, 0, here + 'adverb-isnt-a-verb')
arr = nlp('we really really').verbs().json()
t.equal(arr.length, 0, here + 'two-adverbs-isnt-a-verb')
arr = nlp('not good').verbs().json()
t.equal(arr.length, 0, here + 'not-isnt-a-verb')
let str = nlp('we must not').verbs().out('normal')
t.equal(str, 'must not', here + 'verb-not')
str = nlp('we must really').verbs().out('normal')
t.equal(str, 'must really', here + 'verb-adverb')
str = nlp('we must really not').verbs().out('normal')
t.equal(str, 'must really not', here + 'verb-adverb-not')
str = nlp('the skill you can sell is your knowledge').verbs().eq(0).out('normal')
t.equal(str, 'can sell', here + 'can sell is')
str = nlp('what you can sell will be').verbs().eq(0).out('normal')
t.equal(str, 'can sell', here + 'can sell will be')
t.end()
})