spencermountain--compromise
107 行
7.3 KiB
JavaScript
107 行
7.3 KiB
JavaScript
import test from 'tape'
|
|
import nlp from './_lib.js'
|
|
const here = '[three/full-api] '
|
|
|
|
//run every method once, and check against runtime errors
|
|
test('constructor api', function (t) {
|
|
const fns = {
|
|
tokenize: () => { nlp.tokenize("you're sure you haven't just made thousands of mistakes?") },
|
|
plugin: () => { nlp.plugin({ words: { bloobah: 'Yeah' } }) },
|
|
verbose: () => { nlp.verbose(false); nlp('I am the very model of a modern Major-General') },
|
|
version: () => { nlp.version },
|
|
all: () => { nlp('this is yelling').match('#Verb').toTitleCase().all().text() },
|
|
found: () => { nlp('oh say can you see?').match('see').found },
|
|
wordCount: () => { nlp('this is yelling').wordCount() },
|
|
length: () => { nlp('jackie kennedy and aristotle onassis').match('#Person+').length },
|
|
clone: () => { nlp('would somebody please think of the children').clone().toUpperCase().all().text() },
|
|
cache: () => { const doc = nlp("I'm looking for Amanda Hugginkiss").cache({ root: true }); doc.match('~look~') },
|
|
uncache: () => { const doc = nlp("urine-soaked hell-hole").uncache(); doc.tag("Insult") },
|
|
first: () => { nlp('foo').first() },
|
|
last: () => { nlp('foo').last() },
|
|
slice: () => { nlp('Homer, have you been eating that sandwich again?').terms().slice(0, 3).text() },
|
|
eq: () => { nlp('foo').eq(1) },
|
|
firstTerm: () => { nlp('foo').firstTerm() },
|
|
lastTerm: () => { nlp('foo').lastTerm() },
|
|
termList: () => { nlp('foo').termList() },
|
|
match: () => { nlp('we understand, we are from the land of chocolate.').match('land of #Noun').text() },
|
|
not: () => { nlp('wait, there’s a new mexico?').match('#Place').not('new').text() },
|
|
matchOne: () => { nlp('foo').matchOne() },
|
|
if: () => { nlp('We’re here, we’re clear, we don’t want anymore bears.').clauses().if('anymore').text() },
|
|
ifNo: () => { nlp('We’re here, we’re clear, we don’t want anymore bears.').clauses().ifNo('anymore').text() },
|
|
has: () => { nlp('I am the very model of a modern Major-General').has('#Pronoun') },
|
|
lookBehind: () => { nlp('foo').lookBehind() },
|
|
lookAhead: () => { nlp('foo').lookAhead() },
|
|
before: () => { nlp('one two three four five').before('three').text() },
|
|
after: () => { nlp('one two three four five').after('three').text() },
|
|
lookup: () => { nlp('chocolate microscopes? double guitars?').lookup(['double guitars']).length },
|
|
toUpperCase: () => { nlp('Dental plan. Lisa needs braces.').match('dental .').toUpperCase().text() },
|
|
toLowerCase: () => { nlp('Careful! They’re RUFFLED!!').toLowerCase().text() },
|
|
toTitleCase: () => { nlp('jupiter, pluto and mars').match('#Noun').toTitleCase().all().text() },
|
|
toCamelCase: () => { nlp('natural language processing').toCamelCase().text() },
|
|
pre: () => { nlp("we're here. we're clear. we don't want anymore bears.").pre(" ") },
|
|
post: () => { nlp("we're here. we're clear. we don't want anymore bears.").post('!') },
|
|
trim: () => { nlp(' Lenny and Carl ').match('#Person').trim().text() },
|
|
hyphenate: () => { nlp('natural language processing').hyphenate().text() },
|
|
dehyphenate: () => { nlp('natural-language processing').dehyphenate().text() },
|
|
tag: () => { nlp('Michael Apple ate a delicious apple.').match('#FirstName apple').tag('Person').all().match('#Person+').text() },
|
|
tagSafe: () => { nlp('foo').tagSafe() },
|
|
unTag: () => { nlp('they made a catch & scored a run').match('(run|catch)').unTag('#Verb').all().match('#Verb').out('array') },
|
|
canBe: () => { nlp('it’s fusilli jerry!').canBe('Person').text() },
|
|
map: () => { nlp('yahoo serious festival').terms().map((m) => m.toUpperCase()).text() },
|
|
forEach: () => { nlp('Oh, no! Bette Midler!').match('#Person+').forEach((m) => m.text()) },
|
|
filter: () => { nlp('Hey, anymore arboretum’s around here?').terms().filter(m => m.has('#Plural')).length },
|
|
find: () => { nlp('Always do the opposite of what bart says').terms().find(m => m.out('normal').match(/b[ao]rt/)).text() },
|
|
some: () => { nlp('Don’t make me run, I’m full of chocolate!').terms().some(m => m.out('normal') === 'run') },
|
|
random: () => { nlp('one two three four').terms().random(2).out('array') },
|
|
replaceWith: () => { nlp('it was the worst of times').match('worst').replaceWith('blurst', true).all().text() },
|
|
replace: () => { nlp('trust me folks, big league.').replace('big league', 'bigly').all().text() },
|
|
delete: () => { nlp('you don’t win friends with salad').delete('do not').text() },
|
|
append: () => { nlp('i know so many words').insertAfter('bigly').all().text() },
|
|
prepend: () => { nlp('stupid flanders').match('flanders').insertBefore('sexy').all().text() },
|
|
concat: () => { nlp('My name is Otto').concat('and i love to get blotto').all().length },
|
|
sort: () => { nlp('Larry, Curly, Moe').terms().sort('alphabetical').out('array') },
|
|
reverse: () => { nlp('foo').reverse() },
|
|
normalize: () => { nlp(' so... you like DONUTS? have all the donuts in the WORLD!!!').normalize().all().get(0).text() },
|
|
unique: () => { nlp('foo').unique() },
|
|
split: () => { nlp('Monorail...Once again! Monorail... Monorail!').splitOn('monorail').eq(0).text() },
|
|
splitAfter: () => { nlp('Monorail...Once again! Monorail... Monorail!').splitAfter('monorail').eq(0).text() },
|
|
splitBefore: () => { nlp('Monorail...Once again! Monorail... Monorail!').splitBefore('monorail').eq(0).text() },
|
|
text: () => { nlp('you might say there’s a little Uter in all of us').match('#Adjective uter').out('array') },
|
|
out: () => { nlp('foo').out() },
|
|
json: () => { nlp('The stage was set for the Alan Parsons Project! Which I believe was some sort of hovercraft.').data() },
|
|
terms: () => { nlp('we should all be more like little Ruttiger').terms().json() },
|
|
clauses: () => { nlp('All right, Colossus, you’re free to go, but stay away from Death Mountain').clauses().data() },
|
|
hyphenated: () => { nlp('foo').hyphenated() },
|
|
phoneNumbers: () => { nlp('Moe Sizlak. That’s right. I’m a surgeon. (800) 555-0000.').phoneNumbers().json() },
|
|
hashTags: () => { nlp('oh, but where is the #anykey').hashTags().json() },
|
|
emails: () => { nlp('foo').emails() },
|
|
emoticons: () => { nlp('foo').emoticons() },
|
|
emoji: () => { nlp('foo').emoji() },
|
|
atMentions: () => { nlp('foo').atMentions() },
|
|
urls: () => { nlp('thank you http://simpsons.wikia.com').urls().json() },
|
|
adverbs: () => { nlp('foo').adverbs() },
|
|
pronouns: () => { nlp('foo').pronouns() },
|
|
conjunctions: () => { nlp('foo').conjunctions() },
|
|
prepositions: () => { nlp('foo').prepositions() },
|
|
abbreviations: () => { nlp('foo').abbreviations() },
|
|
contractions: () => { nlp('foo').contractions() },
|
|
parentheses: () => { nlp('Use a pointed stick (a pencil) or a similar tool').parentheses().data() },
|
|
possessives: () => { nlp('moe’s tavern').possessives().text() },
|
|
quotations: () => { nlp('the he said "crazy like a fox!".').quotations().data().length },
|
|
acronyms: () => { nlp('foo').acronyms() },
|
|
nouns: () => { nlp('foo').nouns() },
|
|
verbs: () => { nlp('Moe Sizlak. That’s right. I’m a surgeon.').verbs() },
|
|
// debug: () => { nlp('foo').debug() },
|
|
}
|
|
Object.keys(fns).forEach(k => {
|
|
t.doesNotThrow(() => {
|
|
try {
|
|
fns[k]()
|
|
} catch (e) {
|
|
t.fail(here + k + e)
|
|
}
|
|
}, k)
|
|
})
|
|
t.end()
|
|
})
|