/test/selfchecks.js
https://bitbucket.org/darrint/qc.js/ · JavaScript · 110 lines · 89 code · 16 blank · 5 comment · 7 complexity · 7dc3c5f34b8998852bd87c56e31d6192 MD5 · raw file
- // Copyright (c) 2009, Darrin Thompson
- // Some self checks for our generators.
- declare("randWhole", [justSize],
- function(c, a) {
- var result = randWhole(a);
- c.noteArg(result);
- c.assert(result < a || result == 0);
- });
- declare("randWhole nonzero", [justSize],
- function(c, a) {
- c.guard(a > 10);
- var result = randWhole(a);
- c.noteArg(result);
- c.guard(result > 0);
- });
- declare("randWhole zero result", [justSize],
- function(c, a) {
- var result = randWhole(a);
- c.noteArg(result);
- c.guard(result == 0);
- });
- declare("randInt show positive", [arbWholeNum],
- function(c, a) {
- //console.log('input: ' + a);
- var result = randInt(a);
- c.noteArg(result);
- c.guard(result > 0);
- });
- declare("randInt show negative", [arbWholeNum],
- function(c, a) {
- var result = randInt(a);
- c.noteArg(result);
- c.guard(result < 0);
- });
- declare("randInt zero result", [arbWholeNum],
- function(c, a) {
- c.guard(a > 0);
- var result = randInt(a);
- c.noteArg(result);
- c.guard(result == 0);
- });
- declare("randRange between", [arbInt, arbInt],
- function(c, a, b) {
- c.guard(a < b);
- var result = randRange(a, b);
- c.noteArg(result);
- c.assert(a <= result);
- c.assert(b > result);
- });
- declare("randRange between backwards", [arbInt, arbInt],
- function(c, a, b) {
- c.guard(b < a);
- var result = randRange(a, b);
- c.noteArg(result);
- c.assert(b <= result);
- c.assert(a > result);
- });
- declare("randRange equal", [arbInt],
- function(c, a, b) {
- var result = randRange(a, a);
- c.assert(a == result);
- });
- declare("randFloatUnit", [],
- function(c) {
- var result = randFloatUnit();
- c.noteArg(result);
- c.assert(result >= 0);
- c.assert(result < 1);
- });
- declare("collectTest", [arbArray(arbInt)],
- function(c,a) {
- c.classify(a.length == 0, "empty array");
- c.collect(a.length);
- });
- var testArr = [1,2,0,1,0];
- var testArb = {
- arb: function(){
- return testArr;
- },
- shrink: function(s,a) {
- //print('input: ' + a);
- var r = a.slice(1);
- //print('ret: ' + r);
- return r.length == 0 ? [] : [r];
- }
- }
- declare("shrinkTest... must FAIL", [testArb],
- function(c){
- c.assert(false);
- });
- declare("expect Exception", [arbInt],
- expectException(function(c,i) {
- throw("test");
- }));