From 193b3c21c855e6f807317889282f22b50e4b1099 Mon Sep 17 00:00:00 2001 From: MathisGD Date: Sat, 29 Jan 2022 20:18:47 +0100 Subject: [PATCH 1/2] add approx equal --- src/test.sol | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/test.sol b/src/test.sol index 96d3c15..e423698 100644 --- a/src/test.sol +++ b/src/test.sol @@ -161,6 +161,40 @@ contract DSTest { assertEqDecimal(a, b, decimals); } } + function assertApproxEq(uint a, uint b, uint margin_of_error) internal { + if (a > b) { + if (a - b > margin_of_error) { + emit log("Error a not equal to b"); + emit log_named_uint(" Expected", b); + emit log_named_uint(" Actual", a); + fail(); + } + } else { + if (b - a > margin_of_error) { + emit log("Error a not equal to b"); + emit log_named_uint(" Expected", b); + emit log_named_uint(" Actual", a); + fail(); + } + } + } + function assertApproxEq(uint a, uint b, uint margin_of_error, string memory err) internal { + if (a > b) { + if (a - b > margin_of_error) { + emit log_named_string("Error", err); + emit log_named_uint(" Expected", b); + emit log_named_uint(" Actual", a); + fail(); + } + } else { + if (b - a > margin_of_error) { + emit log_named_string("Error", err); + emit log_named_uint(" Expected", b); + emit log_named_uint(" Actual", a); + fail(); + } + } + } function assertGt(uint a, uint b) internal { if (a <= b) { From 9cc6b9887dbe671a7b73a43604bc3e8badd2ab42 Mon Sep 17 00:00:00 2001 From: MerlinEgalite Date: Thu, 10 Feb 2022 11:12:45 +0100 Subject: [PATCH 2/2] feat: add assert false --- src/test.sol | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/test.sol b/src/test.sol index e423698..f6d9375 100644 --- a/src/test.sol +++ b/src/test.sol @@ -69,6 +69,20 @@ contract DSTest { } } + function assertFalse(bool condition) internal { + if (condition) { + emit log("Error: Assertion Failed"); + fail(); + } + } + + function assertFalse(bool condition, string memory err) internal { + if (condition) { + emit log_named_string("Error", err); + assertFalse(condition); + } + } + function assertEq(address a, address b) internal { if (a != b) { emit log("Error: a == b not satisfied [address]");