mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
|
import BigNumber from 'bignumber.js';
|
||
|
|
||
|
function almostEqualAssertion(this: any, expected: any, actual: any, message: string): any {
|
||
|
this.assert(
|
||
|
expected.plus(new BigNumber(1)).eq(actual) ||
|
||
|
expected.plus(new BigNumber(2)).eq(actual) ||
|
||
|
actual.plus(new BigNumber(1)).eq(expected) ||
|
||
|
actual.plus(new BigNumber(2)).eq(expected) ||
|
||
|
expected.eq(actual),
|
||
|
`${message} expected #{act} to be almost equal #{exp}`,
|
||
|
`${message} expected #{act} to be different from #{exp}`,
|
||
|
expected.toString(),
|
||
|
actual.toString()
|
||
|
);
|
||
|
}
|
||
|
|
||
|
export function almostEqual() {
|
||
|
return function (chai: any, utils: any) {
|
||
|
chai.Assertion.overwriteMethod('almostEqual', function (original: any) {
|
||
|
return function (this: any, value: any, message: string) {
|
||
|
if (utils.flag(this, 'bignumber')) {
|
||
|
var expected = new BigNumber(value);
|
||
|
var actual = new BigNumber(this._obj);
|
||
|
almostEqualAssertion.apply(this, [expected, actual, message]);
|
||
|
} else {
|
||
|
original.apply(this, arguments);
|
||
|
}
|
||
|
};
|
||
|
});
|
||
|
};
|
||
|
}
|