solidity/test/libsolidity/semanticTests/array/copying/array_copy_including_array.sol
Matheus Aguiar af116a9500 Update tests
2023-09-22 17:11:50 -03:00

47 lines
1.1 KiB
Solidity

contract c {
uint[3][90][] large;
uint[3][3][] small;
function test() public returns (uint r) {
for (uint i = 0; i < 7; i++) {
large.push();
small.push();
}
large[3][2][0] = 2;
large[1] = large[3];
small[3][2][0] = 2;
small[1] = small[2];
r = ((
small[3][2][0] * 0x100 |
small[1][2][0]) * 0x100 |
large[3][2][0]) * 0x100 |
large[1][2][0];
delete small;
delete large;
}
function clear() public returns (uint, uint) {
for (uint i = 0; i < 7; i++) {
large.push();
small.push();
}
small[3][2][0] = 0;
large[3][2][0] = 0;
while (small.length > 0)
small.pop();
while (large.length > 0)
large.pop();
return (small.length, large.length);
}
}
// ----
// test() -> 0x02000202
// gas irOptimized: 4547793
// gas legacy: 4475396
// gas legacyOptimized: 4447665
// storageEmpty -> 1
// clear() -> 0, 0
// gas irOptimized: 4474777
// gas legacy: 4407188
// gas legacyOptimized: 4381336
// storageEmpty -> 1