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);
 | 
						|
        }
 | 
						|
      };
 | 
						|
    });
 | 
						|
  };
 | 
						|
}
 |