diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-08 21:14:26 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-08 21:14:26 -0400 |
| commit | 2ff502e46f9d7e6929059479da2e160d0cbbf5de (patch) | |
| tree | 4bc056b8ffbdbd3e4f24cec4c7a68d8345b1bb07 /test/js | |
| parent | 176c78f51809ba3648d7a4cdedc78553df5904ae (diff) | |
Organize tests scripts a little better and add README
Diffstat (limited to 'test/js')
| -rwxr-xr-x | test/js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/js b/test/js new file mode 100755 index 00000000..da099417 --- /dev/null +++ b/test/js @@ -0,0 +1,34 @@ +#! /usr/bin/env node + +let bqn = require(__dirname+'/../docs/bqn.js'); +let load = f=>require('fs').readFileSync(__dirname+'/'+f,'utf8'); +let args = process.argv.slice(2); +let prim = args[0]==="-prim"; + +if (prim || 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 (prim) { + let r = load('prim.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)); + } + + 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(args.map(bqn)); +} |
