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

51 lines
1.7 KiB
JavaScript

import test from 'tape'
import nlp from './_lib.js'
const here = '[three/setTag] '
test('custom-tags-persist', function (t) {
let r = nlp('i am two years older now')
let two = r.match('#Value').tag('#FunTag')
two.replaceWith('never')
t.equal(two.has('#FunTag'), false, here + 'custom tag is forgotten')
r = nlp('i am two years older now')
two = r.match('#Value').tag('#FunTag')
two.toUpperCase().trim()
t.equal(two.text(), 'TWO', here + 'term transformed')
t.equal(two.has('#Value'), true, here + 'original tag stays over transformations')
t.equal(two.has('#FunTag'), true, here + 'custom tag stays over transformations')
r = nlp('i am two years older now')
two = r.match('#Value').tag('#FunTag')
two.toUpperCase()
two.values().toNumber()
t.equal(two.has('#FunTag'), true, here + 'custom tag stays over transformations')
r = nlp('june 1999')
r.values().toNumber()
const year = r.match('#Year')
t.equal(year.out('normal'), '1999', here + 'year-stays-a-year')
// not sure if these should pass..
// r = nlp('i am two years older now')
// r.match('am').tag('#FunTag')
// r = r.sentences().toFutureTense().toPresentTense().toPastTense()
// let verb = r.match('#FunTag')
// t.equal(verb.out('normal'), 'was', 'tag stays over sentence-change')
// r = nlp('walked').tag('#FunTag');
// r = r.verbs().toFutureTense().toPresentTense().toPastTense();
// verb = r.match('#FunTag');
// t.equal(verb.out('normal'), 'walked', 'tag stays over verb-change');
t.end()
})
test('untag-soft', function (t) {
const doc = nlp('$5.32')
t.equal(doc.has('#Money'), true, here + 'had-money')
doc.unTag('#Money')
t.equal(doc.has('#Money'), false, here + 'has-no-money')
t.end()
})