Files
2026-07-13 12:48:55 +08:00

78 lines
1.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import test from 'tape'
import nlp from '../_lib.js'
const here = '[one/safe-contractions] '
test('safe-apostrophe-s', function (t) {
const arr = [
// yes
// [`She's got me`, 4],
[`Lets not`, 3],
[`that's it!`, 3],
[`whats going on?`, 4],
[`There's a row`, 4],
// [`It's unbelievable`, 3],
// no
[`Luke's Diner`, 2],
[`Murphy's law`, 2],
[`Gandhi's philosophy `, 2],
// tricky-yes
// [`Gandhi's cool `, 3],
// [`Gandhi's so early `, 4],
// toronto's massive party
// toronto's massive
// toronto's trying
// ['',]
]
arr.forEach(a => {
const terms = nlp(a[0]).terms()
t.equal(terms.length, a[1], here + a[0])
})
t.end()
})
test('safe-apostrophe-d', function (t) {
const arr = [
// [`she'd say`, 'she would say'],
[`she'd go`, 'she would go'],
[`we'd go`, 'we would go'],
[`we'd gone`, 'we had gone'],
// [`i'd phoned`, `i had phoned`],
]
arr.forEach(a => {
const str = nlp(a[0]).text('machine')
t.equal(str, a[1], here + a[0])
})
t.end()
})
test('theres', function (t) {
const arr = [
[`there's a`, 'there is'],
[`there's no going back`, 'there is'],
[`there's no honor`, 'there is'],
[`where there's a job`, 'there is'],
[`and there's a little old man`, 'there is'],
[`there's always`, 'there is'],
[`there's one`, 'there is'],
[`theres gonna be strippers`, 'there is'],
[`There's something strange`, 'there is'],
[`guess there's not much to do `, 'there is'],
[`There's never been a more important moment`, 'there has'],
[`there's been`, 'there has'],
[`there's never been`, 'there has'],
[`There's hardly been any progress`, 'there has'],
]
arr.forEach(a => {
const doc = nlp(a[0])
t.ok(doc.has(a[1]), a[0])
})
t.end()
})