chai-bignumber

Build Status

bignumber.jsライブラリを使用して任意精度の10進数を比較するためのチャイアサーション。

インストール

npm install --save-dev chai-bignumber

使用方法

var chai = require('chai');

//use default BigNumber
chai.use(require('chai-bignumber')());

//use custom BigNumber
chai.use(require('chai-bignumber')(BigNumber));

アサーション

bignumberプロパティがアサーションチェーンの一部として明示的に設定されている場合、以下のアサーションメソッドが提供され、既存の組み込みアサーションをオーバーライドします。

  • equal/equals/eq
  • above/gt/greaterThan
  • least/gte/greaterThanOrEqual
  • below/lt/lessThan
  • most/lte/lessThanOrEqual

上記メソッドには次のシグネチャがあります: (value, dp, rm)。ここで、dpは、比較の各側を丸める小数点以下の桁数を指定する省略可能な引数です(既定では値は丸められません)。rmは、bignumber.jsでサポートされている丸めモードを指定する省略可能な引数です(既定値はBigNumber.ROUND_HALF_UP)。

追加のアサーションプロパティのセットも提供されています

  • finite
  • integer
  • negative
  • zero

値は、numberBigNumber、または有効な数値に変換できるstringのインスタンスにすることができます。BDD形式 (expectまたはshould) のアサーションのみがサポートされます。

手法

var result = new BigNumber('100000000000000000').plus(1);
var expected = '100000000000000001';
result.should.be.bignumber.equal(expected);
expect(result).to.be.bignumber.at.most(expected);
'1000'.should.be.bignumber.lessThan(2000);

丸めの手法

var BigNumber = require('bignumber.js');
(100.343).should.be.bignumber.equal(100.341, 2);
(100.349).should.be.bignumber.equal(100.341, 2, BigNumber.ROUND_DOWN);

プロパティ

(100 / 0).should.not.be.finite;
expect(10).to.be.integer;
(-100).should.be.negative;
expect(1 - 1).to.be.zero;

ライセンス

MIT