Some checks failed
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 35s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 37s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m50s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 2m19s
Validation / validate-genesis (push) Successful in 51s
Validation / validate-terraform (push) Failing after 39s
Validation / validate-kubernetes (push) Failing after 10s
CI/CD Pipeline / Solidity Contracts (push) Failing after 12m56s
Validation / validate-smart-contracts (push) Failing after 12s
CI/CD Pipeline / Security Scanning (push) Failing after 15m52s
Validation / validate-security (push) Failing after 10m59s
Validation / validate-documentation (push) Failing after 17s
Validate Token List / validate (push) Failing after 30s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 26s
Verify Deployment / Verify Deployment (push) Failing after 56s
25 lines
771 B
Solidity
25 lines
771 B
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.20;
|
|
|
|
import {Test} from "forge-std/Test.sol";
|
|
import {PolicyMath} from "../../contracts/hybx-omnl/PolicyMath.sol";
|
|
|
|
contract PolicyMathTest is Test {
|
|
function testMinReservesCeil() public pure {
|
|
// ceil(1.2 * 10) = 12
|
|
assertEq(PolicyMath.minReservesForM0(10), 12);
|
|
// ceil(1.2 * 1) = 2 (1.2 rounded up)
|
|
assertEq(PolicyMath.minReservesForM0(1), 2);
|
|
}
|
|
|
|
function testMaxM1() public pure {
|
|
assertEq(PolicyMath.maxM1ForM0(100), 500);
|
|
}
|
|
|
|
function testCompliant() public pure {
|
|
assertTrue(PolicyMath.isCompliant(100, 400, 120));
|
|
assertFalse(PolicyMath.isCompliant(100, 600, 120));
|
|
assertFalse(PolicyMath.isCompliant(100, 400, 119));
|
|
}
|
|
}
|