diff options
| -rwxr-xr-x | test/tj.js | 49 |
1 files changed, 28 insertions, 21 deletions
@@ -1,27 +1,34 @@ #! /usr/bin/env node -const bqn=require(__dirname+'/../bqn.js') - , load=f=>require('fs').readFileSync(__dirname+'/'+f,'utf8'); +let bqn = require(__dirname+'/../bqn.js'); +let load = f=>require('fs').readFileSync(__dirname+'/'+f,'utf8'); +let args = process.argv.slice(2); +let ref = args[0]==="-ref"; -if (process.argv.length <= 2) { - const t=load('cases.bqn').split('\n').filter(x=>x).map(x=>x.split(' % ')) - , test=t.map(e=>e[1]) - , expt=t.map(e=>+e[0]); -//let test= load('testref.bqn').split('\n') -// .filter(x=>x.charAt(0)===' ' -// &&x.charAt(1)===' ' -// &&x.charAt(2)!=='#' -// &&x.indexOf(':')===-1 -// &&x.indexOf('e¯')===-1) -// .map(x=>x.slice(2)) -// , t=test.map(e=>[0,e]) -// , expt=test.map(e=>1); +if (ref || args.length==0) { + let t = (load('cases.bqn')+load('bcases.bqn')) + .split('\n').filter(x=>x).map(x=>x.split(' % ')); + let test = t.map(e=>e[1]); + let expt = t.map(e=>+e[0]); + if (ref) { + let r = load('testref.bqn').split('\n') + .filter(x=>x.charAt(0)===' ' + &&x.charAt(1)===' ' + &&x.charAt(2)!=='#' + &&x.indexOf(':')===-1) + .map(x=>x.slice(2)); + test = test.concat(r); + expt = expt.concat(r.map(e=>1)); + } - test.map((t,i) => { - console.log(t); - let e=expt[i], r=bqn(t); - console.log(e===r ? " Passed!" : " Expected "+e+" but received "+r); - }); + let rslt = test.map(bqn); + let pass = rslt.map((r,i)=>r===expt[i]); + let fail = pass.map((p,i)=>p?-1:i).filter(i=>i>=0); + console.log( + fail.length + ? fail.map(i=>'"'+test[i]+'": expected '+expt[i]+' but received '+rslt[i]) + : "All "+test.length+" passed!" + ); } else { - console.log(process.argv.slice(2).map(bqn)); + console.log(args.map(bqn)); } |
