@kingjs/assert-theory

Calls a theory with every combination of elements from an array set.

Stats

StarsIssuesVersionUpdatedCreatedSize
@kingjs/assert-theory
041.0.203 years ago3 years agoMinified + gzip package size for @kingjs/assert-theory in KB

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: The observations.
    • observation: The observation generated from data.
    • id: The number identifying observation.
  • 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 given id.

    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

Analytics

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.