// 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)); } }