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

73 lines
2.3 KiB
JavaScript

import test from 'tape'
import nlp from '../_lib.js'
const here = '[three/sentence-misc] '
test('misc sentences', function (t) {
let doc = nlp(`quickly, suddenly`)
t.equal(doc.sentences().length, 1, here + 'found one sentence')
doc = nlp(`john, bill, and joe. Here we go. Must be three now.`)
t.equal(doc.sentences().length, 3, here + 'found three sentences')
const d = nlp(`i am good`)
const s = d.sentences()
s.replace('am', 'was')
t.equal(d.text(), 'i was good', here + 'tricky map replace bug')
t.end()
})
test('full sentence', function (t) {
const doc = nlp(`john, bill, and joe. Here we go. Must be three now.`)
const m = doc.match('we')
t.equal(m.sentences().text(), 'Here we go.', here + 'found full sentence')
t.end()
})
test('sentence prepend', function (t) {
let doc = nlp('He is cool.')
doc.sentences().prepend('so i think')
t.equal(doc.text(), 'So i think he is cool.', here + 'reset titlecase')
doc = nlp('Spencer is cool.')
doc.sentences().prepend('yeah')
t.equal(doc.text(), 'Yeah Spencer is cool.', here + 'leave propernoun titlecase')
t.end()
})
test('sentence filters', function (t) {
const doc = nlp('He is cool? I think not. Yipeee!').sentences()
t.equal(doc.isExclamation().length, 1, here + 'has-exclamation')
t.equal(doc.isQuestion().length, 1, here + 'has-question')
t.equal(doc.isStatement().length, 1, here + 'has-statement')
t.end()
})
test('sentence append', function (t) {
let doc = nlp('Spencer is cool.')
doc.sentences().append('i think')
t.equal(doc.text(), 'Spencer is cool i think.', here + 'move period')
doc = nlp('Spencer is cool?')
doc.sentences().append('i think')
t.equal(doc.text(), 'Spencer is cool i think?', here + 'move question-mark')
doc = nlp('Spencer is cool!')
doc.sentences().append('i think')
t.equal(doc.text(), 'Spencer is cool i think!', here + 'move exclamation-mark')
t.end()
})
// test('sentence append - change', function (t) {
// let doc = nlp('i am cool. it is raining!')
// doc.sentences().append('right?')
// t.equal(doc.text(), 'i am cool right? it is raining right?', 'change ending')
// doc = nlp('it is cool? it is raining?')
// doc.sentences(0).append('for sure. ')
// t.equal(doc.all().text(), 'it is cool for sure. it is raining?', 'change ending 2')
// t.end()
// })