Skip to content

Commit 0e718b8

Browse files
committed
test: Snapshots lib
1 parent 8a6a9d4 commit 0e718b8

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// SPDX-License-Identifier: BUSL-1.1
2+
pragma solidity ^0.8.27;
3+
4+
import "forge-std/Test.sol";
5+
import "src/contracts/libraries/Snapshots.sol";
6+
7+
contract SnapshotsUnitTests is Test {
8+
using Snapshots for Snapshots.DefaultWadHistory;
9+
10+
Snapshots.DefaultWadHistory history;
11+
12+
function test_Revert_InvalidSnapshotOrdering(uint256 r) public {
13+
uint32 key = uint32(bound(r, 1, type(uint32).max));
14+
uint32 smallerKey = uint32(bound(r, 0, key - 1));
15+
16+
history.push(key, 1);
17+
18+
vm.expectRevert(Snapshots.InvalidSnapshotOrdering.selector);
19+
history.push(smallerKey, 2);
20+
}
21+
22+
function test_Push_Correctness(uint256 r) public {
23+
uint32 key = uint32(bound(r, 0, type(uint32).max));
24+
uint64 value = uint32(bound(r, 0, type(uint64).max));
25+
26+
history.push(key, value);
27+
28+
assertEq(history.upperLookup(key), value);
29+
assertEq(history.latest(), value);
30+
assertEq(history.length(), 1);
31+
}
32+
33+
function test_UpperLookup_InitiallyWad(uint32 r) public {
34+
assertEq(history.upperLookup(r), 1e18);
35+
}
36+
37+
function test_Latest_InitiallyWad() public {
38+
assertEq(history.latest(), 1e18);
39+
}
40+
41+
function test_Length_InitiallyZero() public {
42+
assertEq(history.length(), 0);
43+
}
44+
}

0 commit comments

Comments
 (0)