parent
34abe45ebc
commit
87c498fa91
@ -0,0 +1,9 @@ |
|||||||
|
// SPDX-License-Identifier: GPL-3.0 |
||||||
|
|
||||||
|
pragma solidity >=0.4.22 <0.9.0; |
||||||
|
|
||||||
|
library TestsAccounts { |
||||||
|
function getAccount(uint index) pure public returns (address) { |
||||||
|
return address(0); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,225 @@ |
|||||||
|
// SPDX-License-Identifier: GPL-3.0 |
||||||
|
|
||||||
|
pragma solidity >=0.4.22 <0.9.0; |
||||||
|
|
||||||
|
library Assert { |
||||||
|
|
||||||
|
event AssertionEvent( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventUint( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
uint256 returned, |
||||||
|
uint256 expected |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventInt( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
int256 returned, |
||||||
|
int256 expected |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventBool( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
bool returned, |
||||||
|
bool expected |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventAddress( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
address returned, |
||||||
|
address expected |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventBytes32( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
bytes32 returned, |
||||||
|
bytes32 expected |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventString( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
string returned, |
||||||
|
string expected |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventUintInt( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
uint256 returned, |
||||||
|
int256 expected |
||||||
|
); |
||||||
|
|
||||||
|
event AssertionEventIntUint( |
||||||
|
bool passed, |
||||||
|
string message, |
||||||
|
string methodName, |
||||||
|
int256 returned, |
||||||
|
uint256 expected |
||||||
|
); |
||||||
|
|
||||||
|
function ok(bool a, string memory message) public returns (bool result) { |
||||||
|
result = a; |
||||||
|
emit AssertionEvent(result, message, "ok"); |
||||||
|
} |
||||||
|
|
||||||
|
function equal(uint256 a, uint256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a == b); |
||||||
|
emit AssertionEventUint(result, message, "equal", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function equal(int256 a, int256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a == b); |
||||||
|
emit AssertionEventInt(result, message, "equal", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function equal(bool a, bool b, string memory message) public returns (bool result) { |
||||||
|
result = (a == b); |
||||||
|
emit AssertionEventBool(result, message, "equal", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
// TODO: only for certain versions of solc |
||||||
|
//function equal(fixed a, fixed b, string message) public returns (bool result) { |
||||||
|
// result = (a == b); |
||||||
|
// emit AssertionEvent(result, message); |
||||||
|
//} |
||||||
|
|
||||||
|
// TODO: only for certain versions of solc |
||||||
|
//function equal(ufixed a, ufixed b, string message) public returns (bool result) { |
||||||
|
// result = (a == b); |
||||||
|
// emit AssertionEvent(result, message); |
||||||
|
//} |
||||||
|
|
||||||
|
function equal(address a, address b, string memory message) public returns (bool result) { |
||||||
|
result = (a == b); |
||||||
|
emit AssertionEventAddress(result, message, "equal", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) { |
||||||
|
result = (a == b); |
||||||
|
emit AssertionEventBytes32(result, message, "equal", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function equal(string memory a, string memory b, string memory message) public returns (bool result) { |
||||||
|
result = (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b))); |
||||||
|
emit AssertionEventString(result, message, "equal", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function notEqual(uint256 a, uint256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a != b); |
||||||
|
emit AssertionEventUint(result, message, "notEqual", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function notEqual(int256 a, int256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a != b); |
||||||
|
emit AssertionEventInt(result, message, "notEqual", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function notEqual(bool a, bool b, string memory message) public returns (bool result) { |
||||||
|
result = (a != b); |
||||||
|
emit AssertionEventBool(result, message, "notEqual", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
// TODO: only for certain versions of solc |
||||||
|
//function notEqual(fixed a, fixed b, string message) public returns (bool result) { |
||||||
|
// result = (a != b); |
||||||
|
// emit AssertionEvent(result, message); |
||||||
|
//} |
||||||
|
|
||||||
|
// TODO: only for certain versions of solc |
||||||
|
//function notEqual(ufixed a, ufixed b, string message) public returns (bool result) { |
||||||
|
// result = (a != b); |
||||||
|
// emit AssertionEvent(result, message); |
||||||
|
//} |
||||||
|
|
||||||
|
function notEqual(address a, address b, string memory message) public returns (bool result) { |
||||||
|
result = (a != b); |
||||||
|
emit AssertionEventAddress(result, message, "notEqual", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) { |
||||||
|
result = (a != b); |
||||||
|
emit AssertionEventBytes32(result, message, "notEqual", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function notEqual(string memory a, string memory b, string memory message) public returns (bool result) { |
||||||
|
result = (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b))); |
||||||
|
emit AssertionEventString(result, message, "notEqual", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
/*----------------- Greater than --------------------*/ |
||||||
|
function greaterThan(uint256 a, uint256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a > b); |
||||||
|
emit AssertionEventUint(result, message, "greaterThan", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function greaterThan(int256 a, int256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a > b); |
||||||
|
emit AssertionEventInt(result, message, "greaterThan", a, b); |
||||||
|
} |
||||||
|
// TODO: safely compare between uint and int |
||||||
|
function greaterThan(uint256 a, int256 b, string memory message) public returns (bool result) { |
||||||
|
if(b < int(0)) { |
||||||
|
// int is negative uint "a" always greater |
||||||
|
result = true; |
||||||
|
} else { |
||||||
|
result = (a > uint(b)); |
||||||
|
} |
||||||
|
emit AssertionEventUintInt(result, message, "greaterThan", a, b); |
||||||
|
} |
||||||
|
function greaterThan(int256 a, uint256 b, string memory message) public returns (bool result) { |
||||||
|
if(a < int(0)) { |
||||||
|
// int is negative uint "b" always greater |
||||||
|
result = false; |
||||||
|
} else { |
||||||
|
result = (uint(a) > b); |
||||||
|
} |
||||||
|
emit AssertionEventIntUint(result, message, "greaterThan", a, b); |
||||||
|
} |
||||||
|
/*----------------- Lesser than --------------------*/ |
||||||
|
function lesserThan(uint256 a, uint256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a < b); |
||||||
|
emit AssertionEventUint(result, message, "lesserThan", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function lesserThan(int256 a, int256 b, string memory message) public returns (bool result) { |
||||||
|
result = (a < b); |
||||||
|
emit AssertionEventInt(result, message, "lesserThan", a, b); |
||||||
|
} |
||||||
|
// TODO: safely compare between uint and int |
||||||
|
function lesserThan(uint256 a, int256 b, string memory message) public returns (bool result) { |
||||||
|
if(b < int(0)) { |
||||||
|
// int is negative int "b" always lesser |
||||||
|
result = false; |
||||||
|
} else { |
||||||
|
result = (a < uint(b)); |
||||||
|
} |
||||||
|
emit AssertionEventUintInt(result, message, "lesserThan", a, b); |
||||||
|
} |
||||||
|
|
||||||
|
function lesserThan(int256 a, uint256 b, string memory message) public returns (bool result) { |
||||||
|
if(a < int(0)) { |
||||||
|
// int is negative int "a" always lesser |
||||||
|
result = true; |
||||||
|
} else { |
||||||
|
result = (uint(a) < b); |
||||||
|
} |
||||||
|
emit AssertionEventIntUint(result, message, "lesserThan", a, b); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue