// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import "../../contracts/compliance/libraries/MonetaryFormulas.sol";

contract MonetaryFormulasTest is Test {
    function test_MoneySupplyCD() public pure {
        assertEq(MonetaryFormulas.moneySupplyCD(100, 50), 150);
    }

    function test_SimpleMultiplier() public pure {
        assertEq(MonetaryFormulas.simpleMultiplier(1000), 10e18);
    }

    function test_CoverageRatioBps() public pure {
        assertEq(MonetaryFormulas.coverageRatioBps(120, 100), 12000);
    }

    function test_GruFanout() public pure {
        assertEq(MonetaryFormulas.gruM00ToM1Fanout(), 25);
    }

    function test_CoverageWeightedVelocity() public pure {
        uint256 v = MonetaryFormulas.coverageWeightedVelocity(2e18, 12000);
        assertEq(v, 2e18);
    }
}
