Skip to content

Commit

Permalink
T
Browse files Browse the repository at this point in the history
  • Loading branch information
Vectorized committed Aug 6, 2024
1 parent 01c7c7a commit 1ef0a27
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 38 deletions.
44 changes: 22 additions & 22 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -991,35 +991,35 @@ MetadataReaderLibTest:testReadStringTruncated(uint256) (runs: 312, μ: 843960, ~
MetadataReaderLibTest:testReadUint() (gas: 921729)
MetadataReaderLibTest:testReadUint(uint256) (runs: 312, μ: 46700, ~: 47136)
MetadataReaderLibTest:test__codesize() (gas: 8049)
MinHeapLibTest:testHeapEnqueue(uint256) (runs: 312, μ: 185755, ~: 184316)
MinHeapLibTest:testHeapEnqueue2(uint256) (runs: 312, μ: 599785, ~: 496696)
MinHeapLibTest:testHeapEnqueue(uint256) (runs: 312, μ: 182449, ~: 181016)
MinHeapLibTest:testHeapEnqueue2(uint256) (runs: 312, μ: 619141, ~: 495459)
MinHeapLibTest:testHeapEnqueueGas() (gas: 841356)
MinHeapLibTest:testHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 312, μ: 47422, ~: 28359)
MinHeapLibTest:testHeapPSiftTrick(uint256,uint256,uint256) (runs: 312, μ: 691, ~: 855)
MinHeapLibTest:testHeapPushAndPop(uint256) (runs: 312, μ: 112161, ~: 99847)
MinHeapLibTest:testHeapPushPop(uint256) (runs: 312, μ: 244144, ~: 237662)
MinHeapLibTest:testHeapPushPopLength(uint256) (runs: 312, μ: 924652, ~: 851258)
MinHeapLibTest:testHeapReplace(uint256) (runs: 312, μ: 291715, ~: 293842)
MinHeapLibTest:testHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 312, μ: 45552, ~: 50637)
MinHeapLibTest:testHeapRoot(uint256) (runs: 312, μ: 48035, ~: 67348)
MinHeapLibTest:testHeapSmallest(uint256) (runs: 312, μ: 1357079, ~: 1170887)
MinHeapLibTest:testHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 312, μ: 47048, ~: 28359)
MinHeapLibTest:testHeapPSiftTrick(uint256,uint256,uint256) (runs: 312, μ: 681, ~: 517)
MinHeapLibTest:testHeapPushAndPop(uint256) (runs: 312, μ: 112965, ~: 112236)
MinHeapLibTest:testHeapPushPop(uint256) (runs: 312, μ: 246645, ~: 236557)
MinHeapLibTest:testHeapPushPopLength(uint256) (runs: 312, μ: 959979, ~: 854956)
MinHeapLibTest:testHeapReplace(uint256) (runs: 312, μ: 297217, ~: 295766)
MinHeapLibTest:testHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 312, μ: 45352, ~: 50634)
MinHeapLibTest:testHeapRoot(uint256) (runs: 312, μ: 47015, ~: 37512)
MinHeapLibTest:testHeapSmallest(uint256) (runs: 312, μ: 1428626, ~: 1174583)
MinHeapLibTest:testHeapSmallestGas() (gas: 50069382)
MinHeapLibTest:testMemHeapEnqueue(uint256) (runs: 312, μ: 2221162, ~: 2124001)
MinHeapLibTest:testMemHeapEnqueue2(uint256) (runs: 312, μ: 851422, ~: 748687)
MinHeapLibTest:testMemHeapEnqueue(uint256) (runs: 312, μ: 1643537, ~: 957286)
MinHeapLibTest:testMemHeapEnqueue2(uint256) (runs: 312, μ: 842173, ~: 750576)
MinHeapLibTest:testMemHeapEnqueueGas() (gas: 253245)
MinHeapLibTest:testMemHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 312, μ: 25055, ~: 23910)
MinHeapLibTest:testMemHeapPushAndPop(uint256) (runs: 312, μ: 969147, ~: 851041)
MinHeapLibTest:testMemHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 312, μ: 24975, ~: 23903)
MinHeapLibTest:testMemHeapPushAndPop(uint256) (runs: 312, μ: 1007816, ~: 860774)
MinHeapLibTest:testMemHeapPushGas() (gas: 36475)
MinHeapLibTest:testMemHeapPushPop(uint256) (runs: 312, μ: 1157178, ~: 1044742)
MinHeapLibTest:testMemHeapPushPopLength(uint256) (runs: 312, μ: 798430, ~: 701043)
MinHeapLibTest:testMemHeapReplace(uint256) (runs: 312, μ: 921664, ~: 806019)
MinHeapLibTest:testMemHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 312, μ: 25762, ~: 26305)
MinHeapLibTest:testMemHeapRoot(uint256) (runs: 312, μ: 761640, ~: 646696)
MinHeapLibTest:testMemHeapSmallest(uint256) (runs: 312, μ: 875424, ~: 749916)
MinHeapLibTest:testMemHeapPushPop(uint256) (runs: 312, μ: 1148364, ~: 1030852)
MinHeapLibTest:testMemHeapPushPopLength(uint256) (runs: 312, μ: 827048, ~: 704729)
MinHeapLibTest:testMemHeapReplace(uint256) (runs: 312, μ: 905424, ~: 800522)
MinHeapLibTest:testMemHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 312, μ: 25716, ~: 25290)
MinHeapLibTest:testMemHeapRoot(uint256) (runs: 312, μ: 757408, ~: 650344)
MinHeapLibTest:testMemHeapSmallest(uint256) (runs: 312, μ: 887004, ~: 752118)
MinHeapLibTest:testMemHeapSmallestGas() (gas: 3014142)
MinHeapLibTest:testMemHeapWriteAndReadFromStorage() (gas: 68191)
MinHeapLibTest:testMemHeapWriteAndReadFromStorage2() (gas: 68209)
MinHeapLibTest:test__codesize() (gas: 14461)
MinHeapLibTest:test__codesize() (gas: 14506)
MulticallableTest:testMulticallableBenchmark() (gas: 29642)
MulticallableTest:testMulticallableOriginalBenchmark() (gas: 38935)
MulticallableTest:testMulticallablePreservesMsgSender() (gas: 11166)
Expand Down
34 changes: 18 additions & 16 deletions test/MinHeapLib.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -516,23 +516,25 @@ contract MinHeapLibTest is SoladyTest {
MinHeapLib.MemHeap memory heapA;
unchecked {
uint256 maxLength = _random() % 64 + 1;
uint256 m = _random() % 32 + maxLength;
uint256[] memory a = new uint256[](m);
uint256[] memory rejected = new uint256[](m);
uint256[] memory a = new uint256[](_random() % 32 + maxLength);
uint256[] memory rejected = new uint256[](a.length);
uint256 numRejected;
for (uint256 i; i < m; ++i) {
bool testReinit = _randomChance(2);
for (uint256 i; i < a.length; ++i) {
uint256 r = _random();
(bool success, bool hasPopped, uint256 popped) = heapA.enqueue(r, maxLength);
if (_randomChance(2)) {
heapDataInStorage = heapA.data;
heapA = MinHeapLib.MemHeap(heapDataInStorage);
_checkMemory();
}
if (_randomChance(2)) {
heapDataInStorage = heapA.data;
uint256[] memory data = heapDataInStorage;
heapA = MinHeapLib.MemHeap(data);
_checkMemory();
if (testReinit) {
if (_randomChance(2)) {
heapDataInStorage = heapA.data;
heapA = MinHeapLib.MemHeap(heapDataInStorage);
_checkMemory();
}
if (_randomChance(2)) {
heapDataInStorage = heapA.data;
uint256[] memory data = heapDataInStorage;
heapA = MinHeapLib.MemHeap(data);
_checkMemory();
}
}
if (hasPopped) {
assertEq(heapA.length(), maxLength);
Expand All @@ -552,9 +554,9 @@ contract MinHeapLibTest is SoladyTest {
}
LibSort.insertionSort(rejected);
for (uint256 i; i < maxLength; ++i) {
assertEq(a[m - maxLength + i], heapA.pop());
assertEq(a[a.length - maxLength + i], heapA.pop());
}
assertEq(numRejected + maxLength, m);
assertEq(numRejected + maxLength, a.length);
for (uint256 i; i < numRejected; ++i) {
assertEq(a[i], rejected[i]);
}
Expand Down

0 comments on commit 1ef0a27

Please sign in to comment.