//SPDX-License-Identifier: MIT pragma solidity >= 0.4.15 < 0.9.0; library AssertBytes32 { // Constant: BYTES32_NULL // The null bytes32: 0 bytes32 constant BYTES32_NULL = 0x0; bytes1 constant MINUS = bytes1('-'); /* Event: TestEvent Fired when an assertion is made. Params: result (bool) - Whether or not the assertion holds. message (string) - A message to display if the assertion does not hold. */ event TestEvent(bool indexed result, string message); // ************************************** bytes32 ************************************** /* Function: equal(bytes32) Assert that two 'bytes32' are equal. : A == B Params: A (bytes32) - The first 'bytes32'. B (bytes32) - The second 'bytes32'. message (string) - A message that is sent if the assertion fails. Returns: result (bool) - The result. */ function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) { result = (a == b); _report(result, message); } /* Function: notEqual(bytes32) Assert that two 'bytes32' are not equal. : A != B Params: A (bytes32) - The first 'bytes32'. B (bytes32) - The second 'bytes32'. message (string) - A message that is sent if the assertion fails. Returns: result (bool) - The result. */ function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) { result = (a != b); _report(result, message); } /* Function: isZero(bytes32) Assert that a 'bytes32' is zero. : bts == BYTES32_NULL Params: bts (bytes32) - The 'bytes32'. message (string) - A message that is sent if the assertion fails. Returns: result (bool) - The result. */ function isZero(bytes32 bts, string memory message) public returns (bool result) { result = (bts == BYTES32_NULL); _report(result, message); } /* Function: isNotZero(bytes32) Assert that a 'bytes32' is not zero. : bts != BYTES32_NULL Params: bts (bytes32) - The 'bytes32'. message (string) - A message that is sent if the assertion fails. Returns: result (bool) - The result. */ function isNotZero(bytes32 bts, string memory message) public returns (bool result) { result = (bts != BYTES32_NULL); _report(result, message); } /******************************** internal ********************************/ /* Function: _report Internal function for triggering . Params: result (bool) - The test result (true or false). message (string) - The message that is sent if the assertion fails. */ function _report(bool result, string memory message) internal { if(result) emit TestEvent(true, ""); else emit TestEvent(false, message); } }