@@ -221,27 +221,34 @@ contract TrimmingTest is Test {
221
221
assertEq (expectedIsLt, isLt);
222
222
}
223
223
224
+ function testFuzz_trimisNOOP (uint256 amount , uint8 aDecimals , uint8 bDecimals ) {
225
+ uint256 amt = bound (amount, 1 , type (uint64 ).max);
226
+ vm.assume (aDecimals <= 50 );
227
+ vm.assume (bDecimals <= 50 );
228
+
229
+ }
230
+
224
231
// invariant: forall (x: uint256, y: uint8, z: uint8),
225
232
// (x <= type(uint64).max, y <= z)
226
233
// => (x.trim(x, 8).untrim(y) == x)
227
234
function testFuzz_trimIsLeftInverse (
228
235
uint256 amount ,
229
- uint8 fromDecimals ,
230
- uint8 toDecimals
236
+ uint8 aDecimals ,
237
+ uint8 bDecimals
231
238
) public {
232
239
uint256 amt = bound (amount, 1 , type (uint64 ).max);
233
- vm.assume (fromDecimals <= 50 );
234
- vm.assume (toDecimals <= 50 );
240
+ vm.assume (aDecimals <= 50 );
241
+ vm.assume (bDecimals <= 50 );
235
242
236
243
// NOTE: this is guaranteeed by trimming
237
- vm.assume (fromDecimals <= 8 && fromDecimals <= toDecimals );
244
+ vm.assume (aDecimals <= 8 && aDecimals <= bDecimals );
238
245
239
246
// initialize TrimmedAmount
240
- TrimmedAmount trimmedAmount = packTrimmedAmount (uint64 (amt), fromDecimals );
247
+ TrimmedAmount trimmedAmount = packTrimmedAmount (uint64 (amt), aDecimals );
241
248
242
- // trimming is left inverse of trimming
243
- uint256 amountUntrimmed = trimmedAmount.untrim (toDecimals );
244
- TrimmedAmount amountRoundTrip = amountUntrimmed.trim (toDecimals, fromDecimals );
249
+ // trimming is the left inverse of trimming
250
+ uint256 amountUntrimmed = trimmedAmount.untrim (bDecimals );
251
+ TrimmedAmount amountRoundTrip = amountUntrimmed.trim (bDecimals, aDecimals );
245
252
246
253
assertEq (trimmedAmount.getAmount (), amountRoundTrip.getAmount ());
247
254
}
0 commit comments