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

51 lines
1.5 KiB
JavaScript

import test from 'tape'
import nlp from '../_lib.js'
const here = '[two/and] '
test('and-match', function (t) {
const doc = nlp('june and july cool')
let m = doc.match('(#Date && july)')
t.equal(m.out(), 'july', here + 'found july')
m = doc.match('(#Date && !july)')
t.equal(m.out(), 'june', here + 'found not july')
m = doc.match('(and && !foo && #Conjunction && .)')
t.equal(m.out(), 'and', here + 'three-match')
t.end()
})
test('and-match-more', function (t) {
const doc = nlp('toronto and montreal. Sydney and Paris.')
let m = doc.match('(#ProperNoun && .)')
t.equal(m.length, 4, here + 'found all four')
m = doc.match('(#ProperNoun && /e/)')
t.equal(m.out(), 'montreal. Sydney', here + 'found e words')
m = doc.match('(#ProperNoun && !#Verb)')
t.equal(m.length, 4, here + 'and not')
m = doc.match('(#ProperNoun && #Verb)')
t.equal(m.length, 0, here + 'no and')
m = doc.match('(#ProperNoun && #Noun && * && .{1,3})')
t.equal(m.length, 4, here + 'four towns')
t.end()
})
test('and-match-multi', function (t) {
const doc = nlp('toronto and montreal. Sydney and Paris.')
let m = doc.match('(#ProperNoun and && toronto .)')
t.equal(m.out(), 'toronto and', here + 'found one multi')
m = doc.match('(#ProperNoun and && toronto)')
t.equal(m.out(), 'toronto and', here + 'use longest match')
m = doc.match('(#ProperNoun and montreal && toronto)')
t.equal(m.out(), 'toronto and montreal.', here + 'use longest match 2')
t.end()
})