From 0fbf2922702e000c2a85fcaeffe0672190f5c30f Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Wed, 27 Aug 2025 18:50:09 +0400 Subject: [PATCH 1/2] snapshot --- .gas-snapshot | 420 +++++++++--------- test/src/lib/LibDecimalFloat.pow.t.sol | 2 +- .../LibDecimalFloatImplementation.div.t.sol | 2 +- 3 files changed, 214 insertions(+), 210 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 7f6ecb84..736df51a 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,187 +1,191 @@ -DecimalFloatAbsTest:testAbsDeployed(bytes32) (runs: 5104, μ: 2743074, ~: 2743016) -DecimalFloatAddTest:testAddDeployed(bytes32,bytes32) (runs: 5104, μ: 2747129, ~: 2747212) -DecimalFloatCeilTest:testCeilDeployed(bytes32) (runs: 5104, μ: 2743105, ~: 2742729) -DecimalFloatConstantsTest:testEDeployed() (gas: 2742259) -DecimalFloatConstantsTest:testMaxNegativeValueDeployed() (gas: 2742291) -DecimalFloatConstantsTest:testMaxPositiveValueDeployed() (gas: 2742249) -DecimalFloatConstantsTest:testMinNegativeValueDeployed() (gas: 2742224) -DecimalFloatConstantsTest:testMinPositiveValueDeployed() (gas: 2742203) -DecimalFloatDivTest:testDivDeployed(bytes32,bytes32) (runs: 5104, μ: 2749019, ~: 2749102) -DecimalFloatEqTest:testEqDeployed(bytes32,bytes32) (runs: 5104, μ: 2743459, ~: 2743384) -DecimalFloatFloorTest:testFloorDeployed(bytes32) (runs: 5104, μ: 2742912, ~: 2742727) -DecimalFloatFormatTest:testFormatDeployed(bytes32) (runs: 5104, μ: 2747070, ~: 2746892) -DecimalFloatFracTest:testFracDeployed(bytes32) (runs: 5104, μ: 2743303, ~: 2743287) -DecimalFloatFromFixedDecimalLosslessTest:testFromFixedDecimalLosslessDeployed(uint256,uint8) (runs: 5104, μ: 2743854, ~: 2743791) -DecimalFloatFromFixedDecimalLossyTest:testFromFixedDecimalLossyDeployed(uint256,uint8) (runs: 5104, μ: 2744344, ~: 2744261) -DecimalFloatGtTest:testGtDeployed(bytes32,bytes32) (runs: 5104, μ: 2743401, ~: 2743326) -DecimalFloatGteTest:testGteDeployed(bytes32,bytes32) (runs: 5104, μ: 2743387, ~: 2743312) -DecimalFloatInvTest:testInvDeployed(bytes32) (runs: 5104, μ: 2747886, ~: 2747923) -DecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5104, μ: 2742569, ~: 2742569) -DecimalFloatLtTest:testLtDeployed(bytes32,bytes32) (runs: 5104, μ: 2743378, ~: 2743303) -DecimalFloatLteTest:testLteDeployed(bytes32,bytes32) (runs: 5104, μ: 2743431, ~: 2743356) -DecimalFloatMaxTest:testMaxDeployed(bytes32,bytes32) (runs: 5104, μ: 2743439, ~: 2743378) -DecimalFloatMinTest:testMinDeployed(bytes32,bytes32) (runs: 5104, μ: 2743460, ~: 2743398) -DecimalFloatMinusTest:testMinusDeployed(bytes32) (runs: 5104, μ: 2743174, ~: 2743174) -DecimalFloatMulTest:testMulDeployed(bytes32,bytes32) (runs: 5104, μ: 2747034, ~: 2747843) -DecimalFloatPackLosslessTest:testPackDeployed(int224,int32) (runs: 5104, μ: 158769, ~: 158769) -DecimalFloatParseTest:testParseDeployed(string) (runs: 5104, μ: 2745806, ~: 2745675) -DecimalFloatPowTest:testPowDeployed(bytes32,bytes32) (runs: 5104, μ: 2755926, ~: 2753551) -DecimalFloatSqrtTest:testSqrtDeployed(bytes32) (runs: 5104, μ: 2755575, ~: 2754253) -DecimalFloatSubTest:testSubDeployed(bytes32,bytes32) (runs: 5104, μ: 2747478, ~: 2747512) -DecimalFloatToFixedDecimalLosslessTest:testToFixedDecimalLosslessDeployed(bytes32,uint8) (runs: 5104, μ: 2744480, ~: 2744374) -DecimalFloatToFixedDecimalLossyTest:testToFixedDecimalLossyDeployed(bytes32,uint8) (runs: 5104, μ: 2744618, ~: 2744903) -LibDecimalFloatAbsTest:testAbsMinValue(int32) (runs: 5104, μ: 5121, ~: 5121) -LibDecimalFloatAbsTest:testAbsNegative(int256,int32) (runs: 5104, μ: 10475, ~: 10702) -LibDecimalFloatAbsTest:testAbsNonNegative(int256,int32) (runs: 5104, μ: 9641, ~: 9392) +DecimalFloatAbsTest:testAbsDeployed(bytes32) (runs: 5121, μ: 2750497, ~: 2750439) +DecimalFloatAddTest:testAddDeployed(bytes32,bytes32) (runs: 5121, μ: 2754553, ~: 2754635) +DecimalFloatCeilTest:testCeilDeployed(bytes32) (runs: 5121, μ: 2750528, ~: 2750152) +DecimalFloatConstantsTest:testEDeployed() (gas: 2749682) +DecimalFloatConstantsTest:testMaxNegativeValueDeployed() (gas: 2749714) +DecimalFloatConstantsTest:testMaxPositiveValueDeployed() (gas: 2749672) +DecimalFloatConstantsTest:testMinNegativeValueDeployed() (gas: 2749647) +DecimalFloatConstantsTest:testMinPositiveValueDeployed() (gas: 2749626) +DecimalFloatDivTest:testDivDeployed(bytes32,bytes32) (runs: 5121, μ: 2756500, ~: 2756579) +DecimalFloatEqTest:testEqDeployed(bytes32,bytes32) (runs: 5121, μ: 2750882, ~: 2750807) +DecimalFloatFloorTest:testFloorDeployed(bytes32) (runs: 5121, μ: 2750335, ~: 2750150) +DecimalFloatFormatTest:testFormatDeployed(bytes32) (runs: 5121, μ: 2754485, ~: 2754315) +DecimalFloatFracTest:testFracDeployed(bytes32) (runs: 5121, μ: 2750726, ~: 2750710) +DecimalFloatFromFixedDecimalLosslessTest:testFromFixedDecimalLosslessDeployed(uint256,uint8) (runs: 5121, μ: 2751278, ~: 2751214) +DecimalFloatFromFixedDecimalLossyTest:testFromFixedDecimalLossyDeployed(uint256,uint8) (runs: 5121, μ: 2751767, ~: 2751684) +DecimalFloatGtTest:testGtDeployed(bytes32,bytes32) (runs: 5121, μ: 2750823, ~: 2750749) +DecimalFloatGteTest:testGteDeployed(bytes32,bytes32) (runs: 5121, μ: 2750809, ~: 2750735) +DecimalFloatInvTest:testInvDeployed(bytes32) (runs: 5121, μ: 2755356, ~: 2755394) +DecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5121, μ: 2749992, ~: 2749992) +DecimalFloatLtTest:testLtDeployed(bytes32,bytes32) (runs: 5121, μ: 2750800, ~: 2750726) +DecimalFloatLteTest:testLteDeployed(bytes32,bytes32) (runs: 5121, μ: 2750853, ~: 2750779) +DecimalFloatMaxTest:testMaxDeployed(bytes32,bytes32) (runs: 5121, μ: 2750862, ~: 2750801) +DecimalFloatMinTest:testMinDeployed(bytes32,bytes32) (runs: 5121, μ: 2750883, ~: 2750821) +DecimalFloatMinusTest:testMinusDeployed(bytes32) (runs: 5121, μ: 2750597, ~: 2750597) +DecimalFloatMulTest:testMulDeployed(bytes32,bytes32) (runs: 5121, μ: 2754458, ~: 2755266) +DecimalFloatPackLosslessTest:testPackDeployed(int224,int32) (runs: 5121, μ: 158769, ~: 158769) +DecimalFloatParseTest:testParseDeployed(string) (runs: 5121, μ: 2753229, ~: 2753099) +DecimalFloatPowTest:testPowDeployed(bytes32,bytes32) (runs: 5121, μ: 2763383, ~: 2760974) +DecimalFloatSqrtTest:testSqrtDeployed(bytes32) (runs: 5121, μ: 2763060, ~: 2761676) +DecimalFloatSubTest:testSubDeployed(bytes32,bytes32) (runs: 5121, μ: 2754905, ~: 2754935) +DecimalFloatToFixedDecimalLosslessTest:testToFixedDecimalLosslessDeployed(bytes32,uint8) (runs: 5121, μ: 2751902, ~: 2751797) +DecimalFloatToFixedDecimalLossyTest:testToFixedDecimalLossyDeployed(bytes32,uint8) (runs: 5121, μ: 2752046, ~: 2752326) +LibDecimalFloatAbsTest:testAbsMinValue(int32) (runs: 5121, μ: 5121, ~: 5121) +LibDecimalFloatAbsTest:testAbsNegative(int256,int32) (runs: 5121, μ: 10475, ~: 10702) +LibDecimalFloatAbsTest:testAbsNonNegative(int256,int32) (runs: 5121, μ: 9640, ~: 9392) LibDecimalFloatCeilTest:testCeilExamples() (gas: 30794) -LibDecimalFloatCeilTest:testCeilInRange(int224,int256) (runs: 5104, μ: 11040, ~: 10713) -LibDecimalFloatCeilTest:testCeilLessThanMin(int224,int256) (runs: 5104, μ: 10059, ~: 9820) -LibDecimalFloatCeilTest:testCeilNonNegative(int224,int256) (runs: 5104, μ: 8961, ~: 9212) -LibDecimalFloatCeilTest:testCeilNotReverts(bytes32) (runs: 5104, μ: 598, ~: 411) -LibDecimalFloatCeilTest:testCeilZero(int32) (runs: 5104, μ: 5438, ~: 5438) +LibDecimalFloatCeilTest:testCeilInRange(int224,int256) (runs: 5121, μ: 11040, ~: 10713) +LibDecimalFloatCeilTest:testCeilLessThanMin(int224,int256) (runs: 5121, μ: 10059, ~: 9820) +LibDecimalFloatCeilTest:testCeilNonNegative(int224,int256) (runs: 5121, μ: 8961, ~: 9212) +LibDecimalFloatCeilTest:testCeilNotReverts(bytes32) (runs: 5121, μ: 598, ~: 411) +LibDecimalFloatCeilTest:testCeilZero(int32) (runs: 5121, μ: 5438, ~: 5438) LibDecimalFloatConstantsTest:testFloatE() (gas: 3357) LibDecimalFloatConstantsTest:testFloatHalf() (gas: 3336) LibDecimalFloatConstantsTest:testFloatMaxNegativeValue() (gas: 3379) -LibDecimalFloatConstantsTest:testFloatMaxNegativeValueIsMax(bytes32) (runs: 5104, μ: 4488, ~: 4594) +LibDecimalFloatConstantsTest:testFloatMaxNegativeValueIsMax(bytes32) (runs: 5121, μ: 4488, ~: 4594) LibDecimalFloatConstantsTest:testFloatMaxPositiveValue() (gas: 3335) -LibDecimalFloatConstantsTest:testFloatMaxPositiveValueIsMax(bytes32) (runs: 5104, μ: 3545, ~: 3586) +LibDecimalFloatConstantsTest:testFloatMaxPositiveValueIsMax(bytes32) (runs: 5121, μ: 3545, ~: 3586) LibDecimalFloatConstantsTest:testFloatMinNegativeValue() (gas: 3335) -LibDecimalFloatConstantsTest:testFloatMinNegativeValueIsMin(bytes32) (runs: 5104, μ: 3496, ~: 3457) +LibDecimalFloatConstantsTest:testFloatMinNegativeValueIsMin(bytes32) (runs: 5121, μ: 3496, ~: 3457) LibDecimalFloatConstantsTest:testFloatMinPositiveValue() (gas: 3357) -LibDecimalFloatConstantsTest:testFloatMinPositiveValueIsMin(bytes32) (runs: 5104, μ: 4939, ~: 4870) +LibDecimalFloatConstantsTest:testFloatMinPositiveValueIsMin(bytes32) (runs: 5121, μ: 4938, ~: 4870) LibDecimalFloatConstantsTest:testFloatOne() (gas: 3358) LibDecimalFloatConstantsTest:testFloatTwo() (gas: 3380) LibDecimalFloatConstantsTest:testFloatZero() (gas: 3337) -LibDecimalFloatDecimalAddTest:testAddPacked(bytes32,bytes32) (runs: 5104, μ: 9762, ~: 9832) -LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessFail(uint256,uint8) (runs: 5102, μ: 9615, ~: 9663) -LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessMem(uint256,uint8) (runs: 5104, μ: 8130, ~: 8048) -LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessPass(uint256,uint8) (runs: 5104, μ: 7452, ~: 7424) +LibDecimalFloatDecimalAddTest:testAddPacked(bytes32,bytes32) (runs: 5121, μ: 9762, ~: 9832) +LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessFail(uint256,uint8) (runs: 5119, μ: 9615, ~: 9663) +LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessMem(uint256,uint8) (runs: 5121, μ: 8130, ~: 8048) +LibDecimalFloatDecimalLosslessTest:testFromFixedDecimalLosslessPass(uint256,uint8) (runs: 5121, μ: 7452, ~: 7424) LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessFail() (gas: 4894) -LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPacked(bytes32,uint8) (runs: 5104, μ: 6717, ~: 6161) -LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPass(int256,int256,uint8) (runs: 5104, μ: 15805, ~: 15768) -LibDecimalFloatDecimalTest:testFixedDecimalRoundTripLossless(uint256,uint8) (runs: 5104, μ: 9274, ~: 9053) +LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPacked(bytes32,uint8) (runs: 5121, μ: 6717, ~: 6161) +LibDecimalFloatDecimalLosslessTest:testToFixedDecimalLosslessPass(int256,int256,uint8) (runs: 5121, μ: 15804, ~: 15768) +LibDecimalFloatDecimalTest:testFixedDecimalRoundTripLossless(uint256,uint8) (runs: 5121, μ: 9274, ~: 9053) LibDecimalFloatDecimalTest:testFromFixedDecimalLossyComplicated() (gas: 685958) LibDecimalFloatDecimalTest:testFromFixedDecimalLossyNormalizedMax() (gas: 673506) LibDecimalFloatDecimalTest:testFromFixedDecimalLossyNormalizedMaxPlusOne() (gas: 704362) LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOne() (gas: 685936) LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOneMillion() (gas: 685937) LibDecimalFloatDecimalTest:testFromFixedDecimalLossyOverflow() (gas: 715261) -LibDecimalFloatDecimalTest:testFromFixedDecimalLossyPacked(uint256,uint8) (runs: 5104, μ: 9460, ~: 9374) -LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateOne(uint256,uint8) (runs: 5104, μ: 5978, ~: 5937) -LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateZero(uint256,uint8) (runs: 5104, μ: 7306, ~: 5860) -LibDecimalFloatDecimalTest:testToFixedDecimalLosslessScaleUp(int256,int256,uint8) (runs: 5099, μ: 16005, ~: 15996) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyExponentOverflow(int256,int256,uint8) (runs: 5104, μ: 14964, ~: 14729) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyIdentity(int256,uint8) (runs: 5104, μ: 10152, ~: 9811) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyNegative(int256,int256,uint8) (runs: 5104, μ: 10825, ~: 11076) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyPacked(bytes32,uint8) (runs: 5104, μ: 6803, ~: 6905) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyScaleUpOverflow(int256,int256,uint8) (runs: 5101, μ: 15348, ~: 15612) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyTruncate(int256,int256,uint8) (runs: 5104, μ: 14493, ~: 14212) +LibDecimalFloatDecimalTest:testFromFixedDecimalLossyPacked(uint256,uint8) (runs: 5121, μ: 9460, ~: 9374) +LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateOne(uint256,uint8) (runs: 5121, μ: 5978, ~: 5937) +LibDecimalFloatDecimalTest:testFromFixedDecimalLossyTruncateZero(uint256,uint8) (runs: 5121, μ: 7308, ~: 5860) +LibDecimalFloatDecimalTest:testToFixedDecimalLosslessScaleUp(int256,int256,uint8) (runs: 5110, μ: 16005, ~: 15996) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyExponentOverflow(int256,int256,uint8) (runs: 5121, μ: 14963, ~: 14729) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyIdentity(int256,uint8) (runs: 5121, μ: 10152, ~: 9811) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyNegative(int256,int256,uint8) (runs: 5121, μ: 10825, ~: 11076) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyPacked(bytes32,uint8) (runs: 5121, μ: 6803, ~: 6905) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyScaleUpOverflow(int256,int256,uint8) (runs: 5107, μ: 15348, ~: 15612) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyTruncate(int256,int256,uint8) (runs: 5121, μ: 14493, ~: 14212) LibDecimalFloatDecimalTest:testToFixedDecimalLossyTruncateLossless() (gas: 14523) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyUnderflow(int256,int256,uint8) (runs: 5104, μ: 13739, ~: 13602) -LibDecimalFloatDecimalTest:testToFixedDecimalLossyZero(int256,uint8) (runs: 5104, μ: 4598, ~: 4598) -LibDecimalFloatDivTest:testDivPacked(bytes32,bytes32) (runs: 5104, μ: 11524, ~: 11603) -LibDecimalFloatEqTest:testEqPacked(bytes32,bytes32) (runs: 5104, μ: 5524, ~: 5450) -LibDecimalFloatEqTest:testEqXNotYExponents(bytes32,bytes32) (runs: 5104, μ: 4341, ~: 4234) -LibDecimalFloatEqTest:testEqZero(int32) (runs: 5104, μ: 5133, ~: 5133) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyUnderflow(int256,int256,uint8) (runs: 5121, μ: 13739, ~: 13602) +LibDecimalFloatDecimalTest:testToFixedDecimalLossyZero(int256,uint8) (runs: 5121, μ: 4598, ~: 4598) +LibDecimalFloatDivTest:testDivByNegativeOneFloat(int224,int32) (runs: 5121, μ: 327464, ~: 326998) +LibDecimalFloatDivTest:testDivByOneFloat(int224,int32) (runs: 5121, μ: 303042, ~: 302160) +LibDecimalFloatDivTest:testDivPacked(bytes32,bytes32) (runs: 5121, μ: 11575, ~: 11666) +LibDecimalFloatEqTest:testEqPacked(bytes32,bytes32) (runs: 5121, μ: 5524, ~: 5450) +LibDecimalFloatEqTest:testEqXNotYExponents(bytes32,bytes32) (runs: 5121, μ: 4341, ~: 4234) +LibDecimalFloatEqTest:testEqZero(int32) (runs: 5121, μ: 5133, ~: 5133) LibDecimalFloatFloorTest:testFloorExamples() (gas: 38387) LibDecimalFloatFloorTest:testFloorGas0() (gas: 960) LibDecimalFloatFloorTest:testFloorGasTiny() (gas: 881) LibDecimalFloatFloorTest:testFloorGasZero() (gas: 553) -LibDecimalFloatFloorTest:testFloorInRange(int224,int256) (runs: 5104, μ: 11032, ~: 11044) -LibDecimalFloatFloorTest:testFloorLessThanMin(int224,int256) (runs: 5104, μ: 10284, ~: 10293) -LibDecimalFloatFloorTest:testFloorNonNegative(int224,int256) (runs: 5104, μ: 9547, ~: 9806) -LibDecimalFloatFloorTest:testFloorNotReverts(bytes32) (runs: 5104, μ: 461, ~: 365) +LibDecimalFloatFloorTest:testFloorInRange(int224,int256) (runs: 5121, μ: 11032, ~: 11044) +LibDecimalFloatFloorTest:testFloorLessThanMin(int224,int256) (runs: 5121, μ: 10284, ~: 10293) +LibDecimalFloatFloorTest:testFloorNonNegative(int224,int256) (runs: 5121, μ: 9546, ~: 9806) +LibDecimalFloatFloorTest:testFloorNotReverts(bytes32) (runs: 5121, μ: 461, ~: 365) LibDecimalFloatFracTest:testFracExamples() (gas: 39135) LibDecimalFloatFracTest:testFracGas0() (gas: 960) LibDecimalFloatFracTest:testFracGasTiny() (gas: 836) LibDecimalFloatFracTest:testFracGasZero() (gas: 820) -LibDecimalFloatFracTest:testFracInRange(int224,int256) (runs: 5104, μ: 10847, ~: 10859) -LibDecimalFloatFracTest:testFracLessThanMin(int224,int256) (runs: 5104, μ: 10273, ~: 10280) -LibDecimalFloatFracTest:testFracNonNegative(int224,int256) (runs: 5104, μ: 9806, ~: 10066) -LibDecimalFloatFracTest:testFracNotReverts(bytes32) (runs: 5104, μ: 630, ~: 621) +LibDecimalFloatFracTest:testFracInRange(int224,int256) (runs: 5121, μ: 10846, ~: 10859) +LibDecimalFloatFracTest:testFracLessThanMin(int224,int256) (runs: 5121, μ: 10273, ~: 10280) +LibDecimalFloatFracTest:testFracNonNegative(int224,int256) (runs: 5121, μ: 9805, ~: 10066) +LibDecimalFloatFracTest:testFracNotReverts(bytes32) (runs: 5121, μ: 630, ~: 621) LibDecimalFloatGtTest:testGtGasAZero() (gas: 973) LibDecimalFloatGtTest:testGtGasBZero() (gas: 973) LibDecimalFloatGtTest:testGtGasBothZero() (gas: 751) LibDecimalFloatGtTest:testGtGasDifferentSigns() (gas: 974) LibDecimalFloatGtTest:testGtGasExponentDiffOverflow() (gas: 1143) -LibDecimalFloatGtTest:testGtOneEAny(bytes32) (runs: 5104, μ: 3494, ~: 3494) -LibDecimalFloatGtTest:testGtReference(int224,int32,int224,int32) (runs: 5104, μ: 8066, ~: 6272) -LibDecimalFloatGtTest:testGtX(int224,int32) (runs: 5104, μ: 3882, ~: 3882) -LibDecimalFloatGtTest:testGtXEAnyVsXEAny(int256,int32,int32) (runs: 5104, μ: 10593, ~: 10332) -LibDecimalFloatGtTest:testGtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5104, μ: 11144, ~: 11349) -LibDecimalFloatGtTest:testGtXNotY(bytes32,bytes32) (runs: 5104, μ: 4341, ~: 4232) -LibDecimalFloatGtTest:testGtXPositiveYNegative(int256,int32,int256,int32) (runs: 5104, μ: 13764, ~: 13595) -LibDecimalFloatGtTest:testGtXPositiveYZero(int256,int32,int32) (runs: 5104, μ: 10274, ~: 10026) -LibDecimalFloatGtTest:testGtZero(int32,int32) (runs: 5104, μ: 4793, ~: 4793) +LibDecimalFloatGtTest:testGtOneEAny(bytes32) (runs: 5121, μ: 3494, ~: 3494) +LibDecimalFloatGtTest:testGtReference(int224,int32,int224,int32) (runs: 5121, μ: 8064, ~: 6272) +LibDecimalFloatGtTest:testGtX(int224,int32) (runs: 5121, μ: 3882, ~: 3882) +LibDecimalFloatGtTest:testGtXEAnyVsXEAny(int256,int32,int32) (runs: 5121, μ: 10592, ~: 10332) +LibDecimalFloatGtTest:testGtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5121, μ: 11144, ~: 11349) +LibDecimalFloatGtTest:testGtXNotY(bytes32,bytes32) (runs: 5121, μ: 4340, ~: 4232) +LibDecimalFloatGtTest:testGtXPositiveYNegative(int256,int32,int256,int32) (runs: 5121, μ: 13763, ~: 13595) +LibDecimalFloatGtTest:testGtXPositiveYZero(int256,int32,int32) (runs: 5121, μ: 10273, ~: 10026) +LibDecimalFloatGtTest:testGtZero(int32,int32) (runs: 5121, μ: 4793, ~: 4793) LibDecimalFloatGteTest:testGteGasAZero() (gas: 976) LibDecimalFloatGteTest:testGteGasBZero() (gas: 1020) LibDecimalFloatGteTest:testGteGasBothZero() (gas: 753) LibDecimalFloatGteTest:testGteGasDifferentSigns() (gas: 996) LibDecimalFloatGteTest:testGteGasExponentDiffOverflow() (gas: 1102) -LibDecimalFloatGteTest:testGteOneEAny(bytes32) (runs: 5104, μ: 3494, ~: 3494) -LibDecimalFloatGteTest:testGteReference(int224,int32,int224,int32) (runs: 5104, μ: 8116, ~: 6344) -LibDecimalFloatGteTest:testGteX(int224,int32) (runs: 5104, μ: 3925, ~: 3925) -LibDecimalFloatGteTest:testGteXEAnyVsXEAny(int256,int32,int32) (runs: 5104, μ: 10622, ~: 10364) -LibDecimalFloatGteTest:testGteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5104, μ: 11156, ~: 11361) -LibDecimalFloatGteTest:testGteXNotLtY(bytes32,bytes32) (runs: 5104, μ: 3947, ~: 3873) -LibDecimalFloatGteTest:testGteXPositiveYNegative(int256,int32,int256,int32) (runs: 5104, μ: 13794, ~: 13623) -LibDecimalFloatGteTest:testGteXPositiveYZero(int256,int32,int32) (runs: 5104, μ: 9551, ~: 9170) -LibDecimalFloatGteTest:testGteZero(int32,int32) (runs: 5104, μ: 4838, ~: 4838) +LibDecimalFloatGteTest:testGteOneEAny(bytes32) (runs: 5121, μ: 3494, ~: 3494) +LibDecimalFloatGteTest:testGteReference(int224,int32,int224,int32) (runs: 5121, μ: 8114, ~: 6318) +LibDecimalFloatGteTest:testGteX(int224,int32) (runs: 5121, μ: 3925, ~: 3925) +LibDecimalFloatGteTest:testGteXEAnyVsXEAny(int256,int32,int32) (runs: 5121, μ: 10622, ~: 10364) +LibDecimalFloatGteTest:testGteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5121, μ: 11157, ~: 11361) +LibDecimalFloatGteTest:testGteXNotLtY(bytes32,bytes32) (runs: 5121, μ: 3947, ~: 3873) +LibDecimalFloatGteTest:testGteXPositiveYNegative(int256,int32,int256,int32) (runs: 5121, μ: 13794, ~: 13623) +LibDecimalFloatGteTest:testGteXPositiveYZero(int256,int32,int32) (runs: 5121, μ: 9550, ~: 9170) +LibDecimalFloatGteTest:testGteZero(int32,int32) (runs: 5121, μ: 4838, ~: 4838) LibDecimalFloatImplementationAddTest:testAdd123456789987654321() (gas: 4811) LibDecimalFloatImplementationAddTest:testAdd123456789e9987654321() (gas: 4861) -LibDecimalFloatImplementationAddTest:testAddNeverRevert(int256,int256,int256,int256) (runs: 5104, μ: 13101, ~: 13035) +LibDecimalFloatImplementationAddTest:testAddNeverRevert(int256,int256,int256,int256) (runs: 5121, μ: 13102, ~: 13035) LibDecimalFloatImplementationAddTest:testAddOneOneNotMaximized() (gas: 6148) LibDecimalFloatImplementationAddTest:testAddOneOnePreMaximized() (gas: 4300) LibDecimalFloatImplementationAddTest:testAddOneZero() (gas: 3666) -LibDecimalFloatImplementationAddTest:testAddSameExponent(int256,int256) (runs: 5104, μ: 6864, ~: 6935) +LibDecimalFloatImplementationAddTest:testAddSameExponent(int256,int256) (runs: 5116, μ: 6864, ~: 6935) LibDecimalFloatImplementationAddTest:testAddZero() (gas: 3665) -LibDecimalFloatImplementationAddTest:testAddZeroAnyExponent(int128) (runs: 5104, μ: 9293, ~: 9271) +LibDecimalFloatImplementationAddTest:testAddZeroAnyExponent(int128) (runs: 5121, μ: 9293, ~: 9271) LibDecimalFloatImplementationAddTest:testAddZeroOne() (gas: 3664) -LibDecimalFloatImplementationAddTest:testAddZeroToAnyNonZero(int256,int256,int256) (runs: 5102, μ: 13974, ~: 13948) +LibDecimalFloatImplementationAddTest:testAddZeroToAnyNonZero(int256,int256,int256) (runs: 5119, μ: 13974, ~: 13948) LibDecimalFloatImplementationAddTest:testAddingSmallToLargeReturnsLargeExamples() (gas: 92086) -LibDecimalFloatImplementationAddTest:testAddingSmallToLargeReturnsLargeFuzz(int256,int256,int256,int256) (runs: 5098, μ: 16980, ~: 16963) +LibDecimalFloatImplementationAddTest:testAddingSmallToLargeReturnsLargeFuzz(int256,int256,int256,int256) (runs: 5108, μ: 16980, ~: 16963) LibDecimalFloatImplementationAddTest:testGasAddOne() (gas: 1342) LibDecimalFloatImplementationAddTest:testGasAddZero() (gas: 360) -LibDecimalFloatImplementationAddTest:testOverflowChecks(int256,int256) (runs: 5104, μ: 3857, ~: 3843) +LibDecimalFloatImplementationAddTest:testOverflowChecks(int256,int256) (runs: 5121, μ: 3857, ~: 3843) LibDecimalFloatImplementationCharacteristicMantissaTest:testCharacteristicMantissaExamples() (gas: 30611) -LibDecimalFloatImplementationDivTest:testDiv1Over3() (gas: 7083) -LibDecimalFloatImplementationDivTest:testDiv1Over3Gas0() (gas: 2231) -LibDecimalFloatImplementationDivTest:testDiv1Over3Gas10() (gas: 19202) -LibDecimalFloatImplementationDivTest:testDiv1Over9Over1Over3() (gas: 14639) -LibDecimalFloatImplementationDivTest:testDiv1e18Over3() (gas: 6742) -LibDecimalFloatImplementationDivTest:testDivNegative1Over3() (gas: 7176) -LibDecimalFloatImplementationDivTest:testDivOOMs5and2() (gas: 6363) -LibDecimalFloatImplementationDivTest:testDivOOMsOverTen() (gas: 7053) -LibDecimalFloatImplementationDivTest:testDivTenOverOOMs() (gas: 6966) -LibDecimalFloatImplementationDivTest:testUnnormalizedThreesDiv0(int256,int256) (runs: 108, μ: 27290587, ~: 27290219) +LibDecimalFloatImplementationDivTest:testDiv1Over3() (gas: 7062) +LibDecimalFloatImplementationDivTest:testDiv1Over3Gas0() (gas: 2277) +LibDecimalFloatImplementationDivTest:testDiv1Over3Gas10() (gas: 19442) +LibDecimalFloatImplementationDivTest:testDiv1Over9Over1Over3() (gas: 14735) +LibDecimalFloatImplementationDivTest:testDiv1e18Over3() (gas: 6766) +LibDecimalFloatImplementationDivTest:testDivBy1(int256,int256) (runs: 5121, μ: 335327, ~: 339387) +LibDecimalFloatImplementationDivTest:testDivByNegativeOneFloat(int256,int256) (runs: 5121, μ: 337833, ~: 342152) +LibDecimalFloatImplementationDivTest:testDivNegative1Over3() (gas: 7157) +LibDecimalFloatImplementationDivTest:testDivOOMs5and2() (gas: 6387) +LibDecimalFloatImplementationDivTest:testDivOOMsOverTen() (gas: 7077) +LibDecimalFloatImplementationDivTest:testDivTenOverOOMs() (gas: 6990) +LibDecimalFloatImplementationDivTest:testUnnormalizedThreesDiv0(int256,int256) (runs: 125, μ: 27472329, ~: 27491668) LibDecimalFloatImplementationEqTest:testEqGasAZero() (gas: 430) LibDecimalFloatImplementationEqTest:testEqGasBZero() (gas: 473) LibDecimalFloatImplementationEqTest:testEqGasBothZero() (gas: 450) LibDecimalFloatImplementationEqTest:testEqGasDifferentSigns() (gas: 482) LibDecimalFloatImplementationEqTest:testEqGasExponentDiffOverflow() (gas: 533) -LibDecimalFloatImplementationEqTest:testEqNotReverts(int256,int256,int256,int256) (runs: 5104, μ: 654, ~: 679) -LibDecimalFloatImplementationEqTest:testEqOneEAny(int256,int256) (runs: 5104, μ: 3416, ~: 3416) -LibDecimalFloatImplementationEqTest:testEqReference(int256,int256,int256,int256) (runs: 5104, μ: 9900, ~: 11437) -LibDecimalFloatImplementationEqTest:testEqX(int256) (runs: 5104, μ: 3392, ~: 3392) -LibDecimalFloatImplementationEqTest:testEqXEAnyVsXEAny(int256,int256,int256) (runs: 5103, μ: 4718, ~: 4714) -LibDecimalFloatImplementationEqTest:testEqXEqY(int256,int256,int256,int256) (runs: 5104, μ: 732, ~: 753) -LibDecimalFloatImplementationEqTest:testEqXNotY(int256,int256,int256,int256) (runs: 5104, μ: 3928, ~: 3953) -LibDecimalFloatImplementationEqTest:testEqZero(int256,int256) (runs: 5104, μ: 3440, ~: 3440) -LibDecimalFloatImplementationInvTest:testInv0() (gas: 5503) -LibDecimalFloatImplementationInvTest:testInvGas0() (gas: 2057) -LibDecimalFloatImplementationInvTest:testInvReference(int256,int256) (runs: 5103, μ: 14535, ~: 14484) -LibDecimalFloatImplementationInvTest:testInvSlowGas0() (gas: 2241) +LibDecimalFloatImplementationEqTest:testEqNotReverts(int256,int256,int256,int256) (runs: 5121, μ: 654, ~: 679) +LibDecimalFloatImplementationEqTest:testEqOneEAny(int256,int256) (runs: 5121, μ: 3416, ~: 3416) +LibDecimalFloatImplementationEqTest:testEqReference(int256,int256,int256,int256) (runs: 5121, μ: 9906, ~: 11456) +LibDecimalFloatImplementationEqTest:testEqX(int256) (runs: 5121, μ: 3392, ~: 3392) +LibDecimalFloatImplementationEqTest:testEqXEAnyVsXEAny(int256,int256,int256) (runs: 5120, μ: 4718, ~: 4714) +LibDecimalFloatImplementationEqTest:testEqXEqY(int256,int256,int256,int256) (runs: 5121, μ: 732, ~: 753) +LibDecimalFloatImplementationEqTest:testEqXNotY(int256,int256,int256,int256) (runs: 5121, μ: 3928, ~: 3953) +LibDecimalFloatImplementationEqTest:testEqZero(int256,int256) (runs: 5121, μ: 3440, ~: 3440) +LibDecimalFloatImplementationInvTest:testInv0() (gas: 5527) +LibDecimalFloatImplementationInvTest:testInvGas0() (gas: 2081) +LibDecimalFloatImplementationInvTest:testInvReference(int256,int256) (runs: 5120, μ: 14577, ~: 14532) +LibDecimalFloatImplementationInvTest:testInvSlowGas0() (gas: 2265) LibDecimalFloatImplementationLog10Test:testExactLogs() (gas: 1263178) LibDecimalFloatImplementationLog10Test:testExactLookupsLog10() (gas: 1280250) -LibDecimalFloatImplementationLog10Test:testInterpolatedLookups() (gas: 1260776) -LibDecimalFloatImplementationLog10Test:testSub1() (gas: 1257663) -LibDecimalFloatImplementationMaximizeTest:testMaximizedEverything(int256,int256) (runs: 5104, μ: 9478, ~: 9455) +LibDecimalFloatImplementationLog10Test:testInterpolatedLookups() (gas: 1260800) +LibDecimalFloatImplementationLog10Test:testSub1() (gas: 1257687) +LibDecimalFloatImplementationMaximizeTest:testMaximizedEverything(int256,int256) (runs: 5121, μ: 9478, ~: 9455) LibDecimalFloatImplementationMaximizeTest:testMaximizedExamples() (gas: 165819) -LibDecimalFloatImplementationMaximizeTest:testMaximizedIdempotent(int256,int256) (runs: 5104, μ: 9903, ~: 9868) -LibDecimalFloatImplementationMaximizeTest:testMaximizedReference(int256,int256) (runs: 5104, μ: 13375, ~: 14263) -LibDecimalFloatImplementationMinusTest:testMinusIsSubZero(int256,int256,int256) (runs: 5104, μ: 12949, ~: 12929) +LibDecimalFloatImplementationMaximizeTest:testMaximizedIdempotent(int256,int256) (runs: 5121, μ: 9903, ~: 9868) +LibDecimalFloatImplementationMaximizeTest:testMaximizedReference(int256,int256) (runs: 5121, μ: 13379, ~: 14272) +LibDecimalFloatImplementationMinusTest:testMinusIsSubZero(int256,int256,int256) (runs: 5121, μ: 12949, ~: 12929) LibDecimalFloatImplementationMulTest:testMul123456789987654321() (gas: 5559) -LibDecimalFloatImplementationMulTest:testMul123456789987654321WithExponents(int128,int128) (runs: 5104, μ: 15077, ~: 15160) +LibDecimalFloatImplementationMulTest:testMul123456789987654321WithExponents(int128,int128) (runs: 5121, μ: 15077, ~: 15160) LibDecimalFloatImplementationMulTest:testMul1_3979_0_5() (gas: 6193) LibDecimalFloatImplementationMulTest:testMul1e181e19() (gas: 5603) LibDecimalFloatImplementationMulTest:testMulGasOne() (gas: 1470) @@ -189,104 +193,104 @@ LibDecimalFloatImplementationMulTest:testMulGasZero() (gas: 325) LibDecimalFloatImplementationMulTest:testMulMaxSignedCoefficient() (gas: 6674) LibDecimalFloatImplementationMulTest:testMulNegativeOne() (gas: 5660) LibDecimalFloatImplementationMulTest:testMulNegativeOneOne() (gas: 5659) -LibDecimalFloatImplementationMulTest:testMulNotRevertAnyExpectation(int256,int256,int256,int256) (runs: 5104, μ: 15244, ~: 14593) +LibDecimalFloatImplementationMulTest:testMulNotRevertAnyExpectation(int256,int256,int256,int256) (runs: 5121, μ: 15243, ~: 14593) LibDecimalFloatImplementationMulTest:testMulOneNegativeOne() (gas: 5635) LibDecimalFloatImplementationMulTest:testMulOneOne() (gas: 5582) LibDecimalFloatImplementationMulTest:testMulOneZero() (gas: 4481) LibDecimalFloatImplementationMulTest:testMulZero0Exponent() (gas: 4503) -LibDecimalFloatImplementationMulTest:testMulZeroAnyExponent(int64,int64) (runs: 5104, μ: 4704, ~: 4704) +LibDecimalFloatImplementationMulTest:testMulZeroAnyExponent(int64,int64) (runs: 5121, μ: 4704, ~: 4704) LibDecimalFloatImplementationMulTest:testMulZeroOne() (gas: 4438) LibDecimalFloatImplementationNormalizeTest:testExamples() (gas: 160899) -LibDecimalFloatImplementationNormalizeTest:testIdempotent(int256,int256) (runs: 5104, μ: 9875, ~: 9808) -LibDecimalFloatImplementationNormalizeTest:testIsNormalizedReference(int256,int256) (runs: 5104, μ: 3533, ~: 3539) -LibDecimalFloatImplementationNormalizeTest:testNormalized(int256,int256) (runs: 5104, μ: 9415, ~: 9348) -LibDecimalFloatImplementationPow10Test:testExactLookupsPow10() (gas: 1283140) +LibDecimalFloatImplementationNormalizeTest:testIdempotent(int256,int256) (runs: 5121, μ: 9875, ~: 9808) +LibDecimalFloatImplementationNormalizeTest:testIsNormalizedReference(int256,int256) (runs: 5121, μ: 3533, ~: 3539) +LibDecimalFloatImplementationNormalizeTest:testNormalized(int256,int256) (runs: 5121, μ: 9415, ~: 9348) +LibDecimalFloatImplementationPow10Test:testExactLookupsPow10() (gas: 1283164) LibDecimalFloatImplementationPow10Test:testExactPows() (gas: 1260107) -LibDecimalFloatImplementationPow10Test:testInterpolatedLookupsPower() (gas: 1285366) -LibDecimalFloatImplementationPow10Test:testNoRevert(int224,int32) (runs: 5102, μ: 1259276, ~: 1259675) -LibDecimalFloatImplementationSubTest:testSubIsAdd(int256,int256,int256,int256) (runs: 5104, μ: 15802, ~: 15834) -LibDecimalFloatImplementationSubTest:testSubMinSignedValue(int256,int256,int256) (runs: 5104, μ: 14990, ~: 14932) +LibDecimalFloatImplementationPow10Test:testInterpolatedLookupsPower() (gas: 1285438) +LibDecimalFloatImplementationPow10Test:testNoRevert(int224,int32) (runs: 5113, μ: 1259316, ~: 1259083) +LibDecimalFloatImplementationSubTest:testSubIsAdd(int256,int256,int256,int256) (runs: 5121, μ: 15803, ~: 15835) +LibDecimalFloatImplementationSubTest:testSubMinSignedValue(int256,int256,int256) (runs: 5121, μ: 14991, ~: 14932) LibDecimalFloatImplementationSubTest:testSubOneFromMax() (gas: 6517) -LibDecimalFloatImplementationSubTest:testSubSelf(int224,int32) (runs: 5104, μ: 5509, ~: 5620) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedAB(uint256,uint256,uint256,int256) (runs: 5104, μ: 9961, ~: 9888) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedABOverflow(uint256,uint256,uint256,int256) (runs: 5104, μ: 11207, ~: 11200) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBA(uint256,uint256,uint256,int256) (runs: 5104, μ: 11205, ~: 11198) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBAOverflow(uint256,uint256,int256) (runs: 5104, μ: 9070, ~: 9018) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegative(uint256,uint256,uint256,int256) (runs: 5104, μ: 9968, ~: 9892) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegativeOverflow(uint256,uint256,uint256,int256) (runs: 5104, μ: 11200, ~: 11190) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositive(uint256,uint256,uint256,int256) (runs: 5104, μ: 9102, ~: 9033) -LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositiveOverflow(uint256,uint256,uint256,int256) (runs: 5104, μ: 11089, ~: 11086) +LibDecimalFloatImplementationSubTest:testSubSelf(int224,int32) (runs: 5121, μ: 5509, ~: 5620) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedAB(uint256,uint256,uint256,int256) (runs: 5121, μ: 9961, ~: 9888) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedABOverflow(uint256,uint256,uint256,int256) (runs: 5121, μ: 11208, ~: 11200) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBA(uint256,uint256,uint256,int256) (runs: 5121, μ: 11206, ~: 11198) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyMixedBAOverflow(uint256,uint256,int256) (runs: 5121, μ: 9071, ~: 9018) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegative(uint256,uint256,uint256,int256) (runs: 5121, μ: 9969, ~: 9892) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyNegativeOverflow(uint256,uint256,uint256,int256) (runs: 5121, μ: 11201, ~: 11190) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositive(uint256,uint256,uint256,int256) (runs: 5121, μ: 9103, ~: 9033) +LibDecimalFloatImplementationUnabsUnsignedMulOrDivLossyTest:testUnabsUnsignedMulOrDivLossyPositiveOverflow(uint256,uint256,uint256,int256) (runs: 5121, μ: 11090, ~: 11086) LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentExamples() (gas: 13429) -LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerExponentOverflowRescaleRevert(int256,int256,int256) (runs: 5099, μ: 14426, ~: 14395) -LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerExponentVeryLargeDiffRevert(int256,int256,int256) (runs: 5104, μ: 13307, ~: 13527) -LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerTargetExponentNoRevert(int256,int256,int256) (runs: 5104, μ: 11669, ~: 11718) -LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSameExponentNoop(int256,int256) (runs: 5104, μ: 3676, ~: 3676) -LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSmallerExponentNoRevert(int256,int256,int256) (runs: 5101, μ: 13874, ~: 13665) -LibDecimalFloatInvTest:testInvMem(bytes32) (runs: 5104, μ: 10557, ~: 10616) -LibDecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5104, μ: 3899, ~: 3899) -LibDecimalFloatIsZeroTest:testIsZeroEqZero(bytes32) (runs: 5104, μ: 3527, ~: 3527) -LibDecimalFloatIsZeroTest:testIsZeroExamples(int32) (runs: 5104, μ: 4477, ~: 4477) -LibDecimalFloatIsZeroTest:testNotIsZero(int224,int32) (runs: 5103, μ: 3896, ~: 3896) -LibDecimalFloatLog10Test:testLog10Packed(bytes32) (runs: 5104, μ: 1651924, ~: 1271911) +LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerExponentOverflowRescaleRevert(int256,int256,int256) (runs: 5101, μ: 14426, ~: 14395) +LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerExponentVeryLargeDiffRevert(int256,int256,int256) (runs: 5121, μ: 13306, ~: 13527) +LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentLargerTargetExponentNoRevert(int256,int256,int256) (runs: 5121, μ: 11669, ~: 11718) +LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSameExponentNoop(int256,int256) (runs: 5121, μ: 3676, ~: 3676) +LibDecimalFloatImplementationWithTargetExponentTest:testWithTargetExponentSmallerExponentNoRevert(int256,int256,int256) (runs: 5116, μ: 13874, ~: 13665) +LibDecimalFloatInvTest:testInvMem(bytes32) (runs: 5121, μ: 10606, ~: 10628) +LibDecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5121, μ: 3899, ~: 3899) +LibDecimalFloatIsZeroTest:testIsZeroEqZero(bytes32) (runs: 5121, μ: 3527, ~: 3527) +LibDecimalFloatIsZeroTest:testIsZeroExamples(int32) (runs: 5121, μ: 4477, ~: 4477) +LibDecimalFloatIsZeroTest:testNotIsZero(int224,int32) (runs: 5119, μ: 3896, ~: 3896) +LibDecimalFloatLog10Test:testLog10Packed(bytes32) (runs: 5121, μ: 1650881, ~: 1271913) LibDecimalFloatLtTest:testLtExamples() (gas: 3994) LibDecimalFloatLtTest:testLtGasAZero() (gas: 946) LibDecimalFloatLtTest:testLtGasBZero() (gas: 1012) LibDecimalFloatLtTest:testLtGasBothZero() (gas: 969) LibDecimalFloatLtTest:testLtGasDifferentSigns() (gas: 969) LibDecimalFloatLtTest:testLtGasExponentDiffOverflow() (gas: 1053) -LibDecimalFloatLtTest:testLtNegativeVsPositive(int256,int32,int256,int32) (runs: 5104, μ: 13750, ~: 13593) -LibDecimalFloatLtTest:testLtNegativeVsZero(int256,int32,int32) (runs: 5104, μ: 10790, ~: 11008) -LibDecimalFloatLtTest:testLtOneEAny(int224,int32) (runs: 5104, μ: 3905, ~: 3905) -LibDecimalFloatLtTest:testLtReference(bytes32,bytes32) (runs: 5104, μ: 4697, ~: 4998) -LibDecimalFloatLtTest:testLtVsEqualVsGt(bytes32,bytes32) (runs: 5104, μ: 4323, ~: 4210) -LibDecimalFloatLtTest:testLtX(int224) (runs: 5104, μ: 3798, ~: 3798) -LibDecimalFloatLtTest:testLtXEAnyVsXEAny(int256,int32,int32) (runs: 5104, μ: 10558, ~: 10297) -LibDecimalFloatLtTest:testLtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5104, μ: 11154, ~: 11359) -LibDecimalFloatLtTest:testLtZero(int32,int32) (runs: 5104, μ: 4171, ~: 4171) +LibDecimalFloatLtTest:testLtNegativeVsPositive(int256,int32,int256,int32) (runs: 5121, μ: 13750, ~: 13593) +LibDecimalFloatLtTest:testLtNegativeVsZero(int256,int32,int32) (runs: 5121, μ: 10790, ~: 11008) +LibDecimalFloatLtTest:testLtOneEAny(int224,int32) (runs: 5121, μ: 3905, ~: 3905) +LibDecimalFloatLtTest:testLtReference(bytes32,bytes32) (runs: 5121, μ: 4697, ~: 4998) +LibDecimalFloatLtTest:testLtVsEqualVsGt(bytes32,bytes32) (runs: 5121, μ: 4323, ~: 4210) +LibDecimalFloatLtTest:testLtX(int224) (runs: 5121, μ: 3798, ~: 3798) +LibDecimalFloatLtTest:testLtXEAnyVsXEAny(int256,int32,int32) (runs: 5121, μ: 10557, ~: 10297) +LibDecimalFloatLtTest:testLtXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5121, μ: 11154, ~: 11359) +LibDecimalFloatLtTest:testLtZero(int32,int32) (runs: 5121, μ: 4171, ~: 4171) LibDecimalFloatLteTest:testLteGasAZero() (gas: 997) LibDecimalFloatLteTest:testLteGasBZero() (gas: 999) LibDecimalFloatLteTest:testLteGasBothZero() (gas: 753) LibDecimalFloatLteTest:testLteGasDifferentSigns() (gas: 976) LibDecimalFloatLteTest:testLteGasExponentDiffOverflow() (gas: 1082) -LibDecimalFloatLteTest:testLteOneEAny(bytes32) (runs: 5104, μ: 3493, ~: 3493) -LibDecimalFloatLteTest:testLteReference(int224,int32,int224,int32) (runs: 5104, μ: 8112, ~: 6328) -LibDecimalFloatLteTest:testLteX(int224,int32) (runs: 5104, μ: 3904, ~: 3904) -LibDecimalFloatLteTest:testLteXEAnyVsXEAny(int256,int32,int32) (runs: 5104, μ: 10582, ~: 10321) -LibDecimalFloatLteTest:testLteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5104, μ: 11177, ~: 11383) -LibDecimalFloatLteTest:testLteXNotLtY(bytes32,bytes32) (runs: 5104, μ: 3882, ~: 3807) -LibDecimalFloatLteTest:testLteXPositiveYNegative(int256,int32,int256,int32) (runs: 5104, μ: 13102, ~: 12931) -LibDecimalFloatLteTest:testLteXPositiveYZero(int256,int32,int32) (runs: 5104, μ: 9575, ~: 9191) -LibDecimalFloatLteTest:testLteZero(int32,int32) (runs: 5104, μ: 4816, ~: 4816) -LibDecimalFloatMaxTest:testMaxX(bytes32) (runs: 5104, μ: 4246, ~: 4246) -LibDecimalFloatMaxTest:testMaxXY(bytes32,bytes32) (runs: 5104, μ: 4689, ~: 4613) -LibDecimalFloatMaxTest:testMaxXYEqual(bytes32) (runs: 5104, μ: 5272, ~: 5272) -LibDecimalFloatMaxTest:testMaxXYGreater(bytes32,bytes32) (runs: 5096, μ: 6129, ~: 6016) -LibDecimalFloatMaxTest:testMaxXYLess(bytes32,bytes32) (runs: 5104, μ: 6141, ~: 6027) -LibDecimalFloatMinTest:testMinX(bytes32) (runs: 5104, μ: 4268, ~: 4268) -LibDecimalFloatMinTest:testMinXY(bytes32,bytes32) (runs: 5104, μ: 4689, ~: 4613) -LibDecimalFloatMinTest:testMinXYEqual(bytes32) (runs: 5104, μ: 5292, ~: 5292) -LibDecimalFloatMinTest:testMinXYGreater(bytes32,bytes32) (runs: 5096, μ: 6074, ~: 5961) -LibDecimalFloatMinTest:testMinXYLess(bytes32,bytes32) (runs: 5104, μ: 6087, ~: 5972) -LibDecimalFloatMinusTest:testMinusPacked(bytes32) (runs: 5104, μ: 5550, ~: 5550) -LibDecimalFloatMixedTest:testDiv1Over3Mixed() (gas: 11039) -LibDecimalFloatMulTest:testMulPacked(bytes32,bytes32) (runs: 5104, μ: 9630, ~: 10369) -LibDecimalFloatPackTest:testPartsRoundTrip(int224,int32) (runs: 5104, μ: 5352, ~: 5352) -LibDecimalFloatPow10Test:testPow10Packed(bytes32) (runs: 5104, μ: 1645674, ~: 1256407) -LibDecimalFloatPowTest:testNegativePowError(bytes32,bytes32) (runs: 5104, μ: 1248482, ~: 1248447) -LibDecimalFloatPowTest:testPowAZero(int32,bytes32) (runs: 5099, μ: 1246471, ~: 1246471) -LibDecimalFloatPowTest:testPowAZeroNegative(bytes32) (runs: 5101, μ: 1246870, ~: 1246870) -LibDecimalFloatPowTest:testPowBZero(bytes32,int32) (runs: 5104, μ: 1246058, ~: 1246058) -LibDecimalFloatPowTest:testPows() (gas: 1315564) -LibDecimalFloatPowTest:testRoundTripFuzzPow(bytes32,bytes32) (runs: 5104, μ: 1262566, ~: 1260242) -LibDecimalFloatPowTest:testRoundTripSimple() (gas: 1535140) -LibDecimalFloatSqrtTest:testRoundTripFuzzSqrt(int224,int32) (runs: 5104, μ: 1295391, ~: 1294787) -LibDecimalFloatSqrtTest:testSqrt() (gas: 1293719) -LibDecimalFloatSqrtTest:testSqrtNegative(bytes32) (runs: 5104, μ: 1248098, ~: 1248059) -LibDecimalFloatSqrtTest:testSqrtRoundTrip() (gas: 1417956) -LibDecimalFloatSubTest:testSubPacked(bytes32,bytes32) (runs: 5104, μ: 9974, ~: 9995) +LibDecimalFloatLteTest:testLteOneEAny(bytes32) (runs: 5121, μ: 3493, ~: 3493) +LibDecimalFloatLteTest:testLteReference(int224,int32,int224,int32) (runs: 5121, μ: 8109, ~: 6315) +LibDecimalFloatLteTest:testLteX(int224,int32) (runs: 5121, μ: 3904, ~: 3904) +LibDecimalFloatLteTest:testLteXEAnyVsXEAny(int256,int32,int32) (runs: 5121, μ: 10582, ~: 10321) +LibDecimalFloatLteTest:testLteXEAnyVsXEAnyNegative(int256,int32,int32) (runs: 5121, μ: 11177, ~: 11383) +LibDecimalFloatLteTest:testLteXNotLtY(bytes32,bytes32) (runs: 5121, μ: 3882, ~: 3807) +LibDecimalFloatLteTest:testLteXPositiveYNegative(int256,int32,int256,int32) (runs: 5121, μ: 13102, ~: 12931) +LibDecimalFloatLteTest:testLteXPositiveYZero(int256,int32,int32) (runs: 5121, μ: 9575, ~: 9191) +LibDecimalFloatLteTest:testLteZero(int32,int32) (runs: 5121, μ: 4816, ~: 4816) +LibDecimalFloatMaxTest:testMaxX(bytes32) (runs: 5121, μ: 4246, ~: 4246) +LibDecimalFloatMaxTest:testMaxXY(bytes32,bytes32) (runs: 5121, μ: 4689, ~: 4613) +LibDecimalFloatMaxTest:testMaxXYEqual(bytes32) (runs: 5121, μ: 5272, ~: 5272) +LibDecimalFloatMaxTest:testMaxXYGreater(bytes32,bytes32) (runs: 5107, μ: 6129, ~: 6016) +LibDecimalFloatMaxTest:testMaxXYLess(bytes32,bytes32) (runs: 5110, μ: 6141, ~: 6027) +LibDecimalFloatMinTest:testMinX(bytes32) (runs: 5121, μ: 4268, ~: 4268) +LibDecimalFloatMinTest:testMinXY(bytes32,bytes32) (runs: 5121, μ: 4689, ~: 4613) +LibDecimalFloatMinTest:testMinXYEqual(bytes32) (runs: 5121, μ: 5292, ~: 5292) +LibDecimalFloatMinTest:testMinXYGreater(bytes32,bytes32) (runs: 5104, μ: 6074, ~: 5961) +LibDecimalFloatMinTest:testMinXYLess(bytes32,bytes32) (runs: 5113, μ: 6087, ~: 5972) +LibDecimalFloatMinusTest:testMinusPacked(bytes32) (runs: 5121, μ: 5550, ~: 5550) +LibDecimalFloatMixedTest:testDiv1Over3Mixed() (gas: 11063) +LibDecimalFloatMulTest:testMulPacked(bytes32,bytes32) (runs: 5121, μ: 9629, ~: 10369) +LibDecimalFloatPackTest:testPartsRoundTrip(int224,int32) (runs: 5121, μ: 5352, ~: 5352) +LibDecimalFloatPow10Test:testPow10Packed(bytes32) (runs: 5121, μ: 1645584, ~: 1256407) +LibDecimalFloatPowTest:testNegativePowError(bytes32,bytes32) (runs: 5121, μ: 1248482, ~: 1248447) +LibDecimalFloatPowTest:testPowAZero(int32,bytes32) (runs: 5108, μ: 1246471, ~: 1246471) +LibDecimalFloatPowTest:testPowAZeroNegative(bytes32) (runs: 5105, μ: 1246870, ~: 1246870) +LibDecimalFloatPowTest:testPowBZero(bytes32,int32) (runs: 5121, μ: 1246058, ~: 1246058) +LibDecimalFloatPowTest:testPows() (gas: 1315684) +LibDecimalFloatPowTest:testRoundTripFuzzPow(bytes32,bytes32) (runs: 5121, μ: 1262578, ~: 1260298) +LibDecimalFloatPowTest:testRoundTripSimple() (gas: 1536028) +LibDecimalFloatSqrtTest:testRoundTripFuzzSqrt(int224,int32) (runs: 5121, μ: 1295588, ~: 1294907) +LibDecimalFloatSqrtTest:testSqrt() (gas: 1293743) +LibDecimalFloatSqrtTest:testSqrtNegative(bytes32) (runs: 5120, μ: 1248097, ~: 1248059) +LibDecimalFloatSqrtTest:testSqrtRoundTrip() (gas: 1418244) +LibDecimalFloatSubTest:testSubPacked(bytes32,bytes32) (runs: 5121, μ: 9974, ~: 9995) LibFormatDecimalFloatTest:testFormatDecimalExamples() (gas: 133439) -LibFormatDecimalFloatTest:testFormatDecimalRoundTrip(uint256) (runs: 5104, μ: 25221, ~: 20105) -LibFormatDecimalFloatTest:testFormatDecimalRoundTripNegative(int256) (runs: 5104, μ: 19680, ~: 21006) +LibFormatDecimalFloatTest:testFormatDecimalRoundTrip(uint256) (runs: 5121, μ: 25218, ~: 20105) +LibFormatDecimalFloatTest:testFormatDecimalRoundTripNegative(int256) (runs: 5121, μ: 19676, ~: 21006) LibLogTableBytesTest:testToBytesAntiLogTableDec() (gas: 159794) LibLogTableBytesTest:testToBytesAntiLogTableDecSmall() (gas: 162322) LibLogTableBytesTest:testToBytesLogTableDec() (gas: 143165) @@ -308,7 +312,7 @@ LibParseDecimalFloatTest:testParseLiteralDecimalFloatEDot() (gas: 4190) LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert5() (gas: 4176) LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert6() (gas: 4188) LibParseDecimalFloatTest:testParseLiteralDecimalFloatExponents() (gas: 402635) -LibParseDecimalFloatTest:testParseLiteralDecimalFloatFuzz(uint256,uint8,bool) (runs: 5104, μ: 45895, ~: 37386) +LibParseDecimalFloatTest:testParseLiteralDecimalFloatFuzz(uint256,uint8,bool) (runs: 5121, μ: 45957, ~: 37394) LibParseDecimalFloatTest:testParseLiteralDecimalFloatLeadingZeros() (gas: 59779) LibParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeE() (gas: 6100) LibParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeFrac() (gas: 5137) @@ -316,5 +320,5 @@ LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert0() (gas: 27 LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert1() (gas: 24801) LibParseDecimalFloatTest:testParseLiteralDecimalFloatSpecific() (gas: 22959) LibParseDecimalFloatTest:testParseLiteralDecimalFloatUnrelated() (gas: 50856) -LibParseDecimalFloatTest:testParsePacked(string) (runs: 5104, μ: 9786, ~: 9668) -TestDecimalFloatUnpackTest:testUnpackDeployed(bytes32) (runs: 5104, μ: 158422, ~: 158422) \ No newline at end of file +LibParseDecimalFloatTest:testParsePacked(string) (runs: 5121, μ: 9786, ~: 9668) +TestDecimalFloatUnpackTest:testUnpackDeployed(bytes32) (runs: 5121, μ: 158422, ~: 158422) \ No newline at end of file diff --git a/test/src/lib/LibDecimalFloat.pow.t.sol b/test/src/lib/LibDecimalFloat.pow.t.sol index 3f4426cf..208a2bd8 100644 --- a/test/src/lib/LibDecimalFloat.pow.t.sol +++ b/test/src/lib/LibDecimalFloat.pow.t.sol @@ -13,7 +13,7 @@ contract LibDecimalFloatPowTest is LogTest { using LibDecimalFloat for Float; function diffLimit() internal pure returns (Float) { - return LibDecimalFloat.packLossless(94, -3); + return LibDecimalFloat.packLossless(96, -3); } function checkPow( diff --git a/test/src/lib/implementation/LibDecimalFloatImplementation.div.t.sol b/test/src/lib/implementation/LibDecimalFloatImplementation.div.t.sol index eebc800a..855bc041 100644 --- a/test/src/lib/implementation/LibDecimalFloatImplementation.div.t.sol +++ b/test/src/lib/implementation/LibDecimalFloatImplementation.div.t.sol @@ -117,7 +117,7 @@ contract LibDecimalFloatImplementationDivTest is Test { } function testDivByNegativeOneFloat(int256 signedCoefficient, int256 exponent) external pure { - exponent = bound(exponent, type(int256).min + 76, type(int256).max); + exponent = bound(exponent, type(int256).min + 76, type(int256).max - 1); (int256 expectedCoefficient, int256 expectedExponent) = LibDecimalFloatImplementation.maximize(signedCoefficient, exponent); (expectedCoefficient, expectedExponent) = From 5dd6b807c3d2415d0af7c543444fd8d333f25aa0 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Wed, 27 Aug 2025 18:56:03 +0400 Subject: [PATCH 2/2] msnapshot --- .gas-snapshot | 82 ++++++++++---------- src/lib/LibDecimalFloat.sol | 2 +- test/src/lib/LibDecimalFloat.constants.t.sol | 2 +- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 736df51a..35e82087 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,35 +1,35 @@ -DecimalFloatAbsTest:testAbsDeployed(bytes32) (runs: 5121, μ: 2750497, ~: 2750439) -DecimalFloatAddTest:testAddDeployed(bytes32,bytes32) (runs: 5121, μ: 2754553, ~: 2754635) -DecimalFloatCeilTest:testCeilDeployed(bytes32) (runs: 5121, μ: 2750528, ~: 2750152) -DecimalFloatConstantsTest:testEDeployed() (gas: 2749682) -DecimalFloatConstantsTest:testMaxNegativeValueDeployed() (gas: 2749714) -DecimalFloatConstantsTest:testMaxPositiveValueDeployed() (gas: 2749672) -DecimalFloatConstantsTest:testMinNegativeValueDeployed() (gas: 2749647) -DecimalFloatConstantsTest:testMinPositiveValueDeployed() (gas: 2749626) -DecimalFloatDivTest:testDivDeployed(bytes32,bytes32) (runs: 5121, μ: 2756500, ~: 2756579) -DecimalFloatEqTest:testEqDeployed(bytes32,bytes32) (runs: 5121, μ: 2750882, ~: 2750807) -DecimalFloatFloorTest:testFloorDeployed(bytes32) (runs: 5121, μ: 2750335, ~: 2750150) -DecimalFloatFormatTest:testFormatDeployed(bytes32) (runs: 5121, μ: 2754485, ~: 2754315) -DecimalFloatFracTest:testFracDeployed(bytes32) (runs: 5121, μ: 2750726, ~: 2750710) -DecimalFloatFromFixedDecimalLosslessTest:testFromFixedDecimalLosslessDeployed(uint256,uint8) (runs: 5121, μ: 2751278, ~: 2751214) -DecimalFloatFromFixedDecimalLossyTest:testFromFixedDecimalLossyDeployed(uint256,uint8) (runs: 5121, μ: 2751767, ~: 2751684) -DecimalFloatGtTest:testGtDeployed(bytes32,bytes32) (runs: 5121, μ: 2750823, ~: 2750749) -DecimalFloatGteTest:testGteDeployed(bytes32,bytes32) (runs: 5121, μ: 2750809, ~: 2750735) -DecimalFloatInvTest:testInvDeployed(bytes32) (runs: 5121, μ: 2755356, ~: 2755394) -DecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5121, μ: 2749992, ~: 2749992) -DecimalFloatLtTest:testLtDeployed(bytes32,bytes32) (runs: 5121, μ: 2750800, ~: 2750726) -DecimalFloatLteTest:testLteDeployed(bytes32,bytes32) (runs: 5121, μ: 2750853, ~: 2750779) -DecimalFloatMaxTest:testMaxDeployed(bytes32,bytes32) (runs: 5121, μ: 2750862, ~: 2750801) -DecimalFloatMinTest:testMinDeployed(bytes32,bytes32) (runs: 5121, μ: 2750883, ~: 2750821) -DecimalFloatMinusTest:testMinusDeployed(bytes32) (runs: 5121, μ: 2750597, ~: 2750597) -DecimalFloatMulTest:testMulDeployed(bytes32,bytes32) (runs: 5121, μ: 2754458, ~: 2755266) +DecimalFloatAbsTest:testAbsDeployed(bytes32) (runs: 5121, μ: 2756704, ~: 2756647) +DecimalFloatAddTest:testAddDeployed(bytes32,bytes32) (runs: 5121, μ: 2760760, ~: 2760843) +DecimalFloatCeilTest:testCeilDeployed(bytes32) (runs: 5121, μ: 2756736, ~: 2756360) +DecimalFloatConstantsTest:testEDeployed() (gas: 2755890) +DecimalFloatConstantsTest:testMaxNegativeValueDeployed() (gas: 2755922) +DecimalFloatConstantsTest:testMaxPositiveValueDeployed() (gas: 2755880) +DecimalFloatConstantsTest:testMinNegativeValueDeployed() (gas: 2755855) +DecimalFloatConstantsTest:testMinPositiveValueDeployed() (gas: 2755834) +DecimalFloatDivTest:testDivDeployed(bytes32,bytes32) (runs: 5121, μ: 2762722, ~: 2762793) +DecimalFloatEqTest:testEqDeployed(bytes32,bytes32) (runs: 5121, μ: 2757089, ~: 2757015) +DecimalFloatFloorTest:testFloorDeployed(bytes32) (runs: 5121, μ: 2756544, ~: 2756358) +DecimalFloatFormatTest:testFormatDeployed(bytes32) (runs: 5121, μ: 2760694, ~: 2760523) +DecimalFloatFracTest:testFracDeployed(bytes32) (runs: 5121, μ: 2756935, ~: 2756918) +DecimalFloatFromFixedDecimalLosslessTest:testFromFixedDecimalLosslessDeployed(uint256,uint8) (runs: 5121, μ: 2757487, ~: 2757422) +DecimalFloatFromFixedDecimalLossyTest:testFromFixedDecimalLossyDeployed(uint256,uint8) (runs: 5121, μ: 2757976, ~: 2757892) +DecimalFloatGtTest:testGtDeployed(bytes32,bytes32) (runs: 5121, μ: 2757031, ~: 2756957) +DecimalFloatGteTest:testGteDeployed(bytes32,bytes32) (runs: 5121, μ: 2757017, ~: 2756943) +DecimalFloatInvTest:testInvDeployed(bytes32) (runs: 5121, μ: 2761564, ~: 2761602) +DecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5121, μ: 2756200, ~: 2756200) +DecimalFloatLtTest:testLtDeployed(bytes32,bytes32) (runs: 5121, μ: 2757008, ~: 2756934) +DecimalFloatLteTest:testLteDeployed(bytes32,bytes32) (runs: 5121, μ: 2757061, ~: 2756987) +DecimalFloatMaxTest:testMaxDeployed(bytes32,bytes32) (runs: 5121, μ: 2757071, ~: 2757009) +DecimalFloatMinTest:testMinDeployed(bytes32,bytes32) (runs: 5121, μ: 2757092, ~: 2757029) +DecimalFloatMinusTest:testMinusDeployed(bytes32) (runs: 5121, μ: 2756805, ~: 2756805) +DecimalFloatMulTest:testMulDeployed(bytes32,bytes32) (runs: 5121, μ: 2760657, ~: 2761474) DecimalFloatPackLosslessTest:testPackDeployed(int224,int32) (runs: 5121, μ: 158769, ~: 158769) -DecimalFloatParseTest:testParseDeployed(string) (runs: 5121, μ: 2753229, ~: 2753099) -DecimalFloatPowTest:testPowDeployed(bytes32,bytes32) (runs: 5121, μ: 2763383, ~: 2760974) -DecimalFloatSqrtTest:testSqrtDeployed(bytes32) (runs: 5121, μ: 2763060, ~: 2761676) -DecimalFloatSubTest:testSubDeployed(bytes32,bytes32) (runs: 5121, μ: 2754905, ~: 2754935) -DecimalFloatToFixedDecimalLosslessTest:testToFixedDecimalLosslessDeployed(bytes32,uint8) (runs: 5121, μ: 2751902, ~: 2751797) -DecimalFloatToFixedDecimalLossyTest:testToFixedDecimalLossyDeployed(bytes32,uint8) (runs: 5121, μ: 2752046, ~: 2752326) +DecimalFloatParseTest:testParseDeployed(string) (runs: 5121, μ: 2759437, ~: 2759306) +DecimalFloatPowTest:testPowDeployed(bytes32,bytes32) (runs: 5121, μ: 2769562, ~: 2767182) +DecimalFloatSqrtTest:testSqrtDeployed(bytes32) (runs: 5121, μ: 2769230, ~: 2767884) +DecimalFloatSubTest:testSubDeployed(bytes32,bytes32) (runs: 5121, μ: 2761113, ~: 2761143) +DecimalFloatToFixedDecimalLosslessTest:testToFixedDecimalLosslessDeployed(bytes32,uint8) (runs: 5121, μ: 2758116, ~: 2758005) +DecimalFloatToFixedDecimalLossyTest:testToFixedDecimalLossyDeployed(bytes32,uint8) (runs: 5121, μ: 2758250, ~: 2758534) LibDecimalFloatAbsTest:testAbsMinValue(int32) (runs: 5121, μ: 5121, ~: 5121) LibDecimalFloatAbsTest:testAbsNegative(int256,int32) (runs: 5121, μ: 10475, ~: 10702) LibDecimalFloatAbsTest:testAbsNonNegative(int256,int32) (runs: 5121, μ: 9640, ~: 9392) @@ -42,13 +42,13 @@ LibDecimalFloatCeilTest:testCeilZero(int32) (runs: 5121, μ: 5438, ~: 5438) LibDecimalFloatConstantsTest:testFloatE() (gas: 3357) LibDecimalFloatConstantsTest:testFloatHalf() (gas: 3336) LibDecimalFloatConstantsTest:testFloatMaxNegativeValue() (gas: 3379) -LibDecimalFloatConstantsTest:testFloatMaxNegativeValueIsMax(bytes32) (runs: 5121, μ: 4488, ~: 4594) +LibDecimalFloatConstantsTest:testFloatMaxNegativeValueIsMax(bytes32) (runs: 5121, μ: 4487, ~: 4594) LibDecimalFloatConstantsTest:testFloatMaxPositiveValue() (gas: 3335) LibDecimalFloatConstantsTest:testFloatMaxPositiveValueIsMax(bytes32) (runs: 5121, μ: 3545, ~: 3586) LibDecimalFloatConstantsTest:testFloatMinNegativeValue() (gas: 3335) LibDecimalFloatConstantsTest:testFloatMinNegativeValueIsMin(bytes32) (runs: 5121, μ: 3496, ~: 3457) LibDecimalFloatConstantsTest:testFloatMinPositiveValue() (gas: 3357) -LibDecimalFloatConstantsTest:testFloatMinPositiveValueIsMin(bytes32) (runs: 5121, μ: 4938, ~: 4870) +LibDecimalFloatConstantsTest:testFloatMinPositiveValueIsMin(bytes32) (runs: 5121, μ: 4939, ~: 4870) LibDecimalFloatConstantsTest:testFloatOne() (gas: 3358) LibDecimalFloatConstantsTest:testFloatTwo() (gas: 3380) LibDecimalFloatConstantsTest:testFloatZero() (gas: 3337) @@ -276,17 +276,17 @@ LibDecimalFloatMixedTest:testDiv1Over3Mixed() (gas: 11063) LibDecimalFloatMulTest:testMulPacked(bytes32,bytes32) (runs: 5121, μ: 9629, ~: 10369) LibDecimalFloatPackTest:testPartsRoundTrip(int224,int32) (runs: 5121, μ: 5352, ~: 5352) LibDecimalFloatPow10Test:testPow10Packed(bytes32) (runs: 5121, μ: 1645584, ~: 1256407) -LibDecimalFloatPowTest:testNegativePowError(bytes32,bytes32) (runs: 5121, μ: 1248482, ~: 1248447) -LibDecimalFloatPowTest:testPowAZero(int32,bytes32) (runs: 5108, μ: 1246471, ~: 1246471) +LibDecimalFloatPowTest:testNegativePowError(bytes32,bytes32) (runs: 5120, μ: 1248482, ~: 1248447) +LibDecimalFloatPowTest:testPowAZero(int32,bytes32) (runs: 5109, μ: 1246471, ~: 1246471) LibDecimalFloatPowTest:testPowAZeroNegative(bytes32) (runs: 5105, μ: 1246870, ~: 1246870) -LibDecimalFloatPowTest:testPowBZero(bytes32,int32) (runs: 5121, μ: 1246058, ~: 1246058) +LibDecimalFloatPowTest:testPowBZero(bytes32,int32) (runs: 5121, μ: 1246316, ~: 1246316) LibDecimalFloatPowTest:testPows() (gas: 1315684) -LibDecimalFloatPowTest:testRoundTripFuzzPow(bytes32,bytes32) (runs: 5121, μ: 1262578, ~: 1260298) -LibDecimalFloatPowTest:testRoundTripSimple() (gas: 1536028) -LibDecimalFloatSqrtTest:testRoundTripFuzzSqrt(int224,int32) (runs: 5121, μ: 1295588, ~: 1294907) +LibDecimalFloatPowTest:testRoundTripFuzzPow(bytes32,bytes32) (runs: 5121, μ: 1262767, ~: 1260321) +LibDecimalFloatPowTest:testRoundTripSimple() (gas: 1535218) +LibDecimalFloatSqrtTest:testRoundTripFuzzSqrt(int224,int32) (runs: 5121, μ: 1295590, ~: 1295264) LibDecimalFloatSqrtTest:testSqrt() (gas: 1293743) -LibDecimalFloatSqrtTest:testSqrtNegative(bytes32) (runs: 5120, μ: 1248097, ~: 1248059) -LibDecimalFloatSqrtTest:testSqrtRoundTrip() (gas: 1418244) +LibDecimalFloatSqrtTest:testSqrtNegative(bytes32) (runs: 5121, μ: 1248095, ~: 1248059) +LibDecimalFloatSqrtTest:testSqrtRoundTrip() (gas: 1417524) LibDecimalFloatSubTest:testSubPacked(bytes32,bytes32) (runs: 5121, μ: 9974, ~: 9995) LibFormatDecimalFloatTest:testFormatDecimalExamples() (gas: 133439) LibFormatDecimalFloatTest:testFormatDecimalRoundTrip(uint256) (runs: 5121, μ: 25218, ~: 20105) diff --git a/src/lib/LibDecimalFloat.sol b/src/lib/LibDecimalFloat.sol index d59b9f2a..6e950f8c 100644 --- a/src/lib/LibDecimalFloat.sol +++ b/src/lib/LibDecimalFloat.sol @@ -95,7 +95,7 @@ library LibDecimalFloat { Float constant FLOAT_ZERO = Float.wrap(0); /// A one valued float. - Float constant FLOAT_ONE = Float.wrap(bytes32(uint256(1))); + Float constant FLOAT_ONE = Float.wrap(bytes32(uint256(0xffffffbd5ef4a74721e864761ea977768e5f518bb6891be80000000000000000))); /// A half valued float. // slither-disable-next-line too-many-digits diff --git a/test/src/lib/LibDecimalFloat.constants.t.sol b/test/src/lib/LibDecimalFloat.constants.t.sol index da43db28..b4808aed 100644 --- a/test/src/lib/LibDecimalFloat.constants.t.sol +++ b/test/src/lib/LibDecimalFloat.constants.t.sol @@ -74,7 +74,7 @@ contract LibDecimalFloatConstantsTest is Test { function testFloatOne() external pure { Float one = LibDecimalFloat.FLOAT_ONE; - Float expected = LibDecimalFloat.packLossless(1, 0); + Float expected = LibDecimalFloat.packLossless(1e67, -67); assertEq(Float.unwrap(one), Float.unwrap(expected)); }