Skip to content

Commit

Permalink
♻️ Rename the sign Function to signum to Avoid Any Ambiguity (#188)
Browse files Browse the repository at this point in the history
Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
  • Loading branch information
pcaversaccio authored Dec 5, 2023
1 parent 07556c2 commit f5a8d33
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 31 deletions.
28 changes: 14 additions & 14 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -553,36 +553,36 @@ ERC721Test:testTransferFrom() (gas: 569632)
ERC721Test:testTransferOwnershipNonOwner() (gas: 12612)
ERC721Test:testTransferOwnershipSuccess() (gas: 52972)
ERC721Test:testTransferOwnershipToZeroAddress() (gas: 15608)
MathTest:testCbrtRoundDown() (gas: 41550)
MathTest:testCbrtRoundUp() (gas: 42197)
MathTest:testCbrtRoundDown() (gas: 41159)
MathTest:testCbrtRoundUp() (gas: 41806)
MathTest:testCeilDiv() (gas: 12481)
MathTest:testFuzzCbrt(uint256,bool) (runs: 256, μ: 19455, ~: 19243)
MathTest:testFuzzCbrt(uint256,bool) (runs: 256, μ: 19438, ~: 19252)
MathTest:testFuzzCeilDiv(uint256,uint256) (runs: 256, μ: 8962, ~: 8979)
MathTest:testFuzzInt256Average(int256,int256) (runs: 256, μ: 5683, ~: 5683)
MathTest:testFuzzLog10(uint256,bool) (runs: 256, μ: 6968, ~: 6961)
MathTest:testFuzzLog2(uint256,bool) (runs: 256, μ: 6846, ~: 6825)
MathTest:testFuzzLog256(uint256,bool) (runs: 256, μ: 6847, ~: 6827)
MathTest:testFuzzMulDiv(uint256,uint256,uint256) (runs: 256, μ: 13034, ~: 12781)
MathTest:testFuzzLog10(uint256,bool) (runs: 256, μ: 6971, ~: 6961)
MathTest:testFuzzLog2(uint256,bool) (runs: 256, μ: 6826, ~: 6803)
MathTest:testFuzzLog256(uint256,bool) (runs: 256, μ: 6851, ~: 6827)
MathTest:testFuzzMulDiv(uint256,uint256,uint256) (runs: 256, μ: 13038, ~: 12781)
MathTest:testFuzzMulDivDomain(uint256,uint256,uint256) (runs: 256, μ: 10487, ~: 10570)
MathTest:testFuzzSign(int256) (runs: 256, μ: 5528, ~: 5516)
MathTest:testFuzzUint256Average(uint256,uint256) (runs: 256, μ: 5785, ~: 5785)
MathTest:testFuzzWadCbrt(uint256) (runs: 256, μ: 18979, ~: 18650)
MathTest:testFuzzWadExp(int256) (runs: 256, μ: 14494, ~: 14597)
MathTest:testFuzzWadLn(int256) (runs: 256, μ: 16008, ~: 15758)
MathTest:testFuzzSignum(int256) (runs: 256, μ: 5578, ~: 5570)
MathTest:testFuzzUint256Average(uint256,uint256) (runs: 256, μ: 5763, ~: 5763)
MathTest:testFuzzWadCbrt(uint256) (runs: 256, μ: 19002, ~: 18690)
MathTest:testFuzzWadExp(int256) (runs: 256, μ: 14488, ~: 14597)
MathTest:testFuzzWadLn(int256) (runs: 256, μ: 16004, ~: 15767)
MathTest:testInt256Average() (gas: 12010)
MathTest:testLog10RoundDown() (gas: 17685)
MathTest:testLog10RoundUp() (gas: 18866)
MathTest:testLog256RoundDown() (gas: 14561)
MathTest:testLog256RoundUp() (gas: 14694)
MathTest:testLog2RoundDown() (gas: 17351)
MathTest:testLog2RoundUp() (gas: 17536)
MathTest:testLog2RoundUp() (gas: 17514)
MathTest:testMulDivDivisionByZero() (gas: 11226)
MathTest:testMulDivOverflow() (gas: 11600)
MathTest:testMulDivRoundDownLargeValues() (gas: 12763)
MathTest:testMulDivRoundDownSmallValues() (gas: 7724)
MathTest:testMulDivRoundUpLargeValues() (gas: 13096)
MathTest:testMulDivRoundUpSmallValues() (gas: 7947)
MathTest:testSign() (gas: 11385)
MathTest:testSignum() (gas: 11419)
MathTest:testUint256Average() (gas: 8298)
MathTest:testWadCbrt() (gas: 39342)
MathTest:testWadExp() (gas: 23595)
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

- **Utility Functions**
- [`Math`](https://github.com/pcaversaccio/snekmate/blob/v0.0.5/src/utils/Math.vy): Refactor the `is_negative` function into a proper `sign` function that returns the indication of the sign of a 32-byte signed integer. ([#187](https://github.com/pcaversaccio/snekmate/pull/187))
- [`Math`](https://github.com/pcaversaccio/snekmate/blob/v0.0.5/src/utils/Math.vy): Rename the recently added `sign` function to `signum` to avoid any ambiguity with cryptographic signing utility functions. ([#188](https://github.com/pcaversaccio/snekmate/pull/188))

### 👀 Full Changelog

Expand Down
4 changes: 2 additions & 2 deletions src/utils/Math.vy
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
- `uint256_average` (`external` `pure` function),
- `int256_average` (`external` `pure` function),
- `ceil_div` (`external` `pure` function),
- `sign` (`external` `pure` function),
- `signum` (`external` `pure` function),
- `mul_div` (`external` `pure` function),
- `log_2` (`external` `pure` function),
- `log_10` (`external` `pure` function),
Expand Down Expand Up @@ -92,7 +92,7 @@ def ceil_div(x: uint256, y: uint256) -> uint256:

@external
@pure
def sign(x: int256) -> int256:
def signum(x: int256) -> int256:
"""
@dev Returns the indication of the sign of a 32-byte signed integer.
@notice The function returns `-1` if `x < 0`, `0` if `x == 0`, and `1`
Expand Down
28 changes: 14 additions & 14 deletions test/utils/Math.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -154,16 +154,16 @@ contract MathTest is Test {
math.ceil_div(1, 0);
}

function testSign() public {
assertEq(math.sign(0), 0);
assertEq(math.sign(-1), -1);
assertEq(math.sign(-1 * -1), 1);
assertEq(math.sign(-1 * 100), -1);
assertEq(math.sign(0 * -1), 0);
assertEq(math.sign(int256(type(int16).min) * 2), -1);
assertEq(math.sign(int256(type(int16).max) * 2), 1);
assertEq(math.sign(type(int256).min + type(int16).max), -1);
assertEq(math.sign(type(int256).max - type(int16).max), 1);
function testSignum() public {
assertEq(math.signum(0), 0);
assertEq(math.signum(-1), -1);
assertEq(math.signum(-1 * -1), 1);
assertEq(math.signum(-1 * 100), -1);
assertEq(math.signum(0 * -1), 0);
assertEq(math.signum(int256(type(int16).min) * 2), -1);
assertEq(math.signum(int256(type(int16).max) * 2), 1);
assertEq(math.signum(type(int256).min + type(int16).max), -1);
assertEq(math.signum(type(int256).max - type(int16).max), 1);
}

function testMulDivDivisionByZero() public {
Expand Down Expand Up @@ -484,13 +484,13 @@ contract MathTest is Test {
}
}

function testFuzzSign(int256 x) public {
function testFuzzSignum(int256 x) public {
if (x > 0) {
assertEq(math.sign(x), 1);
assertEq(math.signum(x), 1);
} else if (x < 0) {
assertEq(math.sign(x), -1);
assertEq(math.signum(x), -1);
} else {
assertEq(math.sign(x), 0);
assertEq(math.signum(x), 0);
}
}

Expand Down
2 changes: 1 addition & 1 deletion test/utils/interfaces/IMath.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interface IMath {

function ceil_div(uint256 x, uint256 y) external pure returns (uint256);

function sign(int256 x) external pure returns (int256);
function signum(int256 x) external pure returns (int256);

function mul_div(
uint256 x,
Expand Down

0 comments on commit f5a8d33

Please sign in to comment.