154 lines
10 KiB
JavaScript
154 lines
10 KiB
JavaScript
import test from 'tape'
|
|
import nlp from './_lib.js'
|
|
|
|
test('date-phrase tests:', function (t) {
|
|
const arr = [
|
|
[`remind me to buy eggs`, `buy`, `egg`, ``],
|
|
[`please remind me to buy eggs`, `buy`, `egg`, ``],
|
|
[`i really should buy some eggs`, `buy`, `egg`, ``],
|
|
[`i need to remember to buy the eggs`, `buy`, `egg`, ``],
|
|
[`i really ought to buy us some eggs`, `buy`, `egg`, ``],
|
|
[`remember to buy eggs tomorrow`, `buy`, `egg`, `tomorrow`],
|
|
[`i should buy eggs for the kids on sunday`, `buy`, `egg`, `on sunday`],
|
|
[`when i'm at work, buy some eggs for kathrine`, `buy`, `egg`, ``],
|
|
[`it's important that i return the library books`, `return`, `library book`, ``],
|
|
[`please tell john to walk the dogs each night`, `tell`, `john`, `each night`],
|
|
[`don't forget to remind me about returning the library books`, `return`, `library book`, ``],
|
|
[`i've gotta buy some paint for the ceiling on monday`, `buy`, `paint`, `on monday`],
|
|
[`if i'm free, return the books to the library`, `return`, `book`, ``],
|
|
[`bring back the library books`, `bring back`, `library book`, ``],
|
|
[`all the books need to be brought back by tuesday`, `bring back`, `book`, `by tuesday`],
|
|
[`bring the paint cans to the dump with johnny on tuesday`, `bring`, `paint can`, `on tuesday`],
|
|
[`vote on tuesday`, `vote`, ``, `on tuesday`],
|
|
// [`vote after work`, `vote`, ``, `after work`],
|
|
[`buy some bananas`, `buy`, `banana`, ``],
|
|
[`cancel subscription to netflix`, `cancel`, `subscription`, ``],
|
|
[`fixup all the credit cards I lost`, `fixup`, `credit card`, ``],
|
|
[`hey Joseph, i gotta get my homework finished tonight`, ``, `homework`, `tonight`],
|
|
[`workshop some idea with fred`, `workshop`, `idea`, ``],
|
|
[`bust open the screen door by the gate`, `bust open`, `screen door`, ``],
|
|
[`widen the cabinet to fit my playstation`, `widen`, `cabinet`, ``],
|
|
[`call up the architecture firm`, `call up`, `architecture firm`, ``],
|
|
[`find a dogsitter`, `find`, `dogsitter`, ``],
|
|
[`call amber`, `call`, `amber`, ``],
|
|
[`fire debrah`, `fire`, `debrah`, ``],
|
|
[`tell jude to make it better`, `tell`, `jude`, ``],
|
|
[`remind fred to buy shoes`, `remind`, `fred`, ``],
|
|
[`create a business plan`, `create`, `business plan`, ``],
|
|
[`sell the hotdogs at wrigley on friday`, `sell`, `hotdog`, `on friday`],
|
|
[`i'm worried about forgetting amber's necklace`, ``, ``, ``],
|
|
[`reply to frank about sausage rolls for the wedding meal`, `reply`, `frank`, ``],
|
|
[`book the flight to chicago and figure out those details`, `book`, `flight`, ``],
|
|
[`sell the computer on ebay`, `sell`, `computer`, ``],
|
|
[`remember to sell the computer tomorrow on ebay`, `sell`, `computer`, `tomorrow`],
|
|
[`set your alarm at 6:15`, `set`, `alarm`, `at 6:15`],
|
|
[`coroborate details wit anna about thanksgiving`, `coroborate`, `detail`, `thanksgiving`],
|
|
[`drive to hamilton`, `drive`, `hamilton`, ``],
|
|
[`remind me to drive to waterloo on thursday night`, `drive`, `waterloo`, `on thursday night`],
|
|
[`remind me to get snow tires`, `get`, `snow tire`, ``],
|
|
[`archive my family photos`, `archive`, `family photo`, ``],
|
|
[`before the landlord comes, test the smoke alarm`, `test`, `smoke alarm`, ``],
|
|
[`send the lab samples to houston`, `send`, `lab sample`, ``],
|
|
// [`archive all details before tuesday's meeting`, `archive`, `detail`, ``], //hmm
|
|
[`if jude is late, send her an email`, `send`, `email`, ``],
|
|
[`have a talk with amber about her instagram account`, `have a talk`, `talk`, ``],
|
|
[`reply to all my emails in the morning`, `reply`, `email`, `in the morning`],
|
|
// [`ask june to sell off all my assets in the meeting`, `ask`, `june`, ``],
|
|
[`don't forget about sending dad a postcard from jupiter`, `send`, `dad`, ``],
|
|
[`all unique ids need to enter the database`, `need to enter`, `database`, ``],
|
|
[`reply to that guy on okcupid`, `reply`, `guy`, ``],
|
|
// [`send a message to dad thanking him for sunday`, `send`, `message`, ``],
|
|
[`add up the costs of vacationing and equip john with the totals`, `add up`, `cost`, ``],
|
|
// [`terminate all relations with monica immediately`, `terminate`, `relation`, `immediately`],
|
|
[`confirm the totals precede the tax return`, `confirm`, `total`, ``],
|
|
[`make-up the bed and clean the sheets`, `make-up`, `bed`, ``],
|
|
[`clean the appartment and do the dishes`, `clean`, `appartment`, ``],
|
|
[`keep the appartment clean`, `keep`, `appartment`, ``],
|
|
[`add the reciepts up and guarantee a clear decision`, `add`, `reciept`, ``],
|
|
[`grab some groceries tomorrow for the sale`, `grab`, `grocery`, `tomorrow`],
|
|
[`keep tabs on danny this week and ensure he's ok with sandra`, `keep tabs on`, `danny`, `this week`],
|
|
[`write more documentation`, `write`, `documentation`, ``],
|
|
[`please tell me to upload the spreadsheet for danny on friday`, `upload`, `spreadsheet`, `on friday`],
|
|
[`work-up the courage to ask stephanie out`, `work-up`, `courage`, ``],
|
|
[`saturday date with sandra`, ``, `date`, `saturday`],
|
|
[`lunch with Dr. Salvonio on tuesday at 10`, ``, `lunch`, `on tuesday at 10`],
|
|
[`sell the raptors tickets for valentines day`, `sell`, `raptors ticket`, `valentines day`],
|
|
[`bridge with daisy and her sisters`, ``, `bridge`, ``],
|
|
[`work-out tomorrow`, `work-out`, ``, `tomorrow`],
|
|
[`book club every wednesday`, ``, `book club`, `every wednesday`],
|
|
[`sell the rights to my autobiography to judy on instagram`, `sell`, `right`, ``],
|
|
[`remind john to sell his tesco shares`, `sell`, `tesco share`, ``],
|
|
[`keep water levels below 15%`, `keep`, `water level`, ``],
|
|
[`wait for john to pick up his pizza at pizza hut`, `wait`, `john`, ``],
|
|
[`sanitize the database against xss attacks`, `sanitize`, `database`, ``],
|
|
[`ensure nobody enters the area`, `ensure`, `nobody`, ``],
|
|
[`buy three newspapers for fishing lure`, `buy`, `three newspaper`, ``],
|
|
[`John tell me to buy cheeseburgers tuesday night for everybody`, `buy`, `cheeseburger`, `tuesday night`],
|
|
[`so i'd like to watch the space shuttle launch tonight`, `watch`, `space shuttle`, `tonight`],
|
|
[`buy a cello on amazon.com or find one on instagram`, `buy`, `cello`, ``],
|
|
[`date stephanie on tuesday night and buy flowers`, `date`, `stephanie`, `on tuesday night`],
|
|
[`forge a relationship with the investors over christmas`, `forge`, `relationship`, `over christmas`],
|
|
[`wait until july to tell investors about daniel's suit`, `tell`, `investor`, `until july`],
|
|
[`in august, buy june some flowers`, `buy`, `flower`, `in august`],
|
|
[`accept credit cards over email`, `accept`, `credit card`, ``],
|
|
// [`turn the radio down each weeknight`, `turn`, `radio`, `each weeknight`], //tricky
|
|
[`allow users to create new artifacts`, `allow`, `user`, ``],
|
|
[`by february, tell new users we accept donations`, `tell`, `new user`, `by february`],
|
|
// [`normalize all usernames to the main dataset at some point`, `normalize`, `username`, `at some point`],
|
|
// [`eat carrots once a week`, `eat`, `carrot`, `once a week`],
|
|
[`tell sam not to engage in insider trading when he calls`, `tell`, `sam`, ``],
|
|
[`set alarm next tuesday`, `set`, `alarm`, `next tuesday`],
|
|
[`buy all apples from tesco before they run out`, `buy`, `apple`, ``],
|
|
[`ask fred to buy some apples from tescos`, `buy`, `apple`, ``],
|
|
[`hey check my stocks in the morning`, `check`, `stock`, `in the morning`],
|
|
[`ask jaqueline about turnip chips`, `ask`, `turnip chip`, ``],
|
|
[`so, remind me to ask jaqueline where she bought those chips`, `ask`, `chip`, ``],
|
|
[`chill the wine before the party`, `chill`, `wine`, ``],
|
|
[`turn apples into applejuice and put them in the refridgerator`, `turn`, `apple`, ``],
|
|
[`eat the old pizza before it goes bad`, `eat`, `pizza`, ``],
|
|
[`pack a lunch for danny and sam on sunday morning`, `pack`, `lunch`, `on sunday morning`],
|
|
[`set the correct time on my watch once the plane lands`, `set`, `time`, ``],
|
|
[`remember to send everyone a reminder that taxes are non-negotiable`, `send`, `reminder`, ``],
|
|
[`check the mailbox in the morning`, `check`, `mailbox`, `in the morning`],
|
|
[`take out the garbage every thursday`, `take out`, `garbage`, `every thursday`],
|
|
[`monitor subscription lifecycles`, `monitor`, `subscription lifecycle`, ``],
|
|
[`don't forget about monitoring subscription lifecycles`, `monitoring`, `subscription lifecycle`, ``],
|
|
[`use-case analysis project due by friday`, ``, ``, `due by friday`],
|
|
// [`charge phone before going to bed`, `charge`, `phone`, `before going to bed`], //tricky
|
|
[`remember to log hours for bookkeeping`, `log`, `hour`, ``],
|
|
[`this tuesday, buy a new microphone`, `buy`, `microphone`, `this tuesday`],
|
|
[`grab a new monitor when i'm shopping next weekend`, `grab`, `monitor`, `next weekend`],
|
|
[`don't forget to buy headphones before the flight`, `buy`, `headphone`, ``],
|
|
[`buy mangoes`, `buy`, `mango`, ``],
|
|
[`slide the cabinet door all the way closed before leaving`, `slide`, `cabinet door`, ``],
|
|
[`i gotta pay rent friday. don't let me forget`, `pay`, `rent`, `friday`],
|
|
[`make sure the chores are done by tuesday`, `make sure`, `chore`, `by tuesday`],
|
|
[`help hunter with the golf clubs this coming monday`, `help`, `golf club`, `this coming monday`],
|
|
[`turn down the birthday invite`, `turn down`, `birthday invite`, ``],
|
|
[`set all dials to repeat mode after this weekend`, `set`, `dial`, `after this weekend`],
|
|
[`ensure floors are clean before jin arrives`, `ensure`, `floor`, ``],
|
|
[`wash the floor each week after new years`, `wash`, `floor`, `each week after new years`],
|
|
[`remember to read that washington post article about affluenza`, `read`, `washington post article`, ``],
|
|
[`post a tweet about consumerism on april fools day`, `post`, `tweet`, `on april fools day`],
|
|
// [`i need to repay sandra for her dinner yesterday before april`, `repay`, `sandra`, `yesterday`],
|
|
[`i should remember the library books`, `remember`, `library book`, ``],
|
|
[`i should remember to eat more brocolli`, `eat`, `brocolli`, ``],
|
|
[`all the bills are what I need to pay by tuesday`, `bills`, `pay`, `by tuesday`],
|
|
]
|
|
arr.forEach(function (a) {
|
|
const doc = nlp(a[0])
|
|
// let verb = doc.verbs(0).out('reduced')
|
|
// t.equal(verb, a[1], a[0])
|
|
|
|
// let noun = doc
|
|
// .nouns(0)
|
|
// .toSingular()
|
|
// .out('reduced')
|
|
// t.equal(noun, a[2], a[0])
|
|
|
|
const date = doc.match('#Date+').first().out('reduced')
|
|
t.equal(date, a[3], a[0])
|
|
})
|
|
t.end()
|
|
})
|