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

293 lines
6.7 KiB
TypeScript

// a smoke-test for our typescipt typings
import nlp from '../../'
import tape from 'tape'
import stats, { StatsMethods } from '../../plugins/stats'
import dates, { DatesMethods } from '../../plugins/dates'
import speech, { SpeechMethods } from '../../plugins/speech'
import speed, { SpeedMethods } from '../../plugins/speed'
import wiki, { WikiMethods } from '../../plugins/wikipedia'
nlp.plugin(stats)
nlp.plugin(dates)
nlp.plugin(speech)
nlp.plugin(speed)
nlp.plugin(wiki)
console.log('\n 🥗 - running types-test..\n')
tape('misc functions', function (t) {
let doc = nlp('John and Joe walked to the store')
let m = doc.filter(s => s.found)
const b = doc.map(s => s)
doc.forEach((s) => s)
const o = doc.find(s => s.found)
m = doc.some(s => s.found)
m = doc.random()
m = doc.all()
m = doc.eq(0)
m = doc.first()
m = doc.firstTerms()
m = doc.fullSentences()
m = doc.last()
m = doc.lastTerms()
m = doc.none()
m = doc.slice(0, 1)
m = doc.terms()
m = doc.update([])
m = doc.toView([])
m = doc.fromText('')
m = doc.clone()
const obj = doc.groups()
let arr = doc.termList()
const c = doc.wordCount()
doc.fullPointer
doc.docs
doc.pointer
doc.methods
doc.model
doc.hooks
doc.isView
doc.found
doc.length
// One
doc.compute('id')
// change
m = doc.toLowerCase()
m = doc.toUpperCase()
m = doc.toTitleCase()
m = doc.toCamelCase()
m = doc.insertAfter('asdf')
m = doc.insertBefore('boo')
m = doc.append('foo')
m = doc.prepend('foo')
m = doc.insert('bar')
m = doc.match('flood').replaceWith('asf')
m = doc.replace('m', 'woo')
m = doc.remove('foo')
m = doc.delete('bar')
m = doc.pre(' ')
m = doc.post(' ')
m = doc.trim()
m = doc.hyphenate()
m = doc.dehyphenate()
m = doc.toQuotations()
m = doc.toParentheses()
m = doc.deHyphenate()
m = doc.toQuotation()
m = doc.unique()
m = doc.reverse()
m = doc.sort()
m = doc.concat(doc.none())
// doc.fork()
doc.compute('contractions')
doc.compute('lexicon')
doc.lookup(['blue jays', 'farmer'])
// match
m = doc.matchOne('#Foo')
m = doc.match('#Foo')
const bool = doc.has('#Foo')
m = doc.if('#Foo')
m = doc.ifNo('#Foo')
m = doc.before('#Foo')
m = doc.after('#Foo')
m = doc.growLeft('#Foo')
m = doc.growRight('#Foo')
m = doc.grow('#Foo')
m = doc.splitOn('#Foo')
m = doc.splitBefore('#Foo')
m = doc.splitAfter('#Foo')
m = doc.split('#Foo')
// output
const res = doc.out()
let txt = doc.text()
txt = doc.text('normal')
txt = doc.text('machine')
txt = doc.text('root')
txt = doc.text('implicit')
txt = doc.json()
// sets
m = doc.union('blah')
m = doc.and('blah')
m = doc.intersection('blah')
m = doc.difference('blah')
m = doc.not('blah')
m = doc.complement('blah')
m = doc.settle('blah')
m = doc.tag('Foo')
m = doc.tagSafe('Foo')
m = doc.unTag('Foo')
m = doc.canBe('Foo')
doc.compute('alias')
doc.compute('normal')
doc.compute('machine')
doc.compute('freq')
doc.compute('offset')
doc.compute('index')
doc.compute('wordCount')
doc.compute('typeahead')
doc.autoFill()
// sweep
const matches = [
{ match: '2nd quarter of? 2022', tag: 'TimePeriod' },
{ match: '(from|by|before) now', tag: 'FooBar' },
]
const net = nlp.buildNet(matches)
doc = nlp(`so good by now. woo hoo before now. in the 2nd quarter 2022`)
const sr = doc.sweep(net)
// lazy
doc = nlp.lazy('hello', 'foo')
// Two
doc.compute('contractionTwo')
m = doc.contractions()
m = doc.contractions().expand()
doc.confidence()
doc.compute('preTagger')
doc.compute('tagRank')
doc.compute('root')
doc.compute('penn')
m = doc.swap('rock', 'stone', '#Noun')
// Three
doc.compute('chunks')
m = doc.chunks()
m = doc.clauses()
// nouns
let tmp = doc.nouns().parse()
arr = doc.nouns().json()
let noun = doc.nouns().isPlural()
noun = doc.nouns().adjectives()
noun = doc.nouns().toPlural()
noun = doc.nouns().toSingular()
// numbers
tmp = doc.numbers().parse()
doc.numbers().get()
arr = doc.numbers().json()
let num = doc.numbers().isOrdinal()
num = doc.numbers().isCardinal()
num = doc.numbers().toNumber()
num = doc.numbers().toLocaleString()
num = doc.numbers().toText()
num = doc.numbers().toCardinal()
num = doc.numbers().toOrdinal()
num = doc.numbers().isEqual()
num = doc.numbers().greaterThan(3)
num = doc.numbers().lessThan(3)
num = doc.numbers().between(3, 4)
num = doc.numbers().set(2)
num = doc.numbers().add(3)
num = doc.numbers().subtract(2)
num = doc.numbers().increment()
num = doc.numbers().decrement()
num = doc.percentages().json()
num = doc.money().json()
num = doc.fractions().json()
// sentences
let s = doc.sentences().toPastTense()
s = doc.sentences().toPresentTense()
s = doc.sentences().toFutureTense()
s = doc.sentences().toInfinitive()
s = doc.sentences().toNegative()
s = doc.questions()
// verbs
// arr = doc.verbs().parse()
arr = doc.verbs().json()
const sj = doc.verbs().subjects()
let vb = doc.verbs().isSingular()
vb = doc.verbs().isPlural()
vb = doc.verbs().isImperative()
vb = doc.verbs().toInfinitive()
vb = doc.verbs().toPresentTense()
vb = doc.verbs().toPastTense()
vb = doc.verbs().toFutureTense()
vb = doc.verbs().toGerund()
vb = doc.verbs().conjugate()
vb = doc.verbs().isNegative()
vb = doc.verbs().isPositive()
vb = doc.verbs().toPositive()
vb = doc.verbs().toNegative()
// misc
m = doc.redact()
m = doc.topics()
m = doc.organizations()
tmp = doc.people().parse()
arr = doc.people().json()
m = doc.places()
m = doc.quotations()
m = doc.quotations().strip()
m = doc.parentheses()
m = doc.parentheses().strip()
m = doc.possessives()
m = doc.possessives().strip()
t.ok(true)
t.end()
})
tape('plugin-date', function (t) {
const doc = nlp<DatesMethods>('foo bar baz')
const a = doc.dates()
const b = doc.times()
const c = doc.durations()
let m = doc.dates().match('foo')
m = doc.dates().format('foo')
const arr = doc.dates().get()
// doc.dates().floob()
// doc.floob()
t.end()
})
tape('plugin-speech', function (t) {
const doc = nlp<SpeechMethods>('foo bar baz')
let arr = doc.syllables()
arr = doc.soundsLike()
t.end()
})
tape('plugin-speed', function (t) {
const doc = nlp<SpeedMethods>('foo bar')
// nlp.workerPool()
doc.match('foo')
t.end()
})
tape('plugin-stats', function (t) {
const doc = nlp<StatsMethods>('foo bar baz. foo')
let arr = doc.ngrams()
arr = doc.ngrams()
arr = doc.unigrams()
arr = doc.bigrams()
arr = doc.trigrams()
arr = doc.startgrams()
arr = doc.endgrams()
arr = doc.edgegrams()
const res = doc.tfidf()
t.end()
})
tape('plugin-wikipedia', function (t) {
const doc = nlp<WikiMethods>('foo bar baz. foo')
const wp = doc.wikipedia()
t.end()
})