@kingjs/assert-theory
v1.0.20
Published
Calls a theory with every combination of elements from an array set.
Downloads
10
Readme
@kingjs/assert-theory
Assert that a theory is true for a combination of observations.
Usage
Assert that addition and multiplication are commutative operations for a combination of 3 whole numbers and 3 fractions like this:
var testTheory = require('@kingjs/assert-theory');
var assert = require('@kingjs/assert');
var id = 0;
testTheory(function(o, i) {
assert(id++ == i);
var naturalFirst = eval(o.natural + o.op + o.fraction);
var fractionFirst = eval(o.fraction + o.op + o.natural);
assert(naturalFirst == fractionFirst);
}, {
op: [ '+', '*' ],
natural: [1, 2, 3],
fraction: [.1, .2, .3],
});
assert(id == 3 * 3 * 2); // = 18
API
declare function testTheory(
theory: (
this,
observation,
i
) => void,
observations: { [index: string]: any },
runId?: number
);
Parameters
theory
: A function that tests a set of observations.this
: Theobservations
.observation
: The observation generated fromdata
.id
: The number identifyingobservation
.
observations
: A descriptor whose every property contains either an array, primitive, or object from which a sequence of similar descriptors is generated where each property is replaced with an array element, the primitive, or a property value respectively.runId
: If present, runs only the observation with the givenid
.
Remarks
If an observation
fails then it can be easily debugged by supplying runId
. If runId
is specified an exception is still thrown after the test pass to ensure that the runId
is removed.
Install
With npm installed, run
$ npm install @kingjs/assert-theory
Acknowledgments
Like nUnit TheoryAttribute
.
License
MIT