51 lines
1.5 KiB
JavaScript
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()
|
|
})
|