Contract 'can not' to can't, and 'did not' and 'were not' too

This commit is contained in:
dualfroz committed 2026-10-03 13:10:48 +02:00
1 parent dc46a6d7eb
commit 59098d75c7
2 files changed
+21 -1

No files matched your search

+4 -1
View File
@@ -46,8 +46,11 @@ const contract = function () {
m = doc.match('#Person would')
setContraction(m, `'d`)
// would not -> wouldn't
m = doc.match('(is|was|had|would|should|could|do|does|have|has|can) not')
m = doc.match('(is|was|were|had|would|should|could|do|does|did|have|has) not')
setContraction(m, `n't`)
// can not -> can't
m = doc.match('can not')
setContraction(m, `'t`)
// i have -> i've
m = doc.match('(i|we|they) have')
setContraction(m, `'ve`)
+17
View File
@@ -74,3 +74,20 @@ test('multiple contraction in sentence', function (t) {
t.equal(doc.match('he is dead').length, 2, here + 'multi-contraction-count')
t.end()
})
test('contract negatives', function (t) {
const arr = [
['I can not go', `I can't go`],
['You Can not go', `You Can't go`],
['i did not go', `i didn't go`],
['they were not here', `they weren't here`],
]
arr.forEach(a => {
const doc = nlp(a[0])
doc.contract()
t.equal(doc.text(), a[1], here + a[0])
doc.contractions().expand()
t.equal(doc.text(), a[0], here + 'expand ' + a[0])
})
t.end()
})