From 7965cbf3df999f1310a2bf357f7308a0e1337172 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 28 Jul 2025 21:00:52 +0400 Subject: [PATCH 1/3] wip on frac --- src/generated/Rainterpreter.pointers.sol | 4 +- ...interpreterExpressionDeployer.pointers.sol | 6 +- .../RainterpreterParser.pointers.sol | 8 +- src/lib/op/LibAllStandardOps.sol | 14 ++-- src/lib/op/math/LibOpFrac.sol | 75 ++++++++++--------- 5 files changed, 55 insertions(+), 52 deletions(-) diff --git a/src/generated/Rainterpreter.pointers.sol b/src/generated/Rainterpreter.pointers.sol index ff492ec3d..aa4cea960 100644 --- a/src/generated/Rainterpreter.pointers.sol +++ b/src/generated/Rainterpreter.pointers.sol @@ -10,11 +10,11 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x1ed65c8c3d3ffc05de391f627229478134e639737bdd866422cd8df0abe08657); +bytes32 constant BYTECODE_HASH = bytes32(0x74f4ab876f43b52d924dd67b52b3ca05890425f855a8a777e9814f4246011d05); /// @dev The function pointers known to the interpreter for dynamic dispatch. /// By setting these as a constant they can be inlined into the interpreter /// and loaded at eval time for very low gas (~100) due to the compiler /// optimising it to a single `codecopy` to build the in memory bytes array. bytes constant OPCODE_FUNCTION_POINTERS = - hex"07fc082e085209de0aa70ab90acb0ae40b080b3c0b4d0b5e0c000c1f0cdd0d8d0e110f5310860cdd117f123112d3134b135c136d136d137e13e914f41573158c15a015ff16181631166a169516ae16c716ee1701176317b117ff184d189b18e919371968197619c419f51a431a741ac21b101c06"; + hex"08050837085b09e70ab00ac20ad40aed0b110b450b560b670c090c280ce60d960e1a0f5c108f0ce61188123a12dc1354136513761376138713f214fd157c159515a916081621163a1673169e16b716d016f7170a176c17ba1808185618a418f219401971197f198d19db1a0c1a5a1a8b1ad91b271c1d"; diff --git a/src/generated/RainterpreterExpressionDeployer.pointers.sol b/src/generated/RainterpreterExpressionDeployer.pointers.sol index f1234719f..ee23b9b35 100644 --- a/src/generated/RainterpreterExpressionDeployer.pointers.sol +++ b/src/generated/RainterpreterExpressionDeployer.pointers.sol @@ -10,11 +10,11 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf2207cd3afbd9ca7533c86525c77d0d2b740db0becbe048a274555b9a6a2c12a); +bytes32 constant BYTECODE_HASH = bytes32(0xbed2d4ac5d5461f524b74c1685829181a4869af0e88d8acce1c56f4fa26b53b5); /// @dev The hash of the meta that describes the contract. -bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0x7627bf6e126d126d07bea44350d6ff7a6893030e6217749ccc2d47d851eebd8c); +bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0x87c8570956bb61fd43b455e10f4e3bc363513a130c0a37907112aa2957795480); /// @dev The function pointers for the integrity check fns. bytes constant INTEGRITY_FUNCTION_POINTERS = - hex"0e880f060f6a10e410ee10ee10f81101111c11c211c2121e129612a310ee10f812a310ee10f810ee10ee10ee10f810e410e410e410e412ad12d212ec10ee10ee12ad10ee10ee12a310f810ee10ee12a310e412f612f612f612f612f612f6131010e410f812f610e412f610e41310131010f812ec"; + hex"0e900f0e0f7210ec10f610f611001109112411ca11ca1226129e12ab10f6110012ab10f6110010f610f610f6110010ec10ec10ec10ec12b512da12f410f610f612b510f610f612ab110010f610f612ab10ec12fe12fe12fe12fe12fe12fe131810ec1100110012fe10ec12fe10ec13181318110012f4"; diff --git a/src/generated/RainterpreterParser.pointers.sol b/src/generated/RainterpreterParser.pointers.sol index fe6dd1d0c..ea4324ce8 100644 --- a/src/generated/RainterpreterParser.pointers.sol +++ b/src/generated/RainterpreterParser.pointers.sol @@ -10,7 +10,7 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6ffd9e7d346f2c3f3aa8e40939dcd8b27f15e0b57a639fb5b8674df19c36bb64); +bytes32 constant BYTECODE_HASH = bytes32(0x5394e29197b822127aea4c685666b83280e3d4d2e05754107709bec524e5cb32); /// @dev The parse meta that is used to lookup word definitions. /// The structure of the parse meta is: @@ -29,7 +29,7 @@ bytes32 constant BYTECODE_HASH = bytes32(0x6ffd9e7d346f2c3f3aa8e40939dcd8b27f15e /// bit count of the previous bloom filter. If we reach the end of the bloom /// filters then we have a miss. bytes constant PARSE_META = - hex"0278ac80600029b010910908a00a7c48c001280030060500180000200cc2200408e400000000000000000000000000000000000000000000000000200000000000000027fe9a970c95d83823c0361a3848145c3934b3f333d587e204afc8f01f95a26007b9a51f0d5e6f2803ce312215fae0a12b1233de118cfd53051c784d29a55ade3512233f1681ac9625ac6dfc34a4e5e9215fc32a0e92b2401ebbd837100ef76b00cd8814225902e62e9714ec133135922d0d473b203ddb3124f880501427634f1c69b5340f23b4970ac0e53d0b895f991ac908be0983724f12c080bc369d7b7d2c757aea313a7b862a6f62e02f5c0ab5086d2a7b2690a6b319bcb24402af7d4506414b8117b04fb31db2182f18ef532928c301e31b9314ad37fa5d8001336a5932ab2461308fa388"; + hex"02120580000068a0a65201249030011040048204660b2023215058008c06080120210000000000000000000000000000000000080000000000000000000000000000402d8199df009d67d22c1d0f37036e3e2e0e7d8c5707d7fdec21100100143de58736ae590b3905464e09fa0f6d29e133af31ac46712e06de8018f697c502a7d9d3259988671deafd991c6afdc512aa165d057d9d9d19be782a30f7cb9a0f11ccad2a42ee8e267c88391191db7333ac16ad0a15ce750b56f94f0464fdb31ba3783a100f9a7f1ed9827e0c53405c3522c7531a79fcd03a90ed6506c827b92f19ae1324e4865308f7e23532ad38972b2a49ad1f17f5b838bb726f2881231d34e365890d1d863d0150056620b2eeff2772e4921742d7773722824116f1989e2354b15415a57077135ab9fa22782c84"; /// @dev The build depth of the parser meta. @@ -39,11 +39,11 @@ uint8 constant PARSE_META_BUILD_DEPTH = 2; /// These positional indexes all map to the same indexes looked up in the parse /// meta. bytes constant OPERAND_HANDLER_FUNCTION_POINTERS = - hex"1a6d1a6d1a6d1b421c591c591c591b421b421a6d1a6d1a6d1c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591c591a6d1c591c59"; + hex"1a751a751a751b4a1c611c611c611b4a1b4a1a751a751a751c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611c611a751c611c61"; /// @dev Every two bytes is a function pointer for a literal parser. /// Literal dispatches are determined by the first byte(s) of the literal /// rather than a full word lookup, and are done with simple conditional /// jumps as the possibilities are limited compared to the number of words we /// have. -bytes constant LITERAL_PARSER_FUNCTION_POINTERS = hex"15b517e7182a18c8"; +bytes constant LITERAL_PARSER_FUNCTION_POINTERS = hex"15bd17ef183218d0"; diff --git a/src/lib/op/LibAllStandardOps.sol b/src/lib/op/LibAllStandardOps.sol index 6ddb59c7b..a27379832 100644 --- a/src/lib/op/LibAllStandardOps.sol +++ b/src/lib/op/LibAllStandardOps.sol @@ -78,7 +78,7 @@ import {LibOpE} from "./math/LibOpE.sol"; // import {LibOpExp} from "./math/LibOpExp.sol"; // import {LibOpExp2} from "./math/LibOpExp2.sol"; // import {LibOpFloor} from "./math/LibOpFloor.sol"; -// import {LibOpFrac} from "./math/LibOpFrac.sol"; +import {LibOpFrac} from "./math/LibOpFrac.sol"; // import {LibOpGm} from "./math/LibOpGm.sol"; // import {LibOpHeadroom} from "./math/LibOpHeadroom.sol"; import {LibOpInv} from "./math/LibOpInv.sol"; @@ -109,7 +109,7 @@ import {LibParseLiteralHex} from "../parse/literal/LibParseLiteralHex.sol"; import {LibParseLiteralSubParseable} from "../parse/literal/LibParseLiteralSubParseable.sol"; /// @dev Number of ops currently provided by `AllStandardOps`. -uint256 constant ALL_STANDARD_OPS_LENGTH = 58; +uint256 constant ALL_STANDARD_OPS_LENGTH = 59; /// @title LibAllStandardOps /// @notice Every opcode available from the core repository laid out as a single @@ -272,7 +272,7 @@ library LibAllStandardOps { // AuthoringMetaV2("exp", "Natural exponential e^x. Errors if the exponentiation exceeds `max-value()`."), // AuthoringMetaV2("exp2", "Binary exponential 2^x where x. Errors if the exponentiation exceeds `max-value()`."), // AuthoringMetaV2("floor", "Floor of a number."), - // AuthoringMetaV2("frac", "Fractional part of a number."), + AuthoringMetaV2("frac", "Fractional part of a number."), // AuthoringMetaV2("gm", "Geometric mean of all numbers. Errors if any number is zero."), // AuthoringMetaV2( // "headroom", @@ -467,8 +467,8 @@ library LibAllStandardOps { // LibParseOperand.handleOperandDisallowed, // // floor // LibParseOperand.handleOperandDisallowed, - // // frac - // LibParseOperand.handleOperandDisallowed, + // frac + LibParseOperand.handleOperandDisallowed, // // gm // LibParseOperand.handleOperandDisallowed, // // headroom @@ -591,7 +591,7 @@ library LibAllStandardOps { // LibOpExp.integrity, // LibOpExp2.integrity, // LibOpFloor.integrity, - // LibOpFrac.integrity, + LibOpFrac.integrity, // LibOpGm.integrity, // LibOpHeadroom.integrity, LibOpInv.integrity, @@ -699,7 +699,7 @@ library LibAllStandardOps { // LibOpExp.run, // LibOpExp2.run, // LibOpFloor.run, - // LibOpFrac.run, + LibOpFrac.run, // LibOpGm.run, // LibOpHeadroom.run, LibOpInv.run, diff --git a/src/lib/op/math/LibOpFrac.sol b/src/lib/op/math/LibOpFrac.sol index aaf536546..44a8ec4f7 100644 --- a/src/lib/op/math/LibOpFrac.sol +++ b/src/lib/op/math/LibOpFrac.sol @@ -1,43 +1,46 @@ // SPDX-License-Identifier: CAL pragma solidity ^0.8.18; -// import {UD60x18, frac} from "prb-math/UD60x18.sol"; -// import {OperandV2} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol"; -// import {Pointer} from "rain.solmem/lib/LibPointer.sol"; -// import {InterpreterState} from "../../state/LibInterpreterState.sol"; -// import {IntegrityCheckState} from "../../integrity/LibIntegrityCheck.sol"; +import {OperandV2} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol"; +import {Pointer} from "rain.solmem/lib/LibPointer.sol"; +import {InterpreterState} from "../../state/LibInterpreterState.sol"; +import {IntegrityCheckState} from "../../integrity/LibIntegrityCheck.sol"; +import {StackItem} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol"; +import {Float, LibDecimalFloat} from "rain.math.float/lib/LibDecimalFloat.sol"; -// /// @title LibOpFrac -// /// @notice Opcode for the frac of an decimal 18 fixed point number. -// library LibOpFrac { -// function integrity(IntegrityCheckState memory, Operand) internal pure returns (uint256, uint256) { -// // There must be one input and one output. -// return (1, 1); -// } +/// @title LibOpFrac +/// @notice Opcode for the frac of a decimal floating point number. +library LibOpFrac { + using LibDecimalFloat for Float; -// /// frac -// /// 18 decimal fixed point frac of a number. -// function run(InterpreterState memory, Operand, Pointer stackTop) internal pure returns (Pointer) { -// uint256 a; -// assembly ("memory-safe") { -// a := mload(stackTop) -// } -// a = UD60x18.unwrap(frac(UD60x18.wrap(a))); + function integrity(IntegrityCheckState memory, OperandV2) internal pure returns (uint256, uint256) { + // There must be one input and one output. + return (1, 1); + } -// assembly ("memory-safe") { -// mstore(stackTop, a) -// } -// return stackTop; -// } + /// frac + /// decimal floating point frac of a number. + function run(InterpreterState memory, OperandV2, Pointer stackTop) internal pure returns (Pointer) { + Float a; + assembly ("memory-safe") { + a := mload(stackTop) + } + a = a.frac(); -// /// Gas intensive reference implementation of frac for testing. -// function referenceFn(InterpreterState memory, Operand, uint256[] memory inputs) -// internal -// pure -// returns (uint256[] memory) -// { -// uint256[] memory outputs = new uint256[](1); -// outputs[0] = UD60x18.unwrap(frac(UD60x18.wrap(inputs[0]))); -// return outputs; -// } -// } + assembly ("memory-safe") { + mstore(stackTop, a) + } + return stackTop; + } + + /// Gas intensive reference implementation of frac for testing. + function referenceFn(InterpreterState memory, OperandV2, StackItem[] memory inputs) + internal + pure + returns (StackItem[] memory) + { + StackItem[] memory outputs = new StackItem[](1); + outputs[0] = StackItem.wrap(Float.unwrap(Float.wrap(StackItem.unwrap(inputs[0])).frac())); + return outputs; + } +} From 9d8cd800cacbcfb29d675b954d72d33adc955c4a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Tue, 29 Jul 2025 00:37:47 +0400 Subject: [PATCH 2/3] frac --- .gas-snapshot | 1390 +++++++++++++------------- test/src/lib/op/math/LibOpFrac.t.sol | 115 +-- 2 files changed, 765 insertions(+), 740 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index eeed9ceae..bef85e17a 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,593 +1,617 @@ -BaseRainterpreterExternNPE2IERC165Test:testRainterpreterExternNPE2IERC165(bytes4) (runs: 2051, μ: 320946, ~: 320946) -BaseRainterpreterSubParserNPE2IERC165Test:testRainterpreterSubParserNPE2IERC165(uint32) (runs: 2051, μ: 678755, ~: 678755) -LibAllStandardOpsTest:testIntegrityAndOpcodeFunctionPointersLength() (gas: 67820) -LibAllStandardOpsTest:testIntegrityFunctionPointersLength() (gas: 10068) -LibAllStandardOpsTest:testOpcodeFunctionPointersLength() (gas: 10053) -LibEvalFBoundsTest:testEvalNPFBoundsModConstant(bytes32) (runs: 2051, μ: 85929, ~: 85929) -LibExternCodecTest:testLibExternCodecEncodeExternCall(uint256,bytes32) (runs: 2051, μ: 9768, ~: 10284) -LibExternCodecTest:testLibExternCodecEncodeExternDispatch(uint256,bytes32) (runs: 2051, μ: 8885, ~: 9401) -LibInterpreterStateStackTraceTest:testStackTraceCall(uint256,uint256,uint256[]) (runs: 2051, μ: 43084, ~: 42703) -LibOpAddTest:testOpAddEval2InputsHappy() (gas: 160768) -LibOpAddTest:testOpAddEval2InputsHappyZero() (gas: 57700) -LibOpAddTest:testOpAddEval2InputsHappyZeroMax() (gas: 103053) -LibOpAddTest:testOpAddEval2InputsHappyZeroOne() (gas: 199080) -LibOpAddTest:testOpAddEval2InputsUnhappy() (gas: 103197) -LibOpAddTest:testOpAddEval3InputsHappy() (gas: 309619) -LibOpAddTest:testOpAddEval3InputsUnhappy() (gas: 709109) -LibOpAddTest:testOpAddEvalOneInput() (gas: 36617) -LibOpAddTest:testOpAddEvalOperandDisallowed() (gas: 91615) -LibOpAddTest:testOpAddEvalTwoOutput() (gas: 44002) -LibOpAddTest:testOpAddEvalZeroInputs() (gas: 30238) -LibOpAddTest:testOpAddEvalZeroOutputs() (gas: 43020) -LibOpAddTest:testOpAddIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18203, ~: 18434) -LibOpAddTest:testOpAddIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13873, ~: 13733) -LibOpAddTest:testOpAddIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13870, ~: 13730) -LibOpAddTest:testOpAddRun(bytes32[]) (runs: 2048, μ: 52149, ~: 52187) -LibOpAnyTest:testOpAnyEval1FalseInput() (gas: 51910) -LibOpAnyTest:testOpAnyEval1TrueInput() (gas: 51858) -LibOpAnyTest:testOpAnyEval2FalseInputs() (gas: 57204) -LibOpAnyTest:testOpAnyEval2MixedInputs() (gas: 57772) -LibOpAnyTest:testOpAnyEval2MixedInputs2() (gas: 57859) -LibOpAnyTest:testOpAnyEval2MixedInputsZeroExponent() (gas: 58877) -LibOpAnyTest:testOpAnyEval2TrueInputs() (gas: 57793) -LibOpAnyTest:testOpAnyEvalFail() (gas: 29745) +BaseRainterpreterExternNPE2IERC165Test:testRainterpreterExternNPE2IERC165(bytes4) (runs: 2054, μ: 320946, ~: 320946) +BaseRainterpreterSubParserNPE2IERC165Test:testRainterpreterSubParserNPE2IERC165(uint32) (runs: 2054, μ: 678755, ~: 678755) +LibAllStandardOpsTest:testIntegrityAndOpcodeFunctionPointersLength() (gas: 70434) +LibAllStandardOpsTest:testIntegrityFunctionPointersLength() (gas: 10293) +LibAllStandardOpsTest:testOpcodeFunctionPointersLength() (gas: 10278) +LibEvalFBoundsTest:testEvalNPFBoundsModConstant(bytes32) (runs: 2054, μ: 86154, ~: 86154) +LibExternCodecTest:testLibExternCodecEncodeExternCall(uint256,bytes32) (runs: 2054, μ: 9768, ~: 10284) +LibExternCodecTest:testLibExternCodecEncodeExternDispatch(uint256,bytes32) (runs: 2054, μ: 8885, ~: 9401) +LibInterpreterStateStackTraceTest:testStackTraceCall(uint256,uint256,uint256[]) (runs: 2054, μ: 43059, ~: 42630) +LibOpAddTest:testOpAddEval2InputsHappy() (gas: 160786) +LibOpAddTest:testOpAddEval2InputsHappyZero() (gas: 57707) +LibOpAddTest:testOpAddEval2InputsHappyZeroMax() (gas: 103067) +LibOpAddTest:testOpAddEval2InputsHappyZeroOne() (gas: 199104) +LibOpAddTest:testOpAddEval2InputsUnhappy() (gas: 103211) +LibOpAddTest:testOpAddEval3InputsHappy() (gas: 309649) +LibOpAddTest:testOpAddEval3InputsUnhappy() (gas: 709191) +LibOpAddTest:testOpAddEvalOneInput() (gas: 36624) +LibOpAddTest:testOpAddEvalOperandDisallowed() (gas: 91651) +LibOpAddTest:testOpAddEvalTwoOutput() (gas: 44008) +LibOpAddTest:testOpAddEvalZeroInputs() (gas: 30244) +LibOpAddTest:testOpAddEvalZeroOutputs() (gas: 43026) +LibOpAddTest:testOpAddIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18201, ~: 18427) +LibOpAddTest:testOpAddIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13872, ~: 13733) +LibOpAddTest:testOpAddIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13869, ~: 13730) +LibOpAddTest:testOpAddRun(bytes32[]) (runs: 2051, μ: 52122, ~: 52044) +LibOpAnyTest:testOpAnyEval1FalseInput() (gas: 51917) +LibOpAnyTest:testOpAnyEval1TrueInput() (gas: 51865) +LibOpAnyTest:testOpAnyEval2FalseInputs() (gas: 57211) +LibOpAnyTest:testOpAnyEval2MixedInputs() (gas: 57778) +LibOpAnyTest:testOpAnyEval2MixedInputs2() (gas: 57865) +LibOpAnyTest:testOpAnyEval2MixedInputsZeroExponent() (gas: 58883) +LibOpAnyTest:testOpAnyEval2TrueInputs() (gas: 57799) +LibOpAnyTest:testOpAnyEvalFail() (gas: 29751) LibOpAnyTest:testOpAnyIntegrityGas0() (gas: 3251) -LibOpAnyTest:testOpAnyIntegrityHappy(uint8,uint16) (runs: 2051, μ: 8300, ~: 8568) +LibOpAnyTest:testOpAnyIntegrityHappy(uint8,uint16) (runs: 2054, μ: 8303, ~: 8417) LibOpAnyTest:testOpAnyIntegrityUnhappyZeroInputs() (gas: 4059) -LibOpAnyTest:testOpAnyRun(bytes32[],uint16) (runs: 2048, μ: 21818, ~: 21797) +LibOpAnyTest:testOpAnyRun(bytes32[],uint16) (runs: 2051, μ: 21818, ~: 21797) LibOpAnyTest:testOpAnyRunGas0() (gas: 3345) -LibOpAnyTest:testOpAnyTwoOutputs() (gas: 35800) -LibOpAnyTest:testOpAnyZeroOutputs() (gas: 34770) -LibOpBinaryEqualToTest:testOpBinaryEqualToEval2() (gas: 207876) -LibOpBinaryEqualToTest:testOpBinaryEqualToEval2InputsBothOne() (gas: 57853) -LibOpBinaryEqualToTest:testOpBinaryEqualToEval2InputsFirstOneSecondZero() (gas: 58583) -LibOpBinaryEqualToTest:testOpBinaryEqualToEval2InputsFirstZeroSecondOne() (gas: 58585) -LibOpBinaryEqualToTest:testOpBinaryEqualToEval2ZeroInputs() (gas: 57898) -LibOpBinaryEqualToTest:testOpBinaryEqualToEvalFail0Inputs() (gas: 30641) -LibOpBinaryEqualToTest:testOpBinaryEqualToEvalFail1Input() (gas: 34960) -LibOpBinaryEqualToTest:testOpBinaryEqualToEvalFail3Inputs() (gas: 43459) -LibOpBinaryEqualToTest:testOpBinaryEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19700, ~: 19966) -LibOpBinaryEqualToTest:testOpBinaryEqualToRun(bytes32,bytes32) (runs: 2051, μ: 16674, ~: 16674) -LibOpBinaryEqualToTest:testOpBinaryEqualToTwoOutputs() (gas: 41618) -LibOpBinaryEqualToTest:testOpBinaryEqualToZeroOutputs() (gas: 40549) -LibOpBitwiseAndNPTest:testOpBitwiseAndNPEvalHappy() (gas: 720119) -LibOpBitwiseAndNPTest:testOpBitwiseAndNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13752, ~: 13661) -LibOpBitwiseAndNPTest:testOpBitwiseAndNPRun(bytes32,bytes32) (runs: 2051, μ: 16671, ~: 16671) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18219) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalOneInput() (gas: 35774) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 45543) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 41347) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 30797) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 40321) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEval() (gas: 718825) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18160) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalOneInput() (gas: 35715) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 45441) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 41265) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 30694) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 40262) -LibOpBitwiseOrNPTest:testOpBitwiseORNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13751, ~: 13660) -LibOpBitwiseOrNPTest:testOpBitwiseORNPRun(bytes32,bytes32) (runs: 2051, μ: 16628, ~: 16628) -LibOpBlockNumberTest:testOpBlockNumberEval(uint256) (runs: 2051, μ: 50984, ~: 50757) -LibOpBlockNumberTest:testOpBlockNumberEvalOneInput() (gas: 35187) -LibOpBlockNumberTest:testOpBlockNumberEvalTwoOutputs() (gas: 31489) -LibOpBlockNumberTest:testOpBlockNumberEvalZeroOutputs() (gas: 30480) -LibOpBlockNumberTest:testOpBlockNumberIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19648, ~: 19886) -LibOpBlockNumberTest:testOpBlockNumberRun(uint256,uint16) (runs: 2051, μ: 20847, ~: 21044) -LibOpCallTest:testCallTraceInnerOnly() (gas: 63010) -LibOpCallTest:testCallTraceOuterOnly() (gas: 45581) -LibOpCallTest:testOpCallNPIntegrityIO((uint256,uint256,uint256,bytes32[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2050, μ: 39848, ~: 38587) -LibOpCallTest:testOpCallNPIntegritySourceIndexOutOfBounds((uint256,uint256,uint256,bytes32[],uint256,bytes),uint256,uint256,uint256,uint256,bytes32) (runs: 2051, μ: 59502, ~: 59319) -LibOpCallTest:testOpCallNPIntegrityTooManyOutputs((uint256,uint256,uint256,bytes32[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2049, μ: 59119, ~: 59681) -LibOpCallTest:testOpCallNPRunInputsMismatch() (gas: 71918) -LibOpCallTest:testOpCallNPRunOutputsMismatch() (gas: 65533) -LibOpCallTest:testOpCallNPRunSourceDoesNotExist() (gas: 350675) -LibOpChainIdTest:testOpChainIDEval(uint64) (runs: 2051, μ: 47048, ~: 47048) -LibOpChainIdTest:testOpChainIDIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19680, ~: 19906) -LibOpChainIdTest:testOpChainIdEvalFail() (gas: 34361) -LibOpChainIdTest:testOpChainIdRun(uint64,uint16) (runs: 2051, μ: 17123, ~: 17123) -LibOpChainIdTest:testOpChainIdTwoOutputs() (gas: 31166) -LibOpChainIdTest:testOpChainIdZeroOutputs() (gas: 30115) -LibOpConstantTest:testOpConstantEvalNPE2E() (gas: 56097) -LibOpConstantTest:testOpConstantEvalZeroConstants() (gas: 41534) -LibOpConstantTest:testOpConstantNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 19199, ~: 19095) -LibOpConstantTest:testOpConstantNPIntegrityOOBConstants((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 40170, ~: 39809) -LibOpConstantTest:testOpConstantNPMultipleOutputErrorSugared() (gas: 31673) -LibOpConstantTest:testOpConstantNPMultipleOutputErrorUnsugared() (gas: 41613) -LibOpConstantTest:testOpConstantNPRun(bytes32[],uint16) (runs: 2051, μ: 52497, ~: 51854) -LibOpConstantTest:testOpConstantNPZeroOutputErrorSugared() (gas: 30289) -LibOpConstantTest:testOpConstantNPZeroOutputErrorUnsugared() (gas: 40241) -LibOpContextNPTest:testOpContextNPEval00(bytes32[][]) (runs: 103, μ: 6722264, ~: 5447578) -LibOpContextNPTest:testOpContextNPEval01(bytes32[][]) (runs: 103, μ: 6749924, ~: 5447759) -LibOpContextNPTest:testOpContextNPEval10(bytes32[][]) (runs: 103, μ: 6722408, ~: 5447722) -LibOpContextNPTest:testOpContextNPEval11(bytes32[][]) (runs: 103, μ: 6708603, ~: 5343657) -LibOpContextNPTest:testOpContextNPEvalOOBi(bytes32[]) (runs: 103, μ: 75925, ~: 75269) -LibOpContextNPTest:testOpContextNPEvalOOBj(bytes32) (runs: 2051, μ: 48242, ~: 48242) -LibOpContextNPTest:testOpContextNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 14503, ~: 14412) -LibOpContextNPTest:testOpContextNPOneInput() (gas: 41612) -LibOpContextNPTest:testOpContextNPRun(bytes32[][],uint256,uint256) (runs: 103, μ: 10608073, ~: 7755754) -LibOpContextNPTest:testOpContextNPRunOOBi(bytes32[][],uint256,uint256) (runs: 103, μ: 10961853, ~: 8307281) -LibOpContextNPTest:testOpContextNPRunOOBj(bytes32[][],uint256,uint256) (runs: 103, μ: 10971266, ~: 8308196) -LibOpContextNPTest:testOpContextNPTwoInputs() (gas: 46476) -LibOpContextNPTest:testOpContextNPTwoOutputs() (gas: 37281) -LibOpContextNPTest:testOpContextNPZeroOutputs() (gas: 36229) -LibOpCtPopNPTest:testOpCtPopNPEval(bytes32) (runs: 2051, μ: 74502, ~: 85295) -LibOpCtPopNPTest:testOpCtPopNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13750, ~: 13659) -LibOpCtPopNPTest:testOpCtPopNPRun(bytes32) (runs: 2051, μ: 16698, ~: 16698) -LibOpCtPopNPTest:testOpCtPopNPTwoInputs() (gas: 41159) -LibOpCtPopNPTest:testOpCtPopNPTwoOutputs() (gas: 37031) -LibOpCtPopNPTest:testOpCtPopNPZeroInputs() (gas: 31296) -LibOpCtPopNPTest:testOpCtPopNPZeroOutputs() (gas: 35980) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalHappy() (gas: 835866) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoInputs() (gas: 46988) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoOutputs() (gas: 42840) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroInputs() (gas: 37171) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroOutputs() (gas: 41787) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint8,uint8) (runs: 2051, μ: 22129, ~: 22237) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFail((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8) (runs: 2051, μ: 41509, ~: 41545) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2051, μ: 35700, ~: 35423) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPRun(bytes32,uint8,uint8) (runs: 2051, μ: 20996, ~: 20814) +LibOpAnyTest:testOpAnyTwoOutputs() (gas: 35807) +LibOpAnyTest:testOpAnyZeroOutputs() (gas: 34777) +LibOpBinaryEqualToTest:testOpBinaryEqualToEval2() (gas: 207900) +LibOpBinaryEqualToTest:testOpBinaryEqualToEval2InputsBothOne() (gas: 57860) +LibOpBinaryEqualToTest:testOpBinaryEqualToEval2InputsFirstOneSecondZero() (gas: 58589) +LibOpBinaryEqualToTest:testOpBinaryEqualToEval2InputsFirstZeroSecondOne() (gas: 58591) +LibOpBinaryEqualToTest:testOpBinaryEqualToEval2ZeroInputs() (gas: 57905) +LibOpBinaryEqualToTest:testOpBinaryEqualToEvalFail0Inputs() (gas: 30647) +LibOpBinaryEqualToTest:testOpBinaryEqualToEvalFail1Input() (gas: 34967) +LibOpBinaryEqualToTest:testOpBinaryEqualToEvalFail3Inputs() (gas: 43465) +LibOpBinaryEqualToTest:testOpBinaryEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19695, ~: 19908) +LibOpBinaryEqualToTest:testOpBinaryEqualToRun(bytes32,bytes32) (runs: 2054, μ: 16674, ~: 16674) +LibOpBinaryEqualToTest:testOpBinaryEqualToTwoOutputs() (gas: 41625) +LibOpBinaryEqualToTest:testOpBinaryEqualToZeroOutputs() (gas: 40556) +LibOpBitwiseAndNPTest:testOpBitwiseAndNPEvalHappy() (gas: 720219) +LibOpBitwiseAndNPTest:testOpBitwiseAndNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13751, ~: 13661) +LibOpBitwiseAndNPTest:testOpBitwiseAndNPRun(bytes32,bytes32) (runs: 2054, μ: 16671, ~: 16671) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18225) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalOneInput() (gas: 35781) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 45550) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 41354) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 30803) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 40328) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEval() (gas: 718925) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18166) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalOneInput() (gas: 35722) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 45448) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 41272) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 30700) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 40269) +LibOpBitwiseOrNPTest:testOpBitwiseORNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13750, ~: 13660) +LibOpBitwiseOrNPTest:testOpBitwiseORNPRun(bytes32,bytes32) (runs: 2054, μ: 16628, ~: 16628) +LibOpBlockNumberTest:testOpBlockNumberEval(uint256) (runs: 2054, μ: 50990, ~: 50763) +LibOpBlockNumberTest:testOpBlockNumberEvalOneInput() (gas: 35194) +LibOpBlockNumberTest:testOpBlockNumberEvalTwoOutputs() (gas: 31495) +LibOpBlockNumberTest:testOpBlockNumberEvalZeroOutputs() (gas: 30486) +LibOpBlockNumberTest:testOpBlockNumberIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19645, ~: 19857) +LibOpBlockNumberTest:testOpBlockNumberRun(uint256,uint16) (runs: 2054, μ: 20844, ~: 20776) +LibOpCallTest:testCallTraceInnerOnly() (gas: 63017) +LibOpCallTest:testCallTraceOuterOnly() (gas: 45588) +LibOpCallTest:testOpCallNPIntegrityIO((uint256,uint256,uint256,bytes32[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2052, μ: 39879, ~: 38574) +LibOpCallTest:testOpCallNPIntegritySourceIndexOutOfBounds((uint256,uint256,uint256,bytes32[],uint256,bytes),uint256,uint256,uint256,uint256,bytes32) (runs: 2054, μ: 59254, ~: 58763) +LibOpCallTest:testOpCallNPIntegrityTooManyOutputs((uint256,uint256,uint256,bytes32[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2052, μ: 59095, ~: 59417) +LibOpCallTest:testOpCallNPRunInputsMismatch() (gas: 72599) +LibOpCallTest:testOpCallNPRunOutputsMismatch() (gas: 65540) +LibOpCallTest:testOpCallNPRunSourceDoesNotExist() (gas: 350739) +LibOpChainIdTest:testOpChainIDEval(uint64) (runs: 2054, μ: 47054, ~: 47054) +LibOpChainIdTest:testOpChainIDIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19679, ~: 19925) +LibOpChainIdTest:testOpChainIdEvalFail() (gas: 34368) +LibOpChainIdTest:testOpChainIdRun(uint64,uint16) (runs: 2054, μ: 17123, ~: 17123) +LibOpChainIdTest:testOpChainIdTwoOutputs() (gas: 31172) +LibOpChainIdTest:testOpChainIdZeroOutputs() (gas: 30121) +LibOpConditionsTest:testOpConditionsEval1FalseInput1TrueInput() (gas: 70616) +LibOpConditionsTest:testOpConditionsEval1FalseInputRevert() (gas: 54971) +LibOpConditionsTest:testOpConditionsEval1TrueInput1FalseInput() (gas: 70502) +LibOpConditionsTest:testOpConditionsEval1TrueInputZeroOutput() (gas: 58734) +LibOpConditionsTest:testOpConditionsEval2MixedInputs() (gas: 58757) +LibOpConditionsTest:testOpConditionsEval2TrueInputs() (gas: 70567) +LibOpConditionsTest:testOpConditionsEvalErrorCode() (gas: 67690) +LibOpConditionsTest:testOpConditionsEvalFail0Inputs() (gas: 30387) +LibOpConditionsTest:testOpConditionsEvalFail1Inputs() (gas: 34676) +LibOpConditionsTest:testOpConditionsEvalUnhappyOperand() (gas: 18108) +LibOpConditionsTest:testOpConditionsIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 20229, ~: 20463) +LibOpConditionsTest:testOpConditionsRun(bytes32[],bytes32) (runs: 2051, μ: 19737, ~: 19850) +LibOpConditionsTest:testOpConditionsRunNoConditionsMet(bytes32[],string) (runs: 2052, μ: 29117, ~: 29334) +LibOpConditionsTest:testOpConditionsTwoOutputs() (gas: 39977) +LibOpConditionsTest:testOpConditionsZeroOutputs() (gas: 38927) +LibOpConstantTest:testOpConstantEvalNPE2E() (gas: 56103) +LibOpConstantTest:testOpConstantEvalZeroConstants() (gas: 41541) +LibOpConstantTest:testOpConstantNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 19200, ~: 19098) +LibOpConstantTest:testOpConstantNPIntegrityOOBConstants((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 40163, ~: 39809) +LibOpConstantTest:testOpConstantNPMultipleOutputErrorSugared() (gas: 31680) +LibOpConstantTest:testOpConstantNPMultipleOutputErrorUnsugared() (gas: 41620) +LibOpConstantTest:testOpConstantNPRun(bytes32[],uint16) (runs: 2054, μ: 52459, ~: 51854) +LibOpConstantTest:testOpConstantNPZeroOutputErrorSugared() (gas: 30296) +LibOpConstantTest:testOpConstantNPZeroOutputErrorUnsugared() (gas: 40248) +LibOpContextNPTest:testOpContextNPEval00(bytes32[][]) (runs: 106, μ: 6539194, ~: 5315931) +LibOpContextNPTest:testOpContextNPEval01(bytes32[][]) (runs: 106, μ: 6566075, ~: 5316112) +LibOpContextNPTest:testOpContextNPEval10(bytes32[][]) (runs: 106, μ: 6539338, ~: 5316075) +LibOpContextNPTest:testOpContextNPEval11(bytes32[][]) (runs: 106, μ: 6525926, ~: 5266578) +LibOpContextNPTest:testOpContextNPEvalOOBi(bytes32[]) (runs: 106, μ: 75202, ~: 73799) +LibOpContextNPTest:testOpContextNPEvalOOBj(bytes32) (runs: 2054, μ: 48248, ~: 48248) +LibOpContextNPTest:testOpContextNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 14502, ~: 14412) +LibOpContextNPTest:testOpContextNPOneInput() (gas: 41619) +LibOpContextNPTest:testOpContextNPRun(bytes32[][],uint256,uint256) (runs: 106, μ: 10314801, ~: 7556896) +LibOpContextNPTest:testOpContextNPRunOOBi(bytes32[][],uint256,uint256) (runs: 106, μ: 10659905, ~: 8099472) +LibOpContextNPTest:testOpContextNPRunOOBj(bytes32[][],uint256,uint256) (runs: 106, μ: 10669066, ~: 8100387) +LibOpContextNPTest:testOpContextNPTwoInputs() (gas: 46483) +LibOpContextNPTest:testOpContextNPTwoOutputs() (gas: 37287) +LibOpContextNPTest:testOpContextNPZeroOutputs() (gas: 36235) +LibOpCtPopNPTest:testOpCtPopNPEval(bytes32) (runs: 2054, μ: 74224, ~: 85275) +LibOpCtPopNPTest:testOpCtPopNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13749, ~: 13659) +LibOpCtPopNPTest:testOpCtPopNPRun(bytes32) (runs: 2054, μ: 16698, ~: 16698) +LibOpCtPopNPTest:testOpCtPopNPTwoInputs() (gas: 41166) +LibOpCtPopNPTest:testOpCtPopNPTwoOutputs() (gas: 37038) +LibOpCtPopNPTest:testOpCtPopNPZeroInputs() (gas: 31302) +LibOpCtPopNPTest:testOpCtPopNPZeroOutputs() (gas: 35987) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalHappy() (gas: 835992) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoInputs() (gas: 46995) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoOutputs() (gas: 42847) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroInputs() (gas: 37177) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroOutputs() (gas: 41794) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint8,uint8) (runs: 2054, μ: 22150, ~: 22229) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFail((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8) (runs: 2054, μ: 41500, ~: 41545) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2054, μ: 35697, ~: 35423) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPRun(bytes32,uint8,uint8) (runs: 2054, μ: 21020, ~: 20814) LibOpDivTest:testDebugOpDivRun() (gas: 13482) -LibOpDivTest:testOpDivEvalOneInput() (gas: 126404) -LibOpDivTest:testOpDivEvalOperandsDisallowed() (gas: 91591) -LibOpDivTest:testOpDivEvalThreeInputsHappy() (gas: 337529) -LibOpDivTest:testOpDivEvalThreeInputsUnhappy() (gas: 212026) -LibOpDivTest:testOpDivEvalThreeInputsUnhappyOverflow() (gas: 63035) -LibOpDivTest:testOpDivEvalTwoInputsHappy() (gas: 295907) -LibOpDivTest:testOpDivEvalTwoInputsUnhappy() (gas: 143707) -LibOpDivTest:testOpDivEvalTwoInputsUnhappyOverflow() (gas: 56431) -LibOpDivTest:testOpDivEvalTwoOutputs() (gas: 41242) -LibOpDivTest:testOpDivEvalZeroInputs() (gas: 30194) -LibOpDivTest:testOpDivEvalZeroOutputs() (gas: 40238) -LibOpDivTest:testOpDivIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18255, ~: 18425) -LibOpDivTest:testOpDivIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13826, ~: 13686) -LibOpDivTest:testOpDivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13849, ~: 13709) -LibOpDivTest:testOpDivRun(bytes32[]) (runs: 2048, μ: 37656, ~: 33698) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalFourInputs() (gas: 55871) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalHappy(uint256,uint8) (runs: 2051, μ: 72167, ~: 72071) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalOneInput() (gas: 37127) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalOperandDisallowed() (gas: 18624) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalTwoInputs() (gas: 43658) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalTwoOutputs() (gas: 50690) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalZeroInputs() (gas: 31134) -LibOpERC20AllowanceTest:testOpERC20AllowanceEvalZeroOutputs() (gas: 49666) -LibOpERC20AllowanceTest:testOpERC20AllowanceIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13714, ~: 13623) -LibOpERC20AllowanceTest:testOpERC20AllowanceRun(address,address,address,uint256,uint8) (runs: 2050, μ: 27668, ~: 27579) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalHappy(uint256,uint8) (runs: 2051, μ: 66083, ~: 66083) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalOneInput() (gas: 37232) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalOperandDisallowed() (gas: 18682) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalOverflow(uint256,uint8) (runs: 2048, μ: 62356, ~: 62356) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalThreeInputs() (gas: 49559) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalTwoOutputs() (gas: 44428) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroInputs() (gas: 31193) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroOutputs() (gas: 43360) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13693, ~: 13602) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfRun(address,address,uint256,uint16,uint8) (runs: 2050, μ: 28009, ~: 28009) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalHappy(uint256,uint8) (runs: 2050, μ: 59252, ~: 59252) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalOperandDisallowed() (gas: 18845) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalOverflow(uint256,uint8) (runs: 2049, μ: 55492, ~: 55492) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoInputs() (gas: 43880) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoOutputs() (gas: 38242) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroInputs() (gas: 31376) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroOutputs() (gas: 37214) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13737, ~: 13646) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPRun(address,uint256,uint16,uint8) (runs: 2049, μ: 27211, ~: 27211) -LibOpERC5313OwnerTest:testOpERC5313OwnerEvalHappy() (gas: 55273) -LibOpERC5313OwnerTest:testOpERC5313OwnerEvalOperandDisallowed() (gas: 18363) -LibOpERC5313OwnerTest:testOpERC5313OwnerEvalTwoInputs() (gas: 43476) -LibOpERC5313OwnerTest:testOpERC5313OwnerEvalTwoOutputs() (gas: 37679) -LibOpERC5313OwnerTest:testOpERC5313OwnerEvalZeroInputs() (gas: 30970) -LibOpERC5313OwnerTest:testOpERC5313OwnerEvalZeroOutputs() (gas: 36650) -LibOpERC5313OwnerTest:testOpERC5313OwnerOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13754, ~: 13663) -LibOpERC5313OwnerTest:testOpERC5313OwnerOfRun(address,address,uint16) (runs: 2050, μ: 23615, ~: 23615) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfEvalHappy(address,address,uint256) (runs: 2050, μ: 105341, ~: 105495) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19663, ~: 19911) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail0() (gas: 30837) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail1() (gas: 35126) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail3() (gas: 44560) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFailOperand() (gas: 21566) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfOneInput() (gas: 35593) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfRun(address,address,uint256,uint16) (runs: 2050, μ: 26008, ~: 26008) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfThreeInputs() (gas: 45080) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfTwoOutputs() (gas: 41087) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfZeroInputs() (gas: 31271) -LibOpERC721BalanceOfTest:testOpERC721BalanceOfZeroOutputs() (gas: 39905) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail0() (gas: 30720) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail1() (gas: 35007) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail3() (gas: 44496) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFailOperand() (gas: 18215) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalHappy(address,uint256,address) (runs: 2050, μ: 96383, ~: 92431) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalOneInput() (gas: 35465) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalThreeInputs() (gas: 44961) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroInputs() (gas: 31167) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroOutputs() (gas: 39756) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2051, μ: 13767, ~: 13698) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPRun(address,bytes32,address,uint16) (runs: 2050, μ: 24201, ~: 24201) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPTwoOutputs() (gas: 40802) -LibOpETest:testOpEEval() (gas: 44605) -LibOpETest:testOpEEvalOneInput() (gas: 34273) -LibOpETest:testOpEEvalTwoOutputs() (gas: 30641) -LibOpETest:testOpEEvalZeroOutputs() (gas: 29590) -LibOpETest:testOpEIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19694, ~: 19933) -LibOpETest:testOpERun(uint16) (runs: 2051, μ: 16132, ~: 16132) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalHappy() (gas: 833016) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalOneInput() (gas: 42063) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalThreeInputs() (gas: 51810) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalTwoOutputs() (gas: 47636) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroInputs() (gas: 37085) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroOutputs() (gas: 46632) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8) (runs: 2051, μ: 18152, ~: 18134) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFail((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8) (runs: 2051, μ: 41712, ~: 41753) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2051, μ: 35829, ~: 35552) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPRun(bytes32,bytes32,uint8,uint8) (runs: 2051, μ: 21403, ~: 21212) -LibOpEnsureTest:testOpEnsureEvalBadOutputs() (gas: 34441) -LibOpEnsureTest:testOpEnsureEvalBadOutputs2() (gas: 33966) -LibOpEnsureTest:testOpEnsureEvalHappy() (gas: 166064) -LibOpEnsureTest:testOpEnsureEvalOne() (gas: 34653) -LibOpEnsureTest:testOpEnsureEvalThree() (gas: 45371) -LibOpEnsureTest:testOpEnsureEvalUnhappy() (gas: 164760) -LibOpEnsureTest:testOpEnsureEvalUnhappyOperand() (gas: 17066) -LibOpEnsureTest:testOpEnsureEvalZero() (gas: 29650) -LibOpEnsureTest:testOpEnsureIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19726, ~: 19951) -LibOpEnsureTest:testOpEnsureIntegrityUnhappy((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13817, ~: 13677) -LibOpEnsureTest:testOpEnsureOneOutput() (gas: 39609) -LibOpEnsureTest:testOpEnsureRun(bytes32,string) (runs: 2050, μ: 18038, ~: 18106) -LibOpEqualToNPTest:testOpEqualToEval2Inputs() (gas: 339353) -LibOpEqualToNPTest:testOpEqualToEval2InputsBothOne() (gas: 57665) -LibOpEqualToNPTest:testOpEqualToEval2InputsFirstOneSecondZero() (gas: 58352) -LibOpEqualToNPTest:testOpEqualToEval2InputsFirstZeroSecondOne() (gas: 58355) -LibOpEqualToNPTest:testOpEqualToEval2ZeroInputs() (gas: 57688) -LibOpEqualToNPTest:testOpEqualToEvalFail0Inputs() (gas: 30074) -LibOpEqualToNPTest:testOpEqualToEvalFail1Input() (gas: 34384) -LibOpEqualToNPTest:testOpEqualToEvalFail3Inputs() (gas: 42808) -LibOpEqualToNPTest:testOpEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19682, ~: 19915) -LibOpEqualToNPTest:testOpEqualToRun(bytes32,bytes32) (runs: 2051, μ: 17542, ~: 17466) -LibOpEqualToNPTest:testOpEqualToTwoOutputs() (gas: 41073) -LibOpEqualToNPTest:testOpEqualToZeroOutputs() (gas: 39982) -LibOpEveryTest:testOpAnyEvalFail() (gas: 29901) -LibOpEveryTest:testOpEveryEval1FalseInput() (gas: 52073) -LibOpEveryTest:testOpEveryEval1TrueInput() (gas: 52309) -LibOpEveryTest:testOpEveryEval2FalseInputs() (gas: 57255) -LibOpEveryTest:testOpEveryEval2MixedInputs() (gas: 58027) -LibOpEveryTest:testOpEveryEval2MixedInputs2() (gas: 57921) -LibOpEveryTest:testOpEveryEval2TrueInputs() (gas: 58264) -LibOpEveryTest:testOpEveryIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19840, ~: 20098) -LibOpEveryTest:testOpEveryIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13821, ~: 13681) -LibOpEveryTest:testOpEveryRun(bytes32[]) (runs: 2048, μ: 20825, ~: 20864) -LibOpEveryTest:testOpEveryTwoOutputs() (gas: 36022) -LibOpEveryTest:testOpEveryZeroOutputs() (gas: 34949) -LibOpExternNPTest:testOpExternNPEvalHappy() (gas: 99780) -LibOpExternNPTest:testOpExternNPEvalMultipleInputsOutputsHappy() (gas: 115350) -LibOpExternNPTest:testOpExternNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2051, μ: 34965, ~: 34946) -LibOpExternNPTest:testOpExternNPIntegrityNotAnExternContract((uint256,uint256,uint256,bytes32[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2051, μ: 53474, ~: 53548) -LibOpExternNPTest:testOpExternNPRunHappy(address,bytes32[],uint16,bytes32[],bytes32[]) (runs: 2050, μ: 117760, ~: 117631) -LibOpGetTest:testLibOpGetEvalKeyNotSet() (gas: 308822) -LibOpGetTest:testLibOpGetEvalOperandDisallowed() (gas: 57564) -LibOpGetTest:testLibOpGetEvalSetThenGet() (gas: 522743) -LibOpGetTest:testLibOpGetEvalStoreAndSetAndGet() (gas: 255618) -LibOpGetTest:testLibOpGetEvalStoreThenGet() (gas: 476248) -LibOpGetTest:testLibOpGetEvalThreeInputs() (gas: 45009) -LibOpGetTest:testLibOpGetEvalTwoInputs() (gas: 39768) -LibOpGetTest:testLibOpGetEvalTwoOutputs() (gas: 35359) -LibOpGetTest:testLibOpGetEvalZeroInputs() (gas: 29783) -LibOpGetTest:testLibOpGetEvalZeroOutputs() (gas: 34329) -LibOpGetTest:testLibOpGetIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 20559, ~: 20814) -LibOpGetTest:testLibOpGetRunState(bytes32,bytes32,uint16) (runs: 2051, μ: 19634, ~: 19638) -LibOpGetTest:testLibOpGetRunStateAndStore(bytes32,bytes32,bytes32,uint16) (runs: 2051, μ: 47596, ~: 47610) -LibOpGetTest:testLibOpGetRunStore(bytes32,bytes32,uint16) (runs: 2051, μ: 49831, ~: 49835) -LibOpGetTest:testLibOpGetRunStoreDifferentNamespace(bytes32,bytes32,uint16) (runs: 2051, μ: 51423, ~: 51427) -LibOpGetTest:testLibOpGetRunUnset(bytes32,uint16) (runs: 2051, μ: 24664, ~: 24668) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2InputsBothOne() (gas: 59044) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2InputsFirstOneSecondZero() (gas: 59752) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2InputsFirstZeroSecondOne() (gas: 59752) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2ZeroInputs() (gas: 59087) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEvalFail0Inputs() (gas: 31391) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEvalFail1Input() (gas: 35819) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEvalFail3Inputs() (gas: 44168) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2051, μ: 13746, ~: 13677) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToRun(bytes32,bytes32) (runs: 2051, μ: 17394, ~: 17323) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToTwoOutputs() (gas: 43012) -LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToZeroOutputs() (gas: 41787) -LibOpGreaterThanTest:testOpGreaterThanEval1_0Gt1() (gas: 58599) -LibOpGreaterThanTest:testOpGreaterThanEval1_1Gt1_2() (gas: 61201) -LibOpGreaterThanTest:testOpGreaterThanEval2InputsBothOne() (gas: 57914) -LibOpGreaterThanTest:testOpGreaterThanEval2InputsFirstOneSecondZero() (gas: 58646) -LibOpGreaterThanTest:testOpGreaterThanEval2InputsFirstZeroSecondOne() (gas: 58665) -LibOpGreaterThanTest:testOpGreaterThanEval2ZeroInputs() (gas: 57935) -LibOpGreaterThanTest:testOpGreaterThanEvalFail0Inputs() (gas: 30442) -LibOpGreaterThanTest:testOpGreaterThanEvalFail1Input() (gas: 34762) -LibOpGreaterThanTest:testOpGreaterThanEvalFail3Inputs() (gas: 43103) -LibOpGreaterThanTest:testOpGreaterThanEvalNeg1Gt0() (gas: 58698) -LibOpGreaterThanTest:testOpGreaterThanEvalNeg1_1GtNeg1_2() (gas: 61402) -LibOpGreaterThanTest:testOpGreaterThanIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19690, ~: 19961) -LibOpGreaterThanTest:testOpGreaterThanRun(bytes32,bytes32) (runs: 2051, μ: 17418, ~: 17347) -LibOpGreaterThanTest:testOpGreaterThanTwoOutputs() (gas: 41861) -LibOpGreaterThanTest:testOpGreaterThanZeroOutputs() (gas: 40813) -LibOpHashNPTest:testOpHashNPEval0Inputs() (gas: 46316) -LibOpHashNPTest:testOpHashNPEval1Input() (gas: 54925) -LibOpHashNPTest:testOpHashNPEval2Inputs() (gas: 63268) -LibOpHashNPTest:testOpHashNPEval2InputsDifferent() (gas: 63941) -LibOpHashNPTest:testOpHashNPEval2InputsOtherStack() (gas: 78496) -LibOpHashNPTest:testOpHashNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19714, ~: 19956) -LibOpHashNPTest:testOpHashNPRun(bytes32[]) (runs: 2048, μ: 19459, ~: 19563) -LibOpHashNPTest:testOpHashNPTwoOutputs() (gas: 30851) -LibOpHashNPTest:testOpHashNPZeroOutputs() (gas: 29477) -LibOpIfTest:testOpIfEval3InputsFirstOneSecondTwoThirdThree() (gas: 63689) -LibOpIfTest:testOpIfEval3InputsFirstOneSecondZeroThirdThree() (gas: 63441) -LibOpIfTest:testOpIfEval3InputsFirstTwoSecondThreeThirdFour() (gas: 63645) -LibOpIfTest:testOpIfEval3InputsFirstTwoSecondZeroThirdFour() (gas: 63441) -LibOpIfTest:testOpIfEval3InputsFirstZeroSecondOneThirdTwo() (gas: 63688) -LibOpIfTest:testOpIfEval3InputsFirstZeroSecondOneThirdZero() (gas: 62888) -LibOpIfTest:testOpIfEval3InputsFirstZeroSecondZeroThirdOne() (gas: 62936) -LibOpIfTest:testOpIfEval3InputsFirstZeroSecondZeroThirdThree() (gas: 62939) -LibOpIfTest:testOpIfEvalEmptyStringTruthy() (gas: 163758) -LibOpIfTest:testOpIfEvalFail0Inputs() (gas: 29610) -LibOpIfTest:testOpIfEvalFail1Input() (gas: 33964) -LibOpIfTest:testOpIfEvalFail2Inputs() (gas: 38093) -LibOpIfTest:testOpIfEvalFail4Inputs() (gas: 46461) -LibOpIfTest:testOpIfEvalTwoOutputs() (gas: 45965) -LibOpIfTest:testOpIfEvalZeroExponent() (gas: 64993) -LibOpIfTest:testOpIfEvalZeroOutputs() (gas: 44896) -LibOpIfTest:testOpIfIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19683, ~: 19905) -LibOpIfTest:testOpIfRun(bytes32,bytes32,bytes32) (runs: 2051, μ: 17013, ~: 17014) -LibOpInvTest:testOpExpEvalOperandDisallowed() (gas: 17613) -LibOpInvTest:testOpInvEval() (gas: 176898) -LibOpInvTest:testOpInvIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13751, ~: 13660) -LibOpInvTest:testOpInvRun(int224,int32,uint16) (runs: 2051, μ: 25067, ~: 25219) -LibOpInvTest:testOpInvTwoInputs() (gas: 40085) -LibOpInvTest:testOpInvTwoOutputs() (gas: 35871) -LibOpInvTest:testOpInvZeroInputs() (gas: 30202) -LibOpInvTest:testOpInvZeroOutputs() (gas: 34864) -LibOpIsZeroTest:testOpIsZeroEval0e20Input() (gas: 53363) -LibOpIsZeroTest:testOpIsZeroEval1NonZeroInput() (gas: 52321) -LibOpIsZeroTest:testOpIsZeroEval1ZeroInput() (gas: 52058) -LibOpIsZeroTest:testOpIsZeroEvalFail0Inputs() (gas: 29983) -LibOpIsZeroTest:testOpIsZeroEvalFail2Inputs() (gas: 38541) -LibOpIsZeroTest:testOpIsZeroNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19786, ~: 20035) -LibOpIsZeroTest:testOpIsZeroRun(bytes32) (runs: 2051, μ: 16420, ~: 16421) -LibOpIsZeroTest:testOpIsZeroTwoOutputs() (gas: 36376) -LibOpIsZeroTest:testOpIsZeroZeroOutputs() (gas: 35082) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2InputsBothOne() (gas: 57225) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2InputsFirstOneSecondZero() (gas: 57936) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2InputsFirstZeroSecondOne() (gas: 57957) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2ZeroInputs() (gas: 57249) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEvalFail0Inputs() (gas: 31126) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEvalFail1Input() (gas: 35481) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEvalFail3Inputs() (gas: 43945) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19680, ~: 19856) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToRun(bytes32,bytes32) (runs: 2051, μ: 17400, ~: 17329) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToTwoOutputs() (gas: 42612) -LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToZeroOutputs() (gas: 41565) -LibOpLessThanTest:testOpLessThanEval2InputsFirstZeroSecondOne() (gas: 58422) -LibOpLessThanTest:testOpLessThanEval2ZeroInputs() (gas: 57670) -LibOpLessThanTest:testOpLessThanIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19696, ~: 19928) -LibOpLessThanTest:testOpLessThanNP1_0Lt1() (gas: 58423) -LibOpLessThanTest:testOpLessThanNP1_1Lt1_2() (gas: 60914) -LibOpLessThanTest:testOpLessThanNPEval2InputsBothOne() (gas: 57694) -LibOpLessThanTest:testOpLessThanNPEval2InputsFirstOneSecondZero() (gas: 58379) -LibOpLessThanTest:testOpLessThanNPMinus1Lt0() (gas: 58477) -LibOpLessThanTest:testOpLessThanNPMinus1_1LtMinus1_2() (gas: 61138) -LibOpLessThanTest:testOpLessThanNPTwoOutputs() (gas: 41947) -LibOpLessThanTest:testOpLessThanNPZeroOutputs() (gas: 40061) -LibOpLessThanTest:testOpLessThanRun(bytes32,bytes32) (runs: 2051, μ: 17424, ~: 17353) -LibOpLessThanTest:testOpLessThanToNPEvalFail0Inputs() (gas: 30177) -LibOpLessThanTest:testOpLessThanToNPEvalFail1Input() (gas: 34466) -LibOpLessThanTest:testOpLessThanToNPEvalFail3Inputs() (gas: 42846) -LibOpLinearGrowthTest:testOpLinearGrowthEval() (gas: 783657) -LibOpLinearGrowthTest:testOpLinearGrowthEvalFourInputs() (gas: 51206) -LibOpLinearGrowthTest:testOpLinearGrowthEvalOneInput() (gas: 36032) -LibOpLinearGrowthTest:testOpLinearGrowthEvalOperandDisallowed() (gas: 18401) -LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoInputs() (gas: 41382) -LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoOutputs() (gas: 46898) -LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroInputs() (gas: 30625) -LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroOutputs() (gas: 45849) -LibOpLinearGrowthTest:testOpLinearGrowthIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13750, ~: 13659) -LibOpLinearGrowthTest:testOpLinearGrowthRun(int224,int32,int224,int32,int224,int32,uint16) (runs: 2051, μ: 36138, ~: 36716) -LibOpMaxTest:testOpMaxEval2InputsHappy() (gas: 880639) -LibOpMaxTest:testOpMaxEval3InputsHappy() (gas: 2030319) -LibOpMaxTest:testOpMaxEvalOneInput() (gas: 129141) -LibOpMaxTest:testOpMaxEvalOperandDisallowed() (gas: 58961) -LibOpMaxTest:testOpMaxEvalTwoOutputs() (gas: 40756) -LibOpMaxTest:testOpMaxEvalZeroInputs() (gas: 30196) -LibOpMaxTest:testOpMaxIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18207, ~: 18442) -LibOpMaxTest:testOpMaxIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13827, ~: 13687) -LibOpMaxTest:testOpMaxIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13849, ~: 13709) -LibOpMaxTest:testOpMaxRun(bytes32[]) (runs: 2048, μ: 26611, ~: 26452) -LibOpMaxUint256Test:testOpMaxUint256Eval() (gas: 47311) -LibOpMaxUint256Test:testOpMaxUint256EvalFail() (gas: 35134) -LibOpMaxUint256Test:testOpMaxUint256Integrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19659, ~: 19908) +LibOpDivTest:testOpDivEvalOneInput() (gas: 126431) +LibOpDivTest:testOpDivEvalOperandsDisallowed() (gas: 91627) +LibOpDivTest:testOpDivEvalThreeInputsHappy() (gas: 337566) +LibOpDivTest:testOpDivEvalThreeInputsUnhappy() (gas: 212052) +LibOpDivTest:testOpDivEvalThreeInputsUnhappyOverflow() (gas: 63042) +LibOpDivTest:testOpDivEvalTwoInputsHappy() (gas: 295945) +LibOpDivTest:testOpDivEvalTwoInputsUnhappy() (gas: 143727) +LibOpDivTest:testOpDivEvalTwoInputsUnhappyOverflow() (gas: 56438) +LibOpDivTest:testOpDivEvalTwoOutputs() (gas: 41248) +LibOpDivTest:testOpDivEvalZeroInputs() (gas: 30200) +LibOpDivTest:testOpDivEvalZeroOutputs() (gas: 40244) +LibOpDivTest:testOpDivIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18254, ~: 18479) +LibOpDivTest:testOpDivIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13825, ~: 13686) +LibOpDivTest:testOpDivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13848, ~: 13709) +LibOpDivTest:testOpDivRun(bytes32[]) (runs: 2051, μ: 37557, ~: 33598) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalFourInputs() (gas: 55878) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalHappy(uint256,uint8) (runs: 2054, μ: 72175, ~: 72078) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalOneInput() (gas: 37134) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalOperandDisallowed() (gas: 18631) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalTwoInputs() (gas: 43664) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalTwoOutputs() (gas: 50697) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalZeroInputs() (gas: 31140) +LibOpERC20AllowanceTest:testOpERC20AllowanceEvalZeroOutputs() (gas: 49673) +LibOpERC20AllowanceTest:testOpERC20AllowanceIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13713, ~: 13623) +LibOpERC20AllowanceTest:testOpERC20AllowanceRun(address,address,address,uint256,uint8) (runs: 2053, μ: 27672, ~: 27579) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalHappy(uint256,uint8) (runs: 2054, μ: 66089, ~: 66089) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalOneInput() (gas: 37239) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalOperandDisallowed() (gas: 18689) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalOverflow(uint256,uint8) (runs: 2048, μ: 62362, ~: 62362) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalThreeInputs() (gas: 49565) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalTwoOutputs() (gas: 44434) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroInputs() (gas: 31199) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroOutputs() (gas: 43366) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13692, ~: 13602) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfRun(address,address,uint256,uint16,uint8) (runs: 2052, μ: 28009, ~: 28009) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalHappy(uint256,uint8) (runs: 2054, μ: 59258, ~: 59258) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalOperandDisallowed() (gas: 18852) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalOverflow(uint256,uint8) (runs: 2048, μ: 55498, ~: 55498) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoInputs() (gas: 43886) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoOutputs() (gas: 38248) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroInputs() (gas: 31382) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroOutputs() (gas: 37220) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13736, ~: 13646) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPRun(address,uint256,uint16,uint8) (runs: 2052, μ: 27211, ~: 27211) +LibOpERC5313OwnerTest:testOpERC5313OwnerEvalHappy() (gas: 55280) +LibOpERC5313OwnerTest:testOpERC5313OwnerEvalOperandDisallowed() (gas: 18369) +LibOpERC5313OwnerTest:testOpERC5313OwnerEvalTwoInputs() (gas: 43482) +LibOpERC5313OwnerTest:testOpERC5313OwnerEvalTwoOutputs() (gas: 37686) +LibOpERC5313OwnerTest:testOpERC5313OwnerEvalZeroInputs() (gas: 30976) +LibOpERC5313OwnerTest:testOpERC5313OwnerEvalZeroOutputs() (gas: 36657) +LibOpERC5313OwnerTest:testOpERC5313OwnerOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13753, ~: 13663) +LibOpERC5313OwnerTest:testOpERC5313OwnerOfRun(address,address,uint16) (runs: 2053, μ: 23615, ~: 23615) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfEvalHappy(address,address,uint256) (runs: 2052, μ: 105354, ~: 105527) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19666, ~: 19901) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail0() (gas: 30843) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail1() (gas: 35133) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail3() (gas: 44567) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFailOperand() (gas: 21573) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfOneInput() (gas: 35600) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfRun(address,address,uint256,uint16) (runs: 2052, μ: 26008, ~: 26008) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfThreeInputs() (gas: 45087) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfTwoOutputs() (gas: 41093) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfZeroInputs() (gas: 31277) +LibOpERC721BalanceOfTest:testOpERC721BalanceOfZeroOutputs() (gas: 39911) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail0() (gas: 30726) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail1() (gas: 35014) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail3() (gas: 44503) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFailOperand() (gas: 18222) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalHappy(address,uint256,address) (runs: 2053, μ: 96516, ~: 92464) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalOneInput() (gas: 35472) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalThreeInputs() (gas: 44968) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroInputs() (gas: 31173) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroOutputs() (gas: 39762) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2054, μ: 13766, ~: 13698) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPRun(address,bytes32,address,uint16) (runs: 2053, μ: 24201, ~: 24201) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPTwoOutputs() (gas: 40808) +LibOpETest:testOpEEval() (gas: 44611) +LibOpETest:testOpEEvalOneInput() (gas: 34280) +LibOpETest:testOpEEvalTwoOutputs() (gas: 30647) +LibOpETest:testOpEEvalZeroOutputs() (gas: 29596) +LibOpETest:testOpEIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19700, ~: 19962) +LibOpETest:testOpERun(uint16) (runs: 2054, μ: 16132, ~: 16132) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalHappy() (gas: 833112) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalOneInput() (gas: 42070) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalThreeInputs() (gas: 51817) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalTwoOutputs() (gas: 47643) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroInputs() (gas: 37091) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroOutputs() (gas: 46639) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8) (runs: 2054, μ: 18150, ~: 18198) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFail((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8) (runs: 2054, μ: 41711, ~: 41748) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2054, μ: 35826, ~: 35552) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPRun(bytes32,bytes32,uint8,uint8) (runs: 2054, μ: 21404, ~: 21212) +LibOpEnsureTest:testOpEnsureEvalBadOutputs() (gas: 34447) +LibOpEnsureTest:testOpEnsureEvalBadOutputs2() (gas: 33972) +LibOpEnsureTest:testOpEnsureEvalHappy() (gas: 166082) +LibOpEnsureTest:testOpEnsureEvalOne() (gas: 34660) +LibOpEnsureTest:testOpEnsureEvalThree() (gas: 45377) +LibOpEnsureTest:testOpEnsureEvalUnhappy() (gas: 164823) +LibOpEnsureTest:testOpEnsureEvalUnhappyOperand() (gas: 17072) +LibOpEnsureTest:testOpEnsureEvalZero() (gas: 29656) +LibOpEnsureTest:testOpEnsureIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19727, ~: 19948) +LibOpEnsureTest:testOpEnsureIntegrityUnhappy((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13816, ~: 13677) +LibOpEnsureTest:testOpEnsureOneOutput() (gas: 39615) +LibOpEnsureTest:testOpEnsureRun(bytes32,string) (runs: 2051, μ: 18056, ~: 18106) +LibOpEqualToNPTest:testOpEqualToEval2Inputs() (gas: 339399) +LibOpEqualToNPTest:testOpEqualToEval2InputsBothOne() (gas: 57672) +LibOpEqualToNPTest:testOpEqualToEval2InputsFirstOneSecondZero() (gas: 58358) +LibOpEqualToNPTest:testOpEqualToEval2InputsFirstZeroSecondOne() (gas: 58361) +LibOpEqualToNPTest:testOpEqualToEval2ZeroInputs() (gas: 57695) +LibOpEqualToNPTest:testOpEqualToEvalFail0Inputs() (gas: 30080) +LibOpEqualToNPTest:testOpEqualToEvalFail1Input() (gas: 34391) +LibOpEqualToNPTest:testOpEqualToEvalFail3Inputs() (gas: 42815) +LibOpEqualToNPTest:testOpEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19679, ~: 19944) +LibOpEqualToNPTest:testOpEqualToRun(bytes32,bytes32) (runs: 2054, μ: 17544, ~: 17466) +LibOpEqualToNPTest:testOpEqualToTwoOutputs() (gas: 41080) +LibOpEqualToNPTest:testOpEqualToZeroOutputs() (gas: 39989) +LibOpEveryTest:testOpEveryEval1FalseInput() (gas: 52036) +LibOpEveryTest:testOpEveryEval1TrueInput() (gas: 52316) +LibOpEveryTest:testOpEveryEval2FalseInputs() (gas: 57219) +LibOpEveryTest:testOpEveryEval2MixedInputs() (gas: 58010) +LibOpEveryTest:testOpEveryEval2MixedInputs2() (gas: 57949) +LibOpEveryTest:testOpEveryEval2TrueInputs() (gas: 58292) +LibOpEveryTest:testOpEveryEvalFail() (gas: 29886) +LibOpEveryTest:testOpEveryEvalZeroWithExponent() (gas: 58989) +LibOpEveryTest:testOpEveryIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19805, ~: 20104) +LibOpEveryTest:testOpEveryIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13864, ~: 13725) +LibOpEveryTest:testOpEveryRun(bytes32[]) (runs: 2051, μ: 20834, ~: 20873) +LibOpEveryTest:testOpEveryTwoOutputs() (gas: 36007) +LibOpEveryTest:testOpEveryZeroOutputs() (gas: 34978) +LibOpExternNPTest:testOpExternNPEvalHappy() (gas: 99786) +LibOpExternNPTest:testOpExternNPEvalMultipleInputsOutputsHappy() (gas: 115356) +LibOpExternNPTest:testOpExternNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2053, μ: 34952, ~: 34868) +LibOpExternNPTest:testOpExternNPIntegrityNotAnExternContract((uint256,uint256,uint256,bytes32[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2053, μ: 53440, ~: 53572) +LibOpExternNPTest:testOpExternNPRunHappy(address,bytes32[],uint16,bytes32[],bytes32[]) (runs: 2053, μ: 117914, ~: 117792) +LibOpFracTest:testOpFracEval() (gas: 253604) +LibOpFracTest:testOpFracEvalOperandDisallowed() (gas: 17638) +LibOpFracTest:testOpFracIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13792, ~: 13702) +LibOpFracTest:testOpFracRun(bytes32,uint16) (runs: 2054, μ: 17113, ~: 17096) +LibOpFracTest:testOpFracTwoInputs() (gas: 40077) +LibOpFracTest:testOpFracTwoOutputs() (gas: 35928) +LibOpFracTest:testOpFracZeroInputs() (gas: 30213) +LibOpFracTest:testOpFracZeroOutputs() (gas: 34876) +LibOpGetTest:testLibOpGetEvalKeyNotSet() (gas: 308862) +LibOpGetTest:testLibOpGetEvalOperandDisallowed() (gas: 57588) +LibOpGetTest:testLibOpGetEvalSetThenGet() (gas: 522785) +LibOpGetTest:testLibOpGetEvalStoreAndSetAndGet() (gas: 255636) +LibOpGetTest:testLibOpGetEvalStoreThenGet() (gas: 476302) +LibOpGetTest:testLibOpGetEvalThreeInputs() (gas: 45015) +LibOpGetTest:testLibOpGetEvalTwoInputs() (gas: 39774) +LibOpGetTest:testLibOpGetEvalTwoOutputs() (gas: 35366) +LibOpGetTest:testLibOpGetEvalZeroInputs() (gas: 29789) +LibOpGetTest:testLibOpGetEvalZeroOutputs() (gas: 34336) +LibOpGetTest:testLibOpGetIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 20564, ~: 20826) +LibOpGetTest:testLibOpGetRunState(bytes32,bytes32,uint16) (runs: 2054, μ: 19634, ~: 19638) +LibOpGetTest:testLibOpGetRunStateAndStore(bytes32,bytes32,bytes32,uint16) (runs: 2054, μ: 47596, ~: 47610) +LibOpGetTest:testLibOpGetRunStore(bytes32,bytes32,uint16) (runs: 2054, μ: 49831, ~: 49835) +LibOpGetTest:testLibOpGetRunStoreDifferentNamespace(bytes32,bytes32,uint16) (runs: 2054, μ: 51423, ~: 51427) +LibOpGetTest:testLibOpGetRunUnset(bytes32,uint16) (runs: 2054, μ: 24664, ~: 24668) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2InputsBothOne() (gas: 59724) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2InputsFirstOneSecondZero() (gas: 60432) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2InputsFirstZeroSecondOne() (gas: 60432) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEval2ZeroInputs() (gas: 59767) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEvalFail0Inputs() (gas: 32071) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEvalFail1Input() (gas: 36499) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToEvalFail3Inputs() (gas: 44848) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2054, μ: 13745, ~: 13677) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToRun(bytes32,bytes32) (runs: 2054, μ: 17393, ~: 17323) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToTwoOutputs() (gas: 43692) +LibOpGreaterThanOrEqualToTest:testOpGreaterThanOrEqualToZeroOutputs() (gas: 42467) +LibOpGreaterThanTest:testOpGreaterThanEval1_0Gt1() (gas: 58606) +LibOpGreaterThanTest:testOpGreaterThanEval1_1Gt1_2() (gas: 61207) +LibOpGreaterThanTest:testOpGreaterThanEval2InputsBothOne() (gas: 57921) +LibOpGreaterThanTest:testOpGreaterThanEval2InputsFirstOneSecondZero() (gas: 58652) +LibOpGreaterThanTest:testOpGreaterThanEval2InputsFirstZeroSecondOne() (gas: 58671) +LibOpGreaterThanTest:testOpGreaterThanEval2ZeroInputs() (gas: 57942) +LibOpGreaterThanTest:testOpGreaterThanEvalFail0Inputs() (gas: 30448) +LibOpGreaterThanTest:testOpGreaterThanEvalFail1Input() (gas: 34769) +LibOpGreaterThanTest:testOpGreaterThanEvalFail3Inputs() (gas: 43110) +LibOpGreaterThanTest:testOpGreaterThanEvalNeg1Gt0() (gas: 58704) +LibOpGreaterThanTest:testOpGreaterThanEvalNeg1_1GtNeg1_2() (gas: 61408) +LibOpGreaterThanTest:testOpGreaterThanIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19694, ~: 19923) +LibOpGreaterThanTest:testOpGreaterThanRun(bytes32,bytes32) (runs: 2054, μ: 17419, ~: 17347) +LibOpGreaterThanTest:testOpGreaterThanTwoOutputs() (gas: 41867) +LibOpGreaterThanTest:testOpGreaterThanZeroOutputs() (gas: 40819) +LibOpHashNPTest:testOpHashNPEval0Inputs() (gas: 46322) +LibOpHashNPTest:testOpHashNPEval1Input() (gas: 54932) +LibOpHashNPTest:testOpHashNPEval2Inputs() (gas: 63274) +LibOpHashNPTest:testOpHashNPEval2InputsDifferent() (gas: 63947) +LibOpHashNPTest:testOpHashNPEval2InputsOtherStack() (gas: 78502) +LibOpHashNPTest:testOpHashNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19701, ~: 19956) +LibOpHashNPTest:testOpHashNPRun(bytes32[]) (runs: 2051, μ: 19459, ~: 19563) +LibOpHashNPTest:testOpHashNPTwoOutputs() (gas: 30857) +LibOpHashNPTest:testOpHashNPZeroOutputs() (gas: 29483) +LibOpIfTest:testOpIfEval3InputsFirstOneSecondTwoThirdThree() (gas: 63695) +LibOpIfTest:testOpIfEval3InputsFirstOneSecondZeroThirdThree() (gas: 63447) +LibOpIfTest:testOpIfEval3InputsFirstTwoSecondThreeThirdFour() (gas: 63651) +LibOpIfTest:testOpIfEval3InputsFirstTwoSecondZeroThirdFour() (gas: 63447) +LibOpIfTest:testOpIfEval3InputsFirstZeroSecondOneThirdTwo() (gas: 63694) +LibOpIfTest:testOpIfEval3InputsFirstZeroSecondOneThirdZero() (gas: 62894) +LibOpIfTest:testOpIfEval3InputsFirstZeroSecondZeroThirdOne() (gas: 62942) +LibOpIfTest:testOpIfEval3InputsFirstZeroSecondZeroThirdThree() (gas: 62945) +LibOpIfTest:testOpIfEvalEmptyStringTruthy() (gas: 163776) +LibOpIfTest:testOpIfEvalFail0Inputs() (gas: 29616) +LibOpIfTest:testOpIfEvalFail1Input() (gas: 33971) +LibOpIfTest:testOpIfEvalFail2Inputs() (gas: 38100) +LibOpIfTest:testOpIfEvalFail4Inputs() (gas: 46468) +LibOpIfTest:testOpIfEvalTwoOutputs() (gas: 45971) +LibOpIfTest:testOpIfEvalZeroExponent() (gas: 64999) +LibOpIfTest:testOpIfEvalZeroOutputs() (gas: 44902) +LibOpIfTest:testOpIfIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19672, ~: 19914) +LibOpIfTest:testOpIfRun(bytes32,bytes32,bytes32) (runs: 2054, μ: 17013, ~: 17014) +LibOpInvTest:testOpExpEvalOperandDisallowed() (gas: 17619) +LibOpInvTest:testOpInvEval() (gas: 176926) +LibOpInvTest:testOpInvIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13750, ~: 13660) +LibOpInvTest:testOpInvRun(int224,int32,uint16) (runs: 2054, μ: 25067, ~: 25219) +LibOpInvTest:testOpInvTwoInputs() (gas: 40092) +LibOpInvTest:testOpInvTwoOutputs() (gas: 35878) +LibOpInvTest:testOpInvZeroInputs() (gas: 30208) +LibOpInvTest:testOpInvZeroOutputs() (gas: 34871) +LibOpIsZeroTest:testOpIsZeroEval0e20Input() (gas: 53370) +LibOpIsZeroTest:testOpIsZeroEval1NonZeroInput() (gas: 52328) +LibOpIsZeroTest:testOpIsZeroEval1ZeroInput() (gas: 52065) +LibOpIsZeroTest:testOpIsZeroEvalFail0Inputs() (gas: 29989) +LibOpIsZeroTest:testOpIsZeroEvalFail2Inputs() (gas: 38548) +LibOpIsZeroTest:testOpIsZeroNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19778, ~: 20017) +LibOpIsZeroTest:testOpIsZeroRun(bytes32) (runs: 2054, μ: 16420, ~: 16421) +LibOpIsZeroTest:testOpIsZeroTwoOutputs() (gas: 36383) +LibOpIsZeroTest:testOpIsZeroZeroOutputs() (gas: 35089) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2InputsBothOne() (gas: 57232) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2InputsFirstOneSecondZero() (gas: 57942) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2InputsFirstZeroSecondOne() (gas: 57963) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEval2ZeroInputs() (gas: 57256) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEvalFail0Inputs() (gas: 31132) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEvalFail1Input() (gas: 35488) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToEvalFail3Inputs() (gas: 43951) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19678, ~: 19922) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToRun(bytes32,bytes32) (runs: 2054, μ: 17400, ~: 17329) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToTwoOutputs() (gas: 42618) +LibOpLessThanOrEqualToTest:testOpLessThanOrEqualToZeroOutputs() (gas: 41571) +LibOpLessThanTest:testOpLessThanEval2InputsFirstZeroSecondOne() (gas: 58428) +LibOpLessThanTest:testOpLessThanEval2ZeroInputs() (gas: 57677) +LibOpLessThanTest:testOpLessThanIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19704, ~: 19925) +LibOpLessThanTest:testOpLessThanNP1_0Lt1() (gas: 58430) +LibOpLessThanTest:testOpLessThanNP1_1Lt1_2() (gas: 60920) +LibOpLessThanTest:testOpLessThanNPEval2InputsBothOne() (gas: 57701) +LibOpLessThanTest:testOpLessThanNPEval2InputsFirstOneSecondZero() (gas: 58385) +LibOpLessThanTest:testOpLessThanNPMinus1Lt0() (gas: 58483) +LibOpLessThanTest:testOpLessThanNPMinus1_1LtMinus1_2() (gas: 61144) +LibOpLessThanTest:testOpLessThanNPTwoOutputs() (gas: 41953) +LibOpLessThanTest:testOpLessThanNPZeroOutputs() (gas: 40068) +LibOpLessThanTest:testOpLessThanRun(bytes32,bytes32) (runs: 2054, μ: 17423, ~: 17353) +LibOpLessThanTest:testOpLessThanToNPEvalFail0Inputs() (gas: 30183) +LibOpLessThanTest:testOpLessThanToNPEvalFail1Input() (gas: 34473) +LibOpLessThanTest:testOpLessThanToNPEvalFail3Inputs() (gas: 42853) +LibOpLinearGrowthTest:testOpLinearGrowthEval() (gas: 783742) +LibOpLinearGrowthTest:testOpLinearGrowthEvalFourInputs() (gas: 51212) +LibOpLinearGrowthTest:testOpLinearGrowthEvalOneInput() (gas: 36039) +LibOpLinearGrowthTest:testOpLinearGrowthEvalOperandDisallowed() (gas: 18407) +LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoInputs() (gas: 41388) +LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoOutputs() (gas: 46904) +LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroInputs() (gas: 30631) +LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroOutputs() (gas: 45855) +LibOpLinearGrowthTest:testOpLinearGrowthIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13749, ~: 13659) +LibOpLinearGrowthTest:testOpLinearGrowthRun(int224,int32,int224,int32,int224,int32,uint16) (runs: 2054, μ: 36142, ~: 36743) +LibOpMaxTest:testOpMaxEval2InputsHappy() (gas: 880762) +LibOpMaxTest:testOpMaxEval3InputsHappy() (gas: 2030559) +LibOpMaxTest:testOpMaxEvalOneInput() (gas: 129168) +LibOpMaxTest:testOpMaxEvalOperandDisallowed() (gas: 58985) +LibOpMaxTest:testOpMaxEvalTwoOutputs() (gas: 40763) +LibOpMaxTest:testOpMaxEvalZeroInputs() (gas: 30202) +LibOpMaxTest:testOpMaxIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18205, ~: 18373) +LibOpMaxTest:testOpMaxIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13826, ~: 13687) +LibOpMaxTest:testOpMaxIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13848, ~: 13709) +LibOpMaxTest:testOpMaxRun(bytes32[]) (runs: 2051, μ: 26587, ~: 26357) +LibOpMaxUint256Test:testOpMaxUint256Eval() (gas: 47317) +LibOpMaxUint256Test:testOpMaxUint256EvalFail() (gas: 35141) +LibOpMaxUint256Test:testOpMaxUint256Integrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19664, ~: 19908) LibOpMaxUint256Test:testOpMaxUint256Run() (gas: 15997) -LibOpMaxUint256Test:testOpMaxUint256TwoOutputs() (gas: 31918) -LibOpMaxUint256Test:testOpMaxUint256ZeroOutputs() (gas: 30823) -LibOpMaxValueTest:testOpMaxValueEval() (gas: 46697) -LibOpMaxValueTest:testOpMaxValueEvalFail() (gas: 34442) -LibOpMaxValueTest:testOpMaxValueIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19648, ~: 19934) +LibOpMaxUint256Test:testOpMaxUint256TwoOutputs() (gas: 31924) +LibOpMaxUint256Test:testOpMaxUint256ZeroOutputs() (gas: 30829) +LibOpMaxValueTest:testOpMaxValueEval() (gas: 46703) +LibOpMaxValueTest:testOpMaxValueEvalFail() (gas: 34449) +LibOpMaxValueTest:testOpMaxValueIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19657, ~: 19850) LibOpMaxValueTest:testOpMaxValueRun() (gas: 16217) -LibOpMaxValueTest:testOpMaxValueTwoOutputs() (gas: 31292) -LibOpMaxValueTest:testOpMaxValueZeroOutputs() (gas: 30197) -LibOpMinTest:testOpMinEval2InputsHappy() (gas: 973491) -LibOpMinTest:testOpMinEval3InputsHappy() (gas: 3460764) -LibOpMinTest:testOpMinEvalOneInput() (gas: 126305) -LibOpMinTest:testOpMinEvalOperandDisallowed() (gas: 58984) -LibOpMinTest:testOpMinEvalZeroInputs() (gas: 30176) -LibOpMinTest:testOpMinIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18281, ~: 18455) -LibOpMinTest:testOpMinIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13850, ~: 13710) -LibOpMinTest:testOpMinIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13827, ~: 13687) -LibOpMinTest:testOpMinRun(bytes32[],uint16) (runs: 2048, μ: 26539, ~: 26614) -LibOpMinValueTest:testOpMinValueEval() (gas: 46674) -LibOpMinValueTest:testOpMinValueEvalFail() (gas: 34508) -LibOpMinValueTest:testOpMinValueIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19677, ~: 19899) +LibOpMaxValueTest:testOpMaxValueTwoOutputs() (gas: 31298) +LibOpMaxValueTest:testOpMaxValueZeroOutputs() (gas: 30203) +LibOpMinTest:testOpMinEval2InputsHappy() (gas: 973626) +LibOpMinTest:testOpMinEval3InputsHappy() (gas: 3461179) +LibOpMinTest:testOpMinEvalOneInput() (gas: 126332) +LibOpMinTest:testOpMinEvalOperandDisallowed() (gas: 59008) +LibOpMinTest:testOpMinEvalZeroInputs() (gas: 30182) +LibOpMinTest:testOpMinIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18280, ~: 18482) +LibOpMinTest:testOpMinIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13849, ~: 13710) +LibOpMinTest:testOpMinIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13826, ~: 13687) +LibOpMinTest:testOpMinRun(bytes32[],uint16) (runs: 2051, μ: 26539, ~: 26609) +LibOpMinValueTest:testOpMinValueEval() (gas: 46680) +LibOpMinValueTest:testOpMinValueEvalFail() (gas: 34515) +LibOpMinValueTest:testOpMinValueIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19671, ~: 19899) LibOpMinValueTest:testOpMinValueRun() (gas: 16210) -LibOpMinValueTest:testOpMinValueTwoOutputs() (gas: 31269) -LibOpMinValueTest:testOpMinValueZeroOutputs() (gas: 30219) -LibOpMulTest:testOpDecimal18MulNPIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13828, ~: 13688) -LibOpMulTest:testOpMulEvalOneInput() (gas: 126339) -LibOpMulTest:testOpMulEvalOperandsDisallowed() (gas: 91613) -LibOpMulTest:testOpMulEvalThreeInputsHappy() (gas: 744145) -LibOpMulTest:testOpMulEvalThreeInputsUnhappyOverflow() (gas: 60835) -LibOpMulTest:testOpMulEvalTwoInputsHappy() (gas: 523230) -LibOpMulTest:testOpMulEvalTwoInputsUnhappyOverflow() (gas: 54386) -LibOpMulTest:testOpMulEvalZeroInputs() (gas: 30239) -LibOpMulTest:testOpMulIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18246, ~: 18477) -LibOpMulTest:testOpMulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13871, ~: 13731) -LibOpMulTest:testOpMulRun(bytes32[]) (runs: 2048, μ: 29007, ~: 26762) -LibOpMulTest:testOpMulTwoOutputs() (gas: 40777) -LibOpMulTest:testOpMulZeroOutputs() (gas: 39731) -LibOpSetTest:testLibOpSet(bytes32,bytes32) (runs: 2051, μ: 17660, ~: 17665) -LibOpSetTest:testLibOpSetEvalOneInput() (gas: 34217) -LibOpSetTest:testLibOpSetEvalOneOutput() (gas: 39855) -LibOpSetTest:testLibOpSetEvalOperandsDisallowed() (gas: 56079) -LibOpSetTest:testLibOpSetEvalSetTwice() (gas: 78267) -LibOpSetTest:testLibOpSetEvalThreeInputs() (gas: 44650) -LibOpSetTest:testLibOpSetEvalTwoInputs() (gas: 258614) -LibOpSetTest:testLibOpSetEvalTwoOutputs() (gas: 40477) -LibOpSetTest:testLibOpSetEvalZeroInputs() (gas: 29398) -LibOpSetTest:testLibOpSetIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 20445, ~: 20691) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPEval() (gas: 879474) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailBadShiftAmount() (gas: 128207) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoInputs() (gas: 44472) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoOutputs() (gas: 40356) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroInputs() (gas: 34632) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroOutputs() (gas: 39281) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint8) (runs: 2051, μ: 19760, ~: 19707) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityNoop((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2051, μ: 35795, ~: 35518) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityZero((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 41995, ~: 42651) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPRun(bytes32,uint8) (runs: 2051, μ: 16833, ~: 16833) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPEval() (gas: 1054514) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityFailBadShiftAmount() (gas: 128796) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint8) (runs: 103, μ: 19680, ~: 19131) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityNoop((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 103, μ: 36986, ~: 36899) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityZero((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 103, μ: 40810, ~: 41169) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPRun(bytes32,uint8) (runs: 2051, μ: 16836, ~: 16836) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoInputs() (gas: 44596) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoOutputs() (gas: 40416) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroInputs() (gas: 34691) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroOutputs() (gas: 39365) -LibOpStackNPTest:testOpStackEval() (gas: 65345) -LibOpStackNPTest:testOpStackEvalSeveral() (gas: 87182) -LibOpStackNPTest:testOpStackNPIntegrity(bytes,uint256,bytes32[],bytes32) (runs: 2051, μ: 18888, ~: 18656) -LibOpStackNPTest:testOpStackNPIntegrityOOBStack(bytes,uint16,bytes32[],uint16,uint256) (runs: 2051, μ: 41434, ~: 41563) -LibOpStackNPTest:testOpStackNPMultipleOutputErrorSugared() (gas: 39361) -LibOpStackNPTest:testOpStackNPMultipleOutputErrorUnsugared() (gas: 43021) -LibOpStackNPTest:testOpStackNPRun(bytes32[][],uint256) (runs: 103, μ: 2137580, ~: 2017589) -LibOpStackNPTest:testOpStackNPZeroOutputErrorSugared() (gas: 37906) -LibOpStackNPTest:testOpStackNPZeroOutputErrorUnsugared() (gas: 41531) -LibOpSubTest:testOpSubEvalOneInput() (gas: 128962) -LibOpSubTest:testOpSubEvalThreeInputs() (gas: 226282) -LibOpSubTest:testOpSubEvalTwoInputs() (gas: 342507) -LibOpSubTest:testOpSubEvalZeroInputs() (gas: 30157) -LibOpSubTest:testOpSubIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18245, ~: 18416) -LibOpSubTest:testOpSubIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13827, ~: 13687) -LibOpSubTest:testOpSubIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13828, ~: 13688) -LibOpSubTest:testOpSubRun(bytes32[]) (runs: 2048, μ: 55800, ~: 55034) -LibOpTimestampTest:testOpBlockTimestampNPEvalFail() (gas: 65865) -LibOpTimestampTest:testOpBlockTimestampNPTwoOutputs() (gas: 58784) -LibOpTimestampTest:testOpBlockTimestampNPZeroOutputs() (gas: 56659) -LibOpTimestampTest:testOpTimestampEval(uint256) (runs: 2051, μ: 85047, ~: 84725) -LibOpTimestampTest:testOpTimestampIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19672, ~: 19939) -LibOpTimestampTest:testOpTimestampRun(uint256) (runs: 2051, μ: 20589, ~: 20364) -LibOpUint256AddTest:testOpUint256AddEvalOneInput() (gas: 128371) -LibOpUint256AddTest:testOpUint256AddEvalOperandsDisallowed() (gas: 95501) -LibOpUint256AddTest:testOpUint256AddEvalThreeInputsHappy() (gas: 209812) -LibOpUint256AddTest:testOpUint256AddEvalThreeInputsUnhappy() (gas: 114853) -LibOpUint256AddTest:testOpUint256AddEvalTwoInputsHappy() (gas: 280279) -LibOpUint256AddTest:testOpUint256AddEvalTwoOutputs() (gas: 41447) -LibOpUint256AddTest:testOpUint256AddEvalZeroInputs() (gas: 30865) -LibOpUint256AddTest:testOpUint256AddEvalZeroOutputs() (gas: 40378) -LibOpUint256AddTest:testOpUint256AddIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18244, ~: 18478) -LibOpUint256AddTest:testOpUint256AddIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13829, ~: 13689) -LibOpUint256AddTest:testOpUint256AddIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13827, ~: 13687) -LibOpUint256AddTest:testOpUint256AddRun(bytes32[]) (runs: 2048, μ: 19965, ~: 19486) -LibOpUint256DivTest:testOpUint256DivEval2InputsHappy() (gas: 771252) -LibOpUint256DivTest:testOpUint256DivEval2InputsUnhappy() (gas: 143640) -LibOpUint256DivTest:testOpUint256DivEval3InputsHappy() (gas: 1407553) -LibOpUint256DivTest:testOpUint256DivEval3InputsUnhappy() (gas: 479777) -LibOpUint256DivTest:testOpUint256DivEvalOneInput() (gas: 133068) -LibOpUint256DivTest:testOpUint256DivEvalOperandDisallowed() (gas: 61532) -LibOpUint256DivTest:testOpUint256DivEvalTwoOutputs() (gas: 41448) -LibOpUint256DivTest:testOpUint256DivEvalZeroInputs() (gas: 30866) -LibOpUint256DivTest:testOpUint256DivEvalZeroOutputs() (gas: 40356) -LibOpUint256DivTest:testOpUint256DivIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18270, ~: 18484) -LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13849, ~: 13709) -LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13829, ~: 13689) -LibOpUint256DivTest:testOpUint256DivRun(bytes32[]) (runs: 2048, μ: 24853, ~: 25168) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalFourInputs() (gas: 56674) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalHappy(uint256) (runs: 2051, μ: 70308, ~: 70308) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalOneInput() (gas: 37967) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalOperandDisallowed() (gas: 19272) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalTwoInputs() (gas: 44306) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalTwoOutputs() (gas: 51338) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalZeroInputs() (gas: 31760) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalZeroOutputs() (gas: 50314) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13774, ~: 13683) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceRun(address,address,address,uint256) (runs: 2050, μ: 24718, ~: 24718) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalHappy(uint256) (runs: 2051, μ: 63368, ~: 63368) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalOneInput() (gas: 38006) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalOperandDisallowed() (gas: 19330) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalThreeInputs() (gas: 50207) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalTwoOutputs() (gas: 45076) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroInputs() (gas: 31863) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroOutputs() (gas: 44031) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13797, ~: 13706) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfRun(address,address,uint256,uint16) (runs: 2050, μ: 24168, ~: 24168) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalHappy(uint256) (runs: 2051, μ: 56470, ~: 56470) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalOperandDisallowed() (gas: 19493) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoInputs() (gas: 44528) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoOutputs() (gas: 38902) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroInputs() (gas: 32046) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroOutputs() (gas: 37829) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2051, μ: 13797, ~: 13706) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyRun(address,uint256,uint16) (runs: 2050, μ: 23332, ~: 23332) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfEvalHappy(address,address,uint256) (runs: 2050, μ: 104715, ~: 104885) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2051, μ: 19687, ~: 19927) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail0() (gas: 31485) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail1() (gas: 35869) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail3() (gas: 45208) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFailOperand() (gas: 22204) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfOneInput() (gas: 36399) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfRun(address,address,uint256,uint16) (runs: 2050, μ: 24211, ~: 24211) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfThreeInputs() (gas: 45728) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfTwoOutputs() (gas: 41725) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroInputs() (gas: 31919) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroOutputs() (gas: 40700) -LibOpUint256MulTest:testOpUint256MulEvalOneInput() (gas: 128459) -LibOpUint256MulTest:testOpUint256MulEvalOperandsDisallowed() (gas: 95481) -LibOpUint256MulTest:testOpUint256MulEvalThreeInputsHappy() (gas: 1014950) -LibOpUint256MulTest:testOpUint256MulEvalThreeInputsUnhappy() (gas: 640795) -LibOpUint256MulTest:testOpUint256MulEvalTwoInputsHappy() (gas: 417031) -LibOpUint256MulTest:testOpUint256MulEvalTwoInputsUnhappy() (gas: 143773) -LibOpUint256MulTest:testOpUint256MulEvalTwoOutputs() (gas: 41392) -LibOpUint256MulTest:testOpUint256MulEvalZeroInputs() (gas: 30919) -LibOpUint256MulTest:testOpUint256MulEvalZeroOutputs() (gas: 40391) -LibOpUint256MulTest:testOpUint256MulIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18206, ~: 18429) -LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13871, ~: 13731) -LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13828, ~: 13688) -LibOpUint256MulTest:testOpUint256MulRun(bytes32[]) (runs: 2048, μ: 18814, ~: 19078) -LibOpUint256PowTest:testOpUint256ExpIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18221, ~: 18395) -LibOpUint256PowTest:testOpUint256PowEval2InputsHappy() (gas: 872153) -LibOpUint256PowTest:testOpUint256PowEval2InputsUnhappy() (gas: 145753) -LibOpUint256PowTest:testOpUint256PowEval3InputsHappy() (gas: 1979931) -LibOpUint256PowTest:testOpUint256PowEval3InputsUnhappy() (gas: 633649) -LibOpUint256PowTest:testOpUint256PowEvalOneInput() (gas: 132381) -LibOpUint256PowTest:testOpUint256PowEvalOperandDisallowed() (gas: 62224) -LibOpUint256PowTest:testOpUint256PowEvalTwoOutputs() (gas: 41577) -LibOpUint256PowTest:testOpUint256PowEvalZeroInputs() (gas: 31058) -LibOpUint256PowTest:testOpUint256PowEvalZeroOutputs() (gas: 40509) -LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13851, ~: 13711) -LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13828, ~: 13688) -LibOpUint256PowTest:testOpUint256PowRun(bytes32[]) (runs: 2048, μ: 19390, ~: 19304) -LibOpUint256SubTest:testOpUint256SubEvalOneInput() (gas: 128458) -LibOpUint256SubTest:testOpUint256SubEvalOperandsDisallowed() (gas: 95503) -LibOpUint256SubTest:testOpUint256SubEvalThreeInputsHappy() (gas: 209687) -LibOpUint256SubTest:testOpUint256SubEvalThreeInputsUnhappy() (gas: 115026) -LibOpUint256SubTest:testOpUint256SubEvalTwoInputsHappy() (gas: 280277) -LibOpUint256SubTest:testOpUint256SubEvalTwoOutputs() (gas: 41436) -LibOpUint256SubTest:testOpUint256SubEvalZeroInputs() (gas: 30876) -LibOpUint256SubTest:testOpUint256SubEvalZeroOutputs() (gas: 40368) -LibOpUint256SubTest:testOpUint256SubIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2051, μ: 18242, ~: 18459) -LibOpUint256SubTest:testOpUint256SubIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13872, ~: 13732) -LibOpUint256SubTest:testOpUint256SubIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2051, μ: 13828, ~: 13688) -LibOpUint256SubTest:testOpUint256SubRun(bytes32[]) (runs: 2048, μ: 17664, ~: 17687) +LibOpMinValueTest:testOpMinValueTwoOutputs() (gas: 31275) +LibOpMinValueTest:testOpMinValueZeroOutputs() (gas: 30225) +LibOpMulTest:testOpDecimal18MulNPIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13827, ~: 13688) +LibOpMulTest:testOpMulEvalOneInput() (gas: 126366) +LibOpMulTest:testOpMulEvalOperandsDisallowed() (gas: 91649) +LibOpMulTest:testOpMulEvalThreeInputsHappy() (gas: 744235) +LibOpMulTest:testOpMulEvalThreeInputsUnhappyOverflow() (gas: 60841) +LibOpMulTest:testOpMulEvalTwoInputsHappy() (gas: 523301) +LibOpMulTest:testOpMulEvalTwoInputsUnhappyOverflow() (gas: 54393) +LibOpMulTest:testOpMulEvalZeroInputs() (gas: 30245) +LibOpMulTest:testOpMulIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18242, ~: 18443) +LibOpMulTest:testOpMulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13870, ~: 13731) +LibOpMulTest:testOpMulRun(bytes32[]) (runs: 2051, μ: 28964, ~: 26565) +LibOpMulTest:testOpMulTwoOutputs() (gas: 40784) +LibOpMulTest:testOpMulZeroOutputs() (gas: 39738) +LibOpSetTest:testLibOpSet(bytes32,bytes32) (runs: 2054, μ: 17660, ~: 17665) +LibOpSetTest:testLibOpSetEvalOneInput() (gas: 34224) +LibOpSetTest:testLibOpSetEvalOneOutput() (gas: 39861) +LibOpSetTest:testLibOpSetEvalOperandsDisallowed() (gas: 56103) +LibOpSetTest:testLibOpSetEvalSetTwice() (gas: 78274) +LibOpSetTest:testLibOpSetEvalThreeInputs() (gas: 44656) +LibOpSetTest:testLibOpSetEvalTwoInputs() (gas: 258646) +LibOpSetTest:testLibOpSetEvalTwoOutputs() (gas: 40483) +LibOpSetTest:testLibOpSetEvalZeroInputs() (gas: 29404) +LibOpSetTest:testLibOpSetIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 20442, ~: 20677) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPEval() (gas: 879610) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailBadShiftAmount() (gas: 128234) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoInputs() (gas: 44479) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoOutputs() (gas: 40363) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroInputs() (gas: 34638) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroOutputs() (gas: 39288) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint8) (runs: 2054, μ: 19764, ~: 19709) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityNoop((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 2054, μ: 35792, ~: 35518) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityZero((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 41988, ~: 42651) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPRun(bytes32,uint8) (runs: 2053, μ: 16833, ~: 16833) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPEval() (gas: 1054677) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityFailBadShiftAmount() (gas: 128823) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint8) (runs: 105, μ: 19754, ~: 19047) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityNoop((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8) (runs: 106, μ: 36893, ~: 36899) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityZero((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 106, μ: 40703, ~: 40926) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPRun(bytes32,uint8) (runs: 2054, μ: 16836, ~: 16836) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoInputs() (gas: 44603) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoOutputs() (gas: 40423) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroInputs() (gas: 34697) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroOutputs() (gas: 39372) +LibOpStackNPTest:testOpStackEval() (gas: 66026) +LibOpStackNPTest:testOpStackEvalSeveral() (gas: 90558) +LibOpStackNPTest:testOpStackNPIntegrity(bytes,uint256,bytes32[],bytes32) (runs: 2054, μ: 18881, ~: 18646) +LibOpStackNPTest:testOpStackNPIntegrityOOBStack(bytes,uint16,bytes32[],uint16,uint256) (runs: 2054, μ: 41411, ~: 41568) +LibOpStackNPTest:testOpStackNPMultipleOutputErrorSugared() (gas: 40041) +LibOpStackNPTest:testOpStackNPMultipleOutputErrorUnsugared() (gas: 43027) +LibOpStackNPTest:testOpStackNPRun(bytes32[][],uint256) (runs: 106, μ: 2079525, ~: 1906210) +LibOpStackNPTest:testOpStackNPZeroOutputErrorSugared() (gas: 38586) +LibOpStackNPTest:testOpStackNPZeroOutputErrorUnsugared() (gas: 41537) +LibOpSubTest:testOpSubEvalOneInput() (gas: 128989) +LibOpSubTest:testOpSubEvalThreeInputs() (gas: 226306) +LibOpSubTest:testOpSubEvalTwoInputs() (gas: 342552) +LibOpSubTest:testOpSubEvalZeroInputs() (gas: 30163) +LibOpSubTest:testOpSubIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18248, ~: 18443) +LibOpSubTest:testOpSubIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13826, ~: 13687) +LibOpSubTest:testOpSubIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13827, ~: 13688) +LibOpSubTest:testOpSubRun(bytes32[]) (runs: 2051, μ: 55793, ~: 55255) +LibOpTimestampTest:testOpBlockTimestampNPEvalFail() (gas: 65879) +LibOpTimestampTest:testOpBlockTimestampNPTwoOutputs() (gas: 58796) +LibOpTimestampTest:testOpBlockTimestampNPZeroOutputs() (gas: 56671) +LibOpTimestampTest:testOpTimestampEval(uint256) (runs: 2054, μ: 85055, ~: 84737) +LibOpTimestampTest:testOpTimestampIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19678, ~: 19870) +LibOpTimestampTest:testOpTimestampRun(uint256) (runs: 2054, μ: 20588, ~: 20364) +LibOpUint256AddTest:testOpUint256AddEvalOneInput() (gas: 128399) +LibOpUint256AddTest:testOpUint256AddEvalOperandsDisallowed() (gas: 95537) +LibOpUint256AddTest:testOpUint256AddEvalThreeInputsHappy() (gas: 209837) +LibOpUint256AddTest:testOpUint256AddEvalThreeInputsUnhappy() (gas: 114866) +LibOpUint256AddTest:testOpUint256AddEvalTwoInputsHappy() (gas: 280317) +LibOpUint256AddTest:testOpUint256AddEvalTwoOutputs() (gas: 41454) +LibOpUint256AddTest:testOpUint256AddEvalZeroInputs() (gas: 30871) +LibOpUint256AddTest:testOpUint256AddEvalZeroOutputs() (gas: 40385) +LibOpUint256AddTest:testOpUint256AddIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18248, ~: 18445) +LibOpUint256AddTest:testOpUint256AddIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13828, ~: 13689) +LibOpUint256AddTest:testOpUint256AddIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13826, ~: 13687) +LibOpUint256AddTest:testOpUint256AddRun(bytes32[]) (runs: 2051, μ: 19994, ~: 19486) +LibOpUint256DivTest:testOpUint256DivEval2InputsHappy() (gas: 771360) +LibOpUint256DivTest:testOpUint256DivEval2InputsUnhappy() (gas: 143659) +LibOpUint256DivTest:testOpUint256DivEval3InputsHappy() (gas: 1407723) +LibOpUint256DivTest:testOpUint256DivEval3InputsUnhappy() (gas: 479833) +LibOpUint256DivTest:testOpUint256DivEvalOneInput() (gas: 133095) +LibOpUint256DivTest:testOpUint256DivEvalOperandDisallowed() (gas: 61556) +LibOpUint256DivTest:testOpUint256DivEvalTwoOutputs() (gas: 41455) +LibOpUint256DivTest:testOpUint256DivEvalZeroInputs() (gas: 30872) +LibOpUint256DivTest:testOpUint256DivEvalZeroOutputs() (gas: 40363) +LibOpUint256DivTest:testOpUint256DivIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18270, ~: 18432) +LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13848, ~: 13709) +LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13828, ~: 13689) +LibOpUint256DivTest:testOpUint256DivRun(bytes32[]) (runs: 2051, μ: 24851, ~: 25168) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalFourInputs() (gas: 56680) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalHappy(uint256) (runs: 2054, μ: 70315, ~: 70315) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalOneInput() (gas: 37973) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalOperandDisallowed() (gas: 19279) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalTwoInputs() (gas: 44312) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalTwoOutputs() (gas: 51345) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalZeroInputs() (gas: 31766) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceEvalZeroOutputs() (gas: 50321) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13773, ~: 13683) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceRun(address,address,address,uint256) (runs: 2053, μ: 24718, ~: 24718) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalHappy(uint256) (runs: 2054, μ: 63374, ~: 63374) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalOneInput() (gas: 38012) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalOperandDisallowed() (gas: 19337) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalThreeInputs() (gas: 50213) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalTwoOutputs() (gas: 45082) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroInputs() (gas: 31869) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfEvalZeroOutputs() (gas: 44037) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13796, ~: 13706) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfRun(address,address,uint256,uint16) (runs: 2052, μ: 24168, ~: 24168) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalHappy(uint256) (runs: 2054, μ: 56476, ~: 56476) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalOperandDisallowed() (gas: 19500) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoInputs() (gas: 44534) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalTwoOutputs() (gas: 38908) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroInputs() (gas: 32052) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyEvalZeroOutputs() (gas: 37835) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13796, ~: 13706) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyRun(address,uint256,uint16) (runs: 2053, μ: 23332, ~: 23332) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfEvalHappy(address,address,uint256) (runs: 2053, μ: 612133, ~: 105565) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint8,uint16) (runs: 2054, μ: 19680, ~: 19946) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail0() (gas: 32165) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail1() (gas: 36549) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail3() (gas: 45889) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFailOperand() (gas: 22885) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfOneInput() (gas: 37079) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfRun(address,address,uint256,uint16) (runs: 2053, μ: 24211, ~: 24211) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfThreeInputs() (gas: 46409) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfTwoOutputs() (gas: 42405) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroInputs() (gas: 32599) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroOutputs() (gas: 41380) +LibOpUint256MulTest:testOpUint256MulEvalOneInput() (gas: 128487) +LibOpUint256MulTest:testOpUint256MulEvalOperandsDisallowed() (gas: 95517) +LibOpUint256MulTest:testOpUint256MulEvalThreeInputsHappy() (gas: 1015073) +LibOpUint256MulTest:testOpUint256MulEvalThreeInputsUnhappy() (gas: 640867) +LibOpUint256MulTest:testOpUint256MulEvalTwoInputsHappy() (gas: 417088) +LibOpUint256MulTest:testOpUint256MulEvalTwoInputsUnhappy() (gas: 143792) +LibOpUint256MulTest:testOpUint256MulEvalTwoOutputs() (gas: 41399) +LibOpUint256MulTest:testOpUint256MulEvalZeroInputs() (gas: 30925) +LibOpUint256MulTest:testOpUint256MulEvalZeroOutputs() (gas: 40398) +LibOpUint256MulTest:testOpUint256MulIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18202, ~: 18429) +LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13870, ~: 13731) +LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13827, ~: 13688) +LibOpUint256MulTest:testOpUint256MulRun(bytes32[]) (runs: 2051, μ: 18906, ~: 19078) +LibOpUint256PowTest:testOpUint256ExpIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18223, ~: 18387) +LibOpUint256PowTest:testOpUint256PowEval2InputsHappy() (gas: 872272) +LibOpUint256PowTest:testOpUint256PowEval2InputsUnhappy() (gas: 145772) +LibOpUint256PowTest:testOpUint256PowEval3InputsHappy() (gas: 1980169) +LibOpUint256PowTest:testOpUint256PowEval3InputsUnhappy() (gas: 633721) +LibOpUint256PowTest:testOpUint256PowEvalOneInput() (gas: 132408) +LibOpUint256PowTest:testOpUint256PowEvalOperandDisallowed() (gas: 62248) +LibOpUint256PowTest:testOpUint256PowEvalTwoOutputs() (gas: 41584) +LibOpUint256PowTest:testOpUint256PowEvalZeroInputs() (gas: 31064) +LibOpUint256PowTest:testOpUint256PowEvalZeroOutputs() (gas: 40516) +LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13850, ~: 13711) +LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13827, ~: 13688) +LibOpUint256PowTest:testOpUint256PowRun(bytes32[]) (runs: 2051, μ: 19415, ~: 19337) +LibOpUint256SubTest:testOpUint256SubEvalOneInput() (gas: 128486) +LibOpUint256SubTest:testOpUint256SubEvalOperandsDisallowed() (gas: 95539) +LibOpUint256SubTest:testOpUint256SubEvalThreeInputsHappy() (gas: 209712) +LibOpUint256SubTest:testOpUint256SubEvalThreeInputsUnhappy() (gas: 115039) +LibOpUint256SubTest:testOpUint256SubEvalTwoInputsHappy() (gas: 280315) +LibOpUint256SubTest:testOpUint256SubEvalTwoOutputs() (gas: 41443) +LibOpUint256SubTest:testOpUint256SubEvalZeroInputs() (gas: 30882) +LibOpUint256SubTest:testOpUint256SubEvalZeroOutputs() (gas: 40375) +LibOpUint256SubTest:testOpUint256SubIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),uint8,uint16) (runs: 2054, μ: 18244, ~: 18472) +LibOpUint256SubTest:testOpUint256SubIntegrityUnhappyOneInput((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13871, ~: 13732) +LibOpUint256SubTest:testOpUint256SubIntegrityUnhappyZeroInputs((uint256,uint256,uint256,bytes32[],uint256,bytes)) (runs: 2054, μ: 13827, ~: 13688) +LibOpUint256SubTest:testOpUint256SubRun(bytes32[]) (runs: 2051, μ: 17596, ~: 17687) LibParseCommentsTest:testParseCommentAfterSources() (gas: 69689) LibParseCommentsTest:testParseCommentBetweenSources() (gas: 69745) LibParseCommentsTest:testParseCommentInIgnoredLHS() (gas: 46231) @@ -640,7 +664,7 @@ LibParseInputsOnlyGasTest:testParseGasInputsOnly09() (gas: 52192) LibParseInputsOnlyTest:testParseInputsOnlyMultiple() (gas: 52451) LibParseInputsOnlyTest:testParseInputsOnlySingle() (gas: 51541) LibParseLiteralBoundLiteralHexTest:testParseLiteralBoundLiteralHexBounds() (gas: 18858) -LibParseLiteralBoundLiteralHexTest:testParseLiteralBoundLiteralHexFuzz(string,bytes1,string) (runs: 2051, μ: 45039, ~: 44088) +LibParseLiteralBoundLiteralHexTest:testParseLiteralBoundLiteralHexFuzz(string,bytes1,string) (runs: 2054, μ: 44990, ~: 43991) LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotE() (gas: 11195) LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotE0() (gas: 11173) LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert() (gas: 11218) @@ -659,7 +683,7 @@ LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNegative LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNonDecimal() (gas: 11150) LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert0() (gas: 35135) LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert1() (gas: 35045) -LibParseLiteralHexBoundHexTest:testParseLiteralHexRoundTrip(bytes32) (runs: 2051, μ: 27338, ~: 37882) +LibParseLiteralHexBoundHexTest:testParseLiteralHexRoundTrip(bytes32) (runs: 2054, μ: 27310, ~: 37882) LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal00() (gas: 56730) LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal01() (gas: 63896) LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal02() (gas: 70152) @@ -678,23 +702,23 @@ LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex00() (gas: 55856) LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex01() (gas: 61572) LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex02() (gas: 66623) LibParseLiteralIntegerHexTest:testParseIntegerLiteralHexUint256Max() (gas: 72869) -LibParseLiteralStringBoundTest:testParseStringLiteralBounds(string) (runs: 2051, μ: 16504, ~: 16416) -LibParseLiteralStringBoundTest:testParseStringLiteralBoundsInvalidCharBefore(string,uint256) (runs: 2051, μ: 30134, ~: 30002) -LibParseLiteralStringBoundTest:testParseStringLiteralBoundsParserOutOfBounds(string,uint256) (runs: 2051, μ: 19032, ~: 18944) +LibParseLiteralStringBoundTest:testParseStringLiteralBounds(string) (runs: 2054, μ: 16496, ~: 16416) +LibParseLiteralStringBoundTest:testParseStringLiteralBoundsInvalidCharBefore(string,uint256) (runs: 2053, μ: 30122, ~: 29997) +LibParseLiteralStringBoundTest:testParseStringLiteralBoundsParserOutOfBounds(string,uint256) (runs: 2054, μ: 19024, ~: 18937) LibParseLiteralStringBoundTest:testParseStringLiteralBoundsTooLong(string) (runs: 2048, μ: 31901, ~: 31390) LibParseLiteralStringTest:testParseStringLiteralAny(bytes) (runs: 2049, μ: 13483, ~: 13384) LibParseLiteralStringTest:testParseStringLiteralCorrupt(bytes,uint256) (runs: 2049, μ: 24344, ~: 24269) LibParseLiteralStringTest:testParseStringLiteralEmpty() (gas: 54552) LibParseLiteralStringTest:testParseStringLiteralEmpty() (gas: 5643) LibParseLiteralStringTest:testParseStringLiteralInvalidCharAfter(string,string) (runs: 100, μ: 68659, ~: 68371) -LibParseLiteralStringTest:testParseStringLiteralInvalidCharWithin(string,uint256) (runs: 103, μ: 66044, ~: 65972) +LibParseLiteralStringTest:testParseStringLiteralInvalidCharWithin(string,uint256) (runs: 105, μ: 65840, ~: 65654) LibParseLiteralStringTest:testParseStringLiteralLongASCII(string) (runs: 100, μ: 69407, ~: 69511) -LibParseLiteralStringTest:testParseStringLiteralShortASCII(string) (runs: 103, μ: 61855, ~: 61825) +LibParseLiteralStringTest:testParseStringLiteralShortASCII(string) (runs: 106, μ: 61698, ~: 61811) LibParseLiteralStringTest:testParseStringLiteralSimple() (gas: 54654) -LibParseLiteralStringTest:testParseStringLiteralTwo(string,string) (runs: 102, μ: 75290, ~: 75835) +LibParseLiteralStringTest:testParseStringLiteralTwo(string,string) (runs: 104, μ: 75184, ~: 75793) LibParseLiteralSubParseableTest:testParseLiteralSubParseableBody() (gas: 64571) LibParseLiteralSubParseableTest:testParseLiteralSubParseableEmptyBody() (gas: 19630) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableHappyFuzz(string,string,string) (runs: 2051, μ: 89612, ~: 87750) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableHappyFuzz(string,string,string) (runs: 2053, μ: 89568, ~: 87740) LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchEmpty() (gas: 10659) LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosed() (gas: 10619) LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosedWhitespace0() (gas: 10679) @@ -759,36 +783,36 @@ LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecon LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultThird() (gas: 55536) LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultUnclosed() (gas: 52609) LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultUnopened() (gas: 47193) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValues(uint256,uint256,uint256) (runs: 2051, μ: 12114, ~: 12193) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValuesThirdValueTooLarge(uint256,uint256,uint256) (runs: 2051, μ: 13578, ~: 13436) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValue(uint256,uint256) (runs: 2051, μ: 10367, ~: 10410) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValueSecondValueTooLarge(uint256,uint256) (runs: 2051, μ: 11731, ~: 11562) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueOnly(uint256) (runs: 2051, μ: 8643, ~: 8700) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueTooLarge(int256) (runs: 2051, μ: 11710, ~: 11953) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1ManyValues(bytes32[]) (runs: 2051, μ: 35426, ~: 35566) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValues(uint256,uint256,uint256) (runs: 2054, μ: 12114, ~: 12193) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValuesThirdValueTooLarge(uint256,uint256,uint256) (runs: 2054, μ: 13578, ~: 13436) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValue(uint256,uint256) (runs: 2054, μ: 10367, ~: 10410) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValueSecondValueTooLarge(uint256,uint256) (runs: 2054, μ: 11731, ~: 11562) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueOnly(uint256) (runs: 2054, μ: 8643, ~: 8700) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueTooLarge(int256) (runs: 2054, μ: 11709, ~: 11953) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1ManyValues(bytes32[]) (runs: 2053, μ: 35399, ~: 35566) LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1NoValues() (gas: 4679) -LibParseOperandHandleOperandDisallowedTest:testHandleOperandDisallowedAnyValues(bytes32[]) (runs: 2051, μ: 34809, ~: 34873) +LibParseOperandHandleOperandDisallowedTest:testHandleOperandDisallowedAnyValues(bytes32[]) (runs: 2054, μ: 34768, ~: 34873) LibParseOperandHandleOperandDisallowedTest:testHandleOperandDisallowedNoValues() (gas: 3219) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultBothValuesWithinOneByte(uint256,uint256) (runs: 2051, μ: 9918, ~: 10039) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultFirstValueTooLarge(uint256,uint256) (runs: 2051, μ: 11258, ~: 11074) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultManyValues(bytes32[]) (runs: 2051, μ: 35230, ~: 35470) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultBothValuesWithinOneByte(uint256,uint256) (runs: 2054, μ: 9918, ~: 10039) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultFirstValueTooLarge(uint256,uint256) (runs: 2054, μ: 11257, ~: 11074) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultManyValues(bytes32[]) (runs: 2053, μ: 35203, ~: 35470) LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultNoValues() (gas: 4625) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultOneValue(uint256) (runs: 2051, μ: 8807, ~: 9089) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultSecondValueTooLarge(uint256,uint256) (runs: 2051, μ: 11279, ~: 11085) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1ManyValues(bytes32[]) (runs: 2051, μ: 35124, ~: 35364) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultOneValue(uint256) (runs: 2054, μ: 8807, ~: 9089) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultSecondValueTooLarge(uint256,uint256) (runs: 2054, μ: 11279, ~: 11085) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1ManyValues(bytes32[]) (runs: 2053, μ: 35097, ~: 35364) LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1NoValues() (gas: 3891) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValue(uint256) (runs: 2051, μ: 8180, ~: 8200) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValueTooLarge(uint256) (runs: 2051, μ: 9321, ~: 9095) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValues(uint256,uint256) (runs: 2051, μ: 9877, ~: 9901) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValuesSecondValueTooLarge(uint256,uint256) (runs: 2051, μ: 11185, ~: 11003) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullManyValues(bytes32[]) (runs: 2051, μ: 35045, ~: 35382) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultManyValues(bytes32[]) (runs: 2051, μ: 35065, ~: 35402) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValue(uint256) (runs: 2054, μ: 8180, ~: 8200) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValueTooLarge(uint256) (runs: 2054, μ: 9321, ~: 9095) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValues(uint256,uint256) (runs: 2054, μ: 9877, ~: 9901) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValuesSecondValueTooLarge(uint256,uint256) (runs: 2054, μ: 11184, ~: 11003) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullManyValues(bytes32[]) (runs: 2054, μ: 35004, ~: 35145) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultManyValues(bytes32[]) (runs: 2054, μ: 35024, ~: 35165) LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultNoValues() (gas: 4599) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultSingleValue(uint256) (runs: 2051, μ: 7613, ~: 7893) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultSingleValue(uint256) (runs: 2054, μ: 7613, ~: 7893) LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoValues() (gas: 3266) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValue(uint256) (runs: 2051, μ: 7652, ~: 7936) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueDisallowed(uint256) (runs: 2051, μ: 9290, ~: 9499) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueNoDefaultDisallowed(uint256) (runs: 2051, μ: 9331, ~: 9540) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValue(uint256) (runs: 2054, μ: 7652, ~: 7936) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueDisallowed(uint256) (runs: 2054, μ: 9290, ~: 9499) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueNoDefaultDisallowed(uint256) (runs: 2054, μ: 9331, ~: 9540) LibParseOperandM1M1Test:testOperandM1M1Both() (gas: 57649) LibParseOperandM1M1Test:testOperandM1M1BothZero() (gas: 55824) LibParseOperandM1M1Test:testOperandM1M1Elided() (gas: 51802) @@ -800,13 +824,13 @@ LibParseOperandM1M1Test:testOperandM1M1SecondOverflow() (gas: 53500) LibParseOperandM1M1Test:testOperandM1M1SecondZero() (gas: 57377) LibParseOperandM1M1Test:testOperandM1M1Unclosed() (gas: 251386) LibParseOperandM1M1Test:testOperandM1M1Unopened() (gas: 49346) -LibParseOperandParseOperandTest:testParseOperandEmptyOperand(string) (runs: 103, μ: 42975, ~: 42972) -LibParseOperandParseOperandTest:testParseOperandFourDecimalLiterals(bool[4],int256[4],string[5],string) (runs: 103, μ: 358426, ~: 354759) -LibParseOperandParseOperandTest:testParseOperandNoOpeningCharacter(string) (runs: 103, μ: 42852, ~: 42849) -LibParseOperandParseOperandTest:testParseOperandSingleDecimalLiteral(bool,int256,string,string,string) (runs: 103, μ: 157852, ~: 159492) -LibParseOperandParseOperandTest:testParseOperandThreeDecimalLiterals(bool,bool,bool,int256,int256,int256,string,string,string,string,string) (runs: 103, μ: 274090, ~: 267641) +LibParseOperandParseOperandTest:testParseOperandEmptyOperand(string) (runs: 104, μ: 42975, ~: 42972) +LibParseOperandParseOperandTest:testParseOperandFourDecimalLiterals(bool[4],int256[4],string[5],string) (runs: 106, μ: 358505, ~: 355583) +LibParseOperandParseOperandTest:testParseOperandNoOpeningCharacter(string) (runs: 105, μ: 42852, ~: 42849) +LibParseOperandParseOperandTest:testParseOperandSingleDecimalLiteral(bool,int256,string,string,string) (runs: 106, μ: 157254, ~: 159350) +LibParseOperandParseOperandTest:testParseOperandThreeDecimalLiterals(bool,bool,bool,int256,int256,int256,string,string,string,string,string) (runs: 106, μ: 274893, ~: 268688) LibParseOperandParseOperandTest:testParseOperandTooManyValues() (gas: 54582) -LibParseOperandParseOperandTest:testParseOperandTwoDecimalLiterals(bool,bool,int256,int256,string,string,string,string) (runs: 103, μ: 213888, ~: 210747) +LibParseOperandParseOperandTest:testParseOperandTwoDecimalLiterals(bool,bool,int256,int256,string,string,string,string) (runs: 106, μ: 213274, ~: 210574) LibParseOperandParseOperandTest:testParseOperandUnclosed() (gas: 54141) LibParseOperandParseOperandTest:testParseOperandUnexpectedChars() (gas: 51419) LibParseOperandSingleFullTest:testOperandSingleFullElided() (gas: 51178) @@ -825,16 +849,16 @@ LibParseOperandSingleFullTest:testOperandSingleFullUint16MaxOverflow() (gas: 514 LibParseOperandSingleFullTest:testOperandSingleFullUnclosed() (gas: 49874) LibParseOperandSingleFullTest:testOperandSingleFullUnopened() (gas: 48263) LibParseOperandSingleFullTest:testOperandSingleFullZero() (gas: 54245) -LibParseParseWordTest:testLibParseParseWordEnd(uint256) (runs: 2051, μ: 9458, ~: 9402) +LibParseParseWordTest:testLibParseParseWordEnd(uint256) (runs: 2054, μ: 9457, ~: 9402) LibParseParseWordTest:testLibParseParseWordExamples() (gas: 26983) LibParseParseWordTest:testLibParseParseWordReferenceImplementation(bytes,uint256) (runs: 2049, μ: 6477, ~: 6257) -LibParseParseWordTest:testLibParseParseWordTooLong(bytes) (runs: 2050, μ: 9727, ~: 9660) -LibParsePragmaKeywordTest:testPragmaKeywordNoWhitespace(uint256,string) (runs: 103, μ: 8975, ~: 8938) -LibParsePragmaKeywordTest:testPragmaKeywordNoop((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),string) (runs: 103, μ: 16098, ~: 15977) -LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserBasic(string,address,uint256,string) (runs: 103, μ: 175315, ~: 164875) -LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserCoupleOfAddresses(string,string,address,address,uint256,string) (runs: 103, μ: 355324, ~: 366997) +LibParseParseWordTest:testLibParseParseWordTooLong(bytes) (runs: 2053, μ: 9727, ~: 9660) +LibParsePragmaKeywordTest:testPragmaKeywordNoWhitespace(uint256,string) (runs: 106, μ: 8977, ~: 8938) +LibParsePragmaKeywordTest:testPragmaKeywordNoop((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),string) (runs: 106, μ: 15977, ~: 15900) +LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserBasic(string,address,uint256,string) (runs: 105, μ: 172776, ~: 159831) +LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserCoupleOfAddresses(string,string,address,address,uint256,string) (runs: 105, μ: 351062, ~: 360664) LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserSpecificStrings() (gas: 254483) -LibParsePragmaKeywordTest:testPragmaKeywordWhitespaceNoHex(uint256,string) (runs: 103, μ: 19766, ~: 17529) +LibParsePragmaKeywordTest:testPragmaKeywordWhitespaceNoHex(uint256,string) (runs: 106, μ: 19623, ~: 17463) LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored00() (gas: 8389) LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored01() (gas: 8451) LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored02() (gas: 8537) @@ -910,65 +934,65 @@ LibParseSingleRHSNamedGasTest:testParseGasRHS30() (gas: 119933) LibParseSourceInputsTest:testParseSourceInputsEmptyLinePrefix() (gas: 49446) LibParseSourceInputsTest:testParseSourceInputsMultipleLines() (gas: 52189) LibParseSourceInputsTest:testParseSourceInputsSingle() (gas: 49423) -LibParseStackNameTest:testPushAndRetrieveStackNameDouble((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),bytes32,bytes32) (runs: 2051, μ: 20473, ~: 20340) -LibParseStackNameTest:testPushAndRetrieveStackNameDoubleIdentical((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),bytes32) (runs: 2051, μ: 17754, ~: 17668) -LibParseStackNameTest:testPushAndRetrieveStackNameMany((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),uint256) (runs: 2051, μ: 313075, ~: 260406) -LibParseStackNameTest:testPushAndRetrieveStackNameSingle((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),bytes32) (runs: 2051, μ: 17718, ~: 17632) -LibParseStateConstantValueBloomTest:testConstantValueBloom(bytes32) (runs: 2051, μ: 3330, ~: 3330) +LibParseStackNameTest:testPushAndRetrieveStackNameDouble((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),bytes32,bytes32) (runs: 2054, μ: 20466, ~: 20333) +LibParseStackNameTest:testPushAndRetrieveStackNameDoubleIdentical((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),bytes32) (runs: 2054, μ: 17746, ~: 17662) +LibParseStackNameTest:testPushAndRetrieveStackNameMany((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),uint256) (runs: 2054, μ: 312925, ~: 260148) +LibParseStackNameTest:testPushAndRetrieveStackNameSingle((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),bytes32) (runs: 2054, μ: 17710, ~: 17626) +LibParseStateConstantValueBloomTest:testConstantValueBloom(bytes32) (runs: 2054, μ: 3330, ~: 3330) LibParseStateConstantValueBloomTest:testConstantValueBloomAllBits() (gas: 45879) -LibParseStateConstantValueBloomTest:testConstantValueBloomSingleBit(bytes32) (runs: 2051, μ: 3447, ~: 3447) -LibParseStateExportSubParsersTest:testExportSubParsers((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address[]) (runs: 2051, μ: 148098, ~: 144441) -LibParseStateNewActiveSourcePointerTest:testAlignedOldPointer(uint256,uint256) (runs: 2051, μ: 13350, ~: 13470) -LibParseStateNewActiveSourcePointerTest:testPostUnalignedNewPointer(uint256) (runs: 2051, μ: 7158, ~: 7158) +LibParseStateConstantValueBloomTest:testConstantValueBloomSingleBit(bytes32) (runs: 2054, μ: 3447, ~: 3447) +LibParseStateExportSubParsersTest:testExportSubParsers((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address[]) (runs: 2054, μ: 148023, ~: 144428) +LibParseStateNewActiveSourcePointerTest:testAlignedOldPointer(uint256,uint256) (runs: 2054, μ: 13351, ~: 13470) +LibParseStateNewActiveSourcePointerTest:testPostUnalignedNewPointer(uint256) (runs: 2054, μ: 7158, ~: 7158) LibParseStateNewActiveSourcePointerTest:testPreUnalignedNewPointer() (gas: 9188) -LibParseStateNewActiveSourcePointerTest:testZeroOldPointer(bytes) (runs: 2051, μ: 4802, ~: 4799) -LibParseStatePushConstantValueTest:testPushConstantValueEmpty(bytes,bytes,bytes,bytes) (runs: 2051, μ: 6477, ~: 6474) -LibParseStatePushConstantValueTest:testPushConstantValueMany(bytes32[]) (runs: 2051, μ: 225825, ~: 226516) -LibParseStatePushConstantValueTest:testPushConstantValueSingle(bytes32) (runs: 2051, μ: 7030, ~: 7030) -LibParseStatePushSubParserTest:testPushSubParserList((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address[]) (runs: 2051, μ: 134705, ~: 131717) -LibParseStatePushSubParserTest:testPushSubParserMultiple((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address,address,address) (runs: 2051, μ: 17007, ~: 16935) -LibParseStatePushSubParserTest:testPushSubParserOverflow((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),uint256) (runs: 2051, μ: 44732, ~: 45094) -LibParseStatePushSubParserTest:testPushSubParserZero((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address) (runs: 2051, μ: 15487, ~: 15501) +LibParseStateNewActiveSourcePointerTest:testZeroOldPointer(bytes) (runs: 2054, μ: 4802, ~: 4799) +LibParseStatePushConstantValueTest:testPushConstantValueEmpty(bytes,bytes,bytes,bytes) (runs: 2054, μ: 6477, ~: 6474) +LibParseStatePushConstantValueTest:testPushConstantValueMany(bytes32[]) (runs: 2054, μ: 225523, ~: 226516) +LibParseStatePushConstantValueTest:testPushConstantValueSingle(bytes32) (runs: 2054, μ: 7030, ~: 7030) +LibParseStatePushSubParserTest:testPushSubParserList((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address[]) (runs: 2054, μ: 134636, ~: 131686) +LibParseStatePushSubParserTest:testPushSubParserMultiple((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address,address,address) (runs: 2054, μ: 17000, ~: 16925) +LibParseStatePushSubParserTest:testPushSubParserOverflow((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),uint256) (runs: 2054, μ: 44711, ~: 44987) +LibParseStatePushSubParserTest:testPushSubParserZero((uint256,uint256,uint256,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256,bytes32,bytes,bytes,bytes32[],uint256,bytes,bytes),address) (runs: 2054, μ: 15480, ~: 15478) LibParseUnclosedLeftParenTest:testParseUnclosedLeftParen() (gas: 48678) LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested() (gas: 68700) LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested2() (gas: 70248) LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested3() (gas: 80148) LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested4() (gas: 80013) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadIgnoredTail(uint8) (runs: 2050, μ: 46790, ~: 46791) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadNamedTail(uint8,bytes) (runs: 2051, μ: 52910, ~: 52956) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadIgnoredTail(uint8) (runs: 2053, μ: 46790, ~: 46791) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadNamedTail(uint8,bytes) (runs: 2054, μ: 52910, ~: 52956) LibParseUnexpectedLHSTest:testParseUnexpectedLHSEOF() (gas: 132631) LibParseUnexpectedLHSTest:testParseUnexpectedLHSEOL() (gas: 132654) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSSingleChar(uint8) (runs: 2050, μ: 46382, ~: 46382) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSSingleChar(uint8) (runs: 2053, μ: 46382, ~: 46382) LibParseUnexpectedLHSTest:testParseUnexpectedLHSUnderscoreTail() (gas: 134986) -LibParseUnexpectedRHSTest:testParseUnexpectedRHS(uint8) (runs: 2051, μ: 46615, ~: 46615) +LibParseUnexpectedRHSTest:testParseUnexpectedRHS(uint8) (runs: 2054, μ: 46615, ~: 46615) LibParseUnexpectedRHSTest:testParseUnexpectedRHSLeftParen() (gas: 46106) LibParseUnexpectedRightParenTest:testParseUnexpectedRightParen() (gas: 50722) LibParseUnexpectedRightParenTest:testParseUnexpectedRightParenNested() (gas: 56990) -LibSubParseSubParserExternTest:testLibSubParseSubParserExtern(address,uint8,uint8,uint8,uint16,uint8) (runs: 2051, μ: 13229, ~: 13163) -LibSubParseSubParserExternTest:testLibSubParseSubParserExternConstantsHeightOverflow(address,uint256,uint8,uint8,uint16,uint8) (runs: 2051, μ: 11433, ~: 11167) -RainterpreterExpressionDeployerDeployCheckTest:testRainterpreterExpressionDeployerDeployNoEIP1820() (gas: 8021157) -RainterpreterExpressionDeployerDescribedByMetaV1Test:testRainterpreterExpressionDeployerDescribedByMetaV1Happy() (gas: 8032789) -RainterpreterExpressionDeployerIERC165Test:testRainterpreterExpressionDeployerIERC165(bytes4) (runs: 2051, μ: 8028598, ~: 8028598) +LibSubParseSubParserExternTest:testLibSubParseSubParserExtern(address,uint8,uint8,uint8,uint16,uint8) (runs: 2054, μ: 13230, ~: 13163) +LibSubParseSubParserExternTest:testLibSubParseSubParserExternConstantsHeightOverflow(address,uint256,uint8,uint8,uint16,uint8) (runs: 2054, μ: 11434, ~: 11167) +RainterpreterExpressionDeployerDeployCheckTest:testRainterpreterExpressionDeployerDeployNoEIP1820() (gas: 8133157) +RainterpreterExpressionDeployerDescribedByMetaV1Test:testRainterpreterExpressionDeployerDescribedByMetaV1Happy() (gas: 8145229) +RainterpreterExpressionDeployerIERC165Test:testRainterpreterExpressionDeployerIERC165(bytes4) (runs: 2054, μ: 8140598, ~: 8140598) RainterpreterExpressionDeployerMetaTest:testRainterpreterExpressionDeployerExpectedConstructionMetaHash() (gas: 6221) -RainterpreterIERC165Test:testRainterpreterIERC165(bytes4) (runs: 2051, μ: 2862419, ~: 2862419) -RainterpreterParserIERC165Test:testRainterpreterParserIERC165(bytes4) (runs: 2051, μ: 3501481, ~: 3501481) -RainterpreterParserParserPragma:testParsePragmaNoPragma() (gas: 17489805) -RainterpreterParserParserPragma:testParsePragmaSinglePragma() (gas: 10545610) -RainterpreterParserParserPragma:testParsePragmaWithInterstitial() (gas: 10548902) -RainterpreterParserPointersTest:testLiteralParserFunctionPointers() (gas: 3500487) -RainterpreterParserPointersTest:testOperandHandlerFunctionPointers() (gas: 3507379) -RainterpreterParserPointersTest:testParserParseMeta() (gas: 2072570) -RainterpreterPointersTest:testOpcodeFunctionPointers() (gas: 2868300) -RainterpreterReferenceExternContextRainlenTest:testRainterpreterReferenceExterNPE2ContextRainlenHappy() (gas: 2160079) -RainterpreterReferenceExternContextSenderTest:testRainterpreterReferenceExterNPE2ContextContractHappy() (gas: 2159665) -RainterpreterReferenceExternContextSenderTest:testRainterpreterReferenceExterNPE2ContextSenderHappy() (gas: 2158362) +RainterpreterIERC165Test:testRainterpreterIERC165(bytes4) (runs: 2054, μ: 2953037, ~: 2953037) +RainterpreterParserIERC165Test:testRainterpreterParserIERC165(bytes4) (runs: 2054, μ: 3513713, ~: 3513713) +RainterpreterParserParserPragma:testParsePragmaNoPragma() (gas: 17550960) +RainterpreterParserParserPragma:testParsePragmaSinglePragma() (gas: 10582305) +RainterpreterParserParserPragma:testParsePragmaWithInterstitial() (gas: 10585597) +RainterpreterParserPointersTest:testLiteralParserFunctionPointers() (gas: 3512719) +RainterpreterParserPointersTest:testOperandHandlerFunctionPointers() (gas: 3519836) +RainterpreterParserPointersTest:testParserParseMeta() (gas: 4331047) +RainterpreterPointersTest:testOpcodeFunctionPointers() (gas: 2959143) +RainterpreterReferenceExternContextRainlenTest:testRainterpreterReferenceExterNPE2ContextRainlenHappy() (gas: 2160759) +RainterpreterReferenceExternContextSenderTest:testRainterpreterReferenceExterNPE2ContextContractHappy() (gas: 2160345) +RainterpreterReferenceExternContextSenderTest:testRainterpreterReferenceExterNPE2ContextSenderHappy() (gas: 2159042) RainterpreterReferenceExternDescribedByMetaV1:testRainterpreterReferenceExternDescribedByMetaV1Happy() (gas: 2081641) -RainterpreterReferenceExternIERC165Test:testRainterpreterReferenceExternIERC165(bytes4) (runs: 2051, μ: 2093899, ~: 2093899) -RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncHappySugared() (gas: 2183821) -RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncHappyUnsugared() (gas: 2178059) -RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncIntegrity(bytes32,uint256,uint256) (runs: 103, μ: 3597, ~: 3597) -RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncRun(bytes32,bytes32[]) (runs: 103, μ: 748483, ~: 753647) -RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncSubParseKnownWord(uint16,bytes1) (runs: 103, μ: 2095494, ~: 2095759) +RainterpreterReferenceExternIERC165Test:testRainterpreterReferenceExternIERC165(bytes4) (runs: 2054, μ: 2093899, ~: 2093899) +RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncHappySugared() (gas: 2184501) +RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncHappyUnsugared() (gas: 2178065) +RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncIntegrity(bytes32,uint256,uint256) (runs: 106, μ: 3597, ~: 3597) +RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncRun(bytes32,bytes32[]) (runs: 106, μ: 757126, ~: 757649) +RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncSubParseKnownWord(uint16,bytes1) (runs: 106, μ: 2095508, ~: 2095759) RainterpreterReferenceExternIntIncTest:testRainterpreterReferenceExternIntIncSubParseUnknownWord(uint16,bytes1,bytes) (runs: 101, μ: 2091861, ~: 2091662) RainterpreterReferenceExternPointersTest:testIntegrityFunctionPointers() (gas: 2081736) RainterpreterReferenceExternPointersTest:testOpcodeFunctionPointers() (gas: 2081779) @@ -976,14 +1000,14 @@ RainterpreterReferenceExternPointersTest:testSubParserFunctionPointers() (gas: 2 RainterpreterReferenceExternPointersTest:testSubParserLiteralParsers() (gas: 2081756) RainterpreterReferenceExternPointersTest:testSubParserOperandParsers() (gas: 2082229) RainterpreterReferenceExternPointersTest:testSubParserParseMeta() (gas: 22017) -RainterpreterReferenceExternRepeatTest:testRainterpreterReferenceExternRepeatHappy() (gas: 2213012) -RainterpreterReferenceExternStackOperandTest:testRainterpreterReferenceExternStackOperandSingle(uint256) (runs: 2051, μ: 2167527, ~: 2167612) -RainterpreterReferenceExternUnknownWordTest:testRainterpreterReferenceExternUnknownWord() (gas: 2128703) -RainterpreterStateOverlayTest:testStateOverlayGet() (gas: 52375) -RainterpreterStateOverlayTest:testStateOverlaySet() (gas: 83109) -RainterpreterStoreIERC165Test:testRainterpreterStoreIERC165(bytes4) (runs: 2051, μ: 229923, ~: 229923) -RainterpreterStoreTest:testRainterpreterStoreSetGetDupes((uint256,bytes32[11])[]) (runs: 100, μ: 1612385, ~: 1605278) -RainterpreterStoreTest:testRainterpreterStoreSetGetNoDupesMany((uint256,bytes32[])[]) (runs: 103, μ: 3525483, ~: 3382959) -RainterpreterStoreTest:testRainterpreterStoreSetGetNoDupesSingle(uint256,bytes32[]) (runs: 103, μ: 1845918, ~: 1739087) -RainterpreterStoreTest:testRainterpreterStoreSetOddLength(uint256,bytes32[]) (runs: 103, μ: 249213, ~: 249274) +RainterpreterReferenceExternRepeatTest:testRainterpreterReferenceExternRepeatHappy() (gas: 2213024) +RainterpreterReferenceExternStackOperandTest:testRainterpreterReferenceExternStackOperandSingle(uint256) (runs: 2054, μ: 2168209, ~: 2168292) +RainterpreterReferenceExternUnknownWordTest:testRainterpreterReferenceExternUnknownWord() (gas: 2129384) +RainterpreterStateOverlayTest:testStateOverlayGet() (gas: 52382) +RainterpreterStateOverlayTest:testStateOverlaySet() (gas: 83115) +RainterpreterStoreIERC165Test:testRainterpreterStoreIERC165(bytes4) (runs: 2054, μ: 229923, ~: 229923) +RainterpreterStoreTest:testRainterpreterStoreSetGetDupes((uint256,bytes32[11])[]) (runs: 103, μ: 1601465, ~: 1605247) +RainterpreterStoreTest:testRainterpreterStoreSetGetNoDupesMany((uint256,bytes32[])[]) (runs: 106, μ: 3461003, ~: 3346528) +RainterpreterStoreTest:testRainterpreterStoreSetGetNoDupesSingle(uint256,bytes32[]) (runs: 106, μ: 1871673, ~: 1805353) +RainterpreterStoreTest:testRainterpreterStoreSetOddLength(uint256,bytes32[]) (runs: 105, μ: 249321, ~: 249274) RainterpreterTest:testRainterpreterOddFunctionPointersLength() (gas: 3684) \ No newline at end of file diff --git a/test/src/lib/op/math/LibOpFrac.t.sol b/test/src/lib/op/math/LibOpFrac.t.sol index e219d2a49..57b76d51e 100644 --- a/test/src/lib/op/math/LibOpFrac.t.sol +++ b/test/src/lib/op/math/LibOpFrac.t.sol @@ -1,60 +1,61 @@ // SPDX-License-Identifier: CAL pragma solidity =0.8.25; -// import {OpTest, IntegrityCheckState, Operand, InterpreterState, UnexpectedOperand} from "test/abstract/OpTest.sol"; -// import {LibOpFrac} from "src/lib/op/math/LibOpFrac.sol"; -// import {LibOperand} from "test/lib/operand/LibOperand.sol"; - -// contract LibOpFracTest is OpTest { -// /// Directly test the integrity logic of LibOpFrac. -// /// Inputs are always 1, outputs are always 1. -// function testOpFracIntegrity(IntegrityCheckState memory state, Operand operand) external pure { -// (uint256 calcInputs, uint256 calcOutputs) = LibOpFrac.integrity(state, operand); -// assertEq(calcInputs, 1); -// assertEq(calcOutputs, 1); -// } - -// /// Directly test the runtime logic of LibOpFrac. -// function testOpFracRun(uint256 a, uint16 operandData) public view { -// a = bound(a, 0, type(uint64).max - 1e18); -// InterpreterState memory state = opTestDefaultInterpreterState(); - -// Operand operand = LibOperand.build(1, 1, operandData); -// uint256[] memory inputs = new uint256[](1); -// inputs[0] = a; - -// opReferenceCheck(state, operand, LibOpFrac.referenceFn, LibOpFrac.integrity, LibOpFrac.run, inputs); -// } - -// /// Test the eval of `frac`. -// function testOpFracEval() external view { -// checkHappy("_: frac(0);", 0, "0"); -// checkHappy("_: frac(1);", 0, "1"); -// checkHappy("_: frac(0.5);", 0.5e18, "0.5"); -// checkHappy("_: frac(2);", 0, "2"); -// checkHappy("_: frac(3);", 0, "3"); -// checkHappy("_: frac(3.8);", 0.8e18, "3.8"); -// } - -// /// Test the eval of `frac` for bad inputs. -// function testOpFracZeroInputs() external { -// checkBadInputs("_: frac();", 0, 1, 0); -// } - -// function testOpFracTwoInputs() external { -// checkBadInputs("_: frac(1 1);", 2, 1, 2); -// } - -// function testOpFracZeroOutputs() external { -// checkBadOutputs(": frac(1);", 1, 1, 0); -// } - -// function testOpFracTwoOutputs() external { -// checkBadOutputs("_ _: frac(1);", 1, 1, 2); -// } - -// /// Test that operand is disallowed. -// function testOpFracEvalOperandDisallowed() external { -// checkUnhappyParse("_: frac<0>(1);", abi.encodeWithSelector(UnexpectedOperand.selector)); -// } -// } +import {OpTest, IntegrityCheckState, OperandV2, InterpreterState, UnexpectedOperand} from "test/abstract/OpTest.sol"; +import {LibOpFrac} from "src/lib/op/math/LibOpFrac.sol"; +import {LibOperand} from "test/lib/operand/LibOperand.sol"; +import {LibDecimalFloat, Float} from "rain.math.float/lib/LibDecimalFloat.sol"; +import {StackItem} from "rain.interpreter.interface/interface/unstable/IInterpreterV4.sol"; + +contract LibOpFracTest is OpTest { + /// Directly test the integrity logic of LibOpFrac. + /// Inputs are always 1, outputs are always 1. + function testOpFracIntegrity(IntegrityCheckState memory state, OperandV2 operand) external pure { + (uint256 calcInputs, uint256 calcOutputs) = LibOpFrac.integrity(state, operand); + assertEq(calcInputs, 1); + assertEq(calcOutputs, 1); + } + + /// Directly test the runtime logic of LibOpFrac. + function testOpFracRun(Float a, uint16 operandData) public view { + InterpreterState memory state = opTestDefaultInterpreterState(); + + OperandV2 operand = LibOperand.build(1, 1, operandData); + StackItem[] memory inputs = new StackItem[](1); + inputs[0] = StackItem.wrap(Float.unwrap(a)); + + opReferenceCheck(state, operand, LibOpFrac.referenceFn, LibOpFrac.integrity, LibOpFrac.run, inputs); + } + + /// Test the eval of `frac`. + function testOpFracEval() external view { + checkHappy("_: frac(0);", 0, "0"); + checkHappy("_: frac(1);", 0, "1"); + checkHappy("_: frac(0.5);", Float.unwrap(LibDecimalFloat.packLossless(0.5e1, -1)), "0.5"); + checkHappy("_: frac(2);", 0, "2"); + checkHappy("_: frac(3);", 0, "3"); + checkHappy("_: frac(3.8);", Float.unwrap(LibDecimalFloat.packLossless(0.8e1, -1)), "3.8"); + } + + /// Test the eval of `frac` for bad inputs. + function testOpFracZeroInputs() external { + checkBadInputs("_: frac();", 0, 1, 0); + } + + function testOpFracTwoInputs() external { + checkBadInputs("_: frac(1 1);", 2, 1, 2); + } + + function testOpFracZeroOutputs() external { + checkBadOutputs(": frac(1);", 1, 1, 0); + } + + function testOpFracTwoOutputs() external { + checkBadOutputs("_ _: frac(1);", 1, 1, 2); + } + + /// Test that operand is disallowed. + function testOpFracEvalOperandDisallowed() external { + checkUnhappyParse("_: frac<0>(1);", abi.encodeWithSelector(UnexpectedOperand.selector)); + } +} From 8bbf91dc0b5fa7d1ac4adce205b56b9013277c6a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Tue, 29 Jul 2025 00:40:25 +0400 Subject: [PATCH 3/3] frac op --- .gas-snapshot | 2 +- test/src/lib/op/math/LibOpFrac.t.sol | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gas-snapshot b/.gas-snapshot index bef85e17a..42c9343a7 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -277,7 +277,7 @@ LibOpExternNPTest:testOpExternNPEvalMultipleInputsOutputsHappy() (gas: 115356) LibOpExternNPTest:testOpExternNPIntegrityHappy((uint256,uint256,uint256,bytes32[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2053, μ: 34952, ~: 34868) LibOpExternNPTest:testOpExternNPIntegrityNotAnExternContract((uint256,uint256,uint256,bytes32[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2053, μ: 53440, ~: 53572) LibOpExternNPTest:testOpExternNPRunHappy(address,bytes32[],uint16,bytes32[],bytes32[]) (runs: 2053, μ: 117914, ~: 117792) -LibOpFracTest:testOpFracEval() (gas: 253604) +LibOpFracTest:testOpFracEval() (gas: 337354) LibOpFracTest:testOpFracEvalOperandDisallowed() (gas: 17638) LibOpFracTest:testOpFracIntegrity((uint256,uint256,uint256,bytes32[],uint256,bytes),bytes32) (runs: 2054, μ: 13792, ~: 13702) LibOpFracTest:testOpFracRun(bytes32,uint16) (runs: 2054, μ: 17113, ~: 17096) diff --git a/test/src/lib/op/math/LibOpFrac.t.sol b/test/src/lib/op/math/LibOpFrac.t.sol index 57b76d51e..831949c03 100644 --- a/test/src/lib/op/math/LibOpFrac.t.sol +++ b/test/src/lib/op/math/LibOpFrac.t.sol @@ -35,6 +35,8 @@ contract LibOpFracTest is OpTest { checkHappy("_: frac(2);", 0, "2"); checkHappy("_: frac(3);", 0, "3"); checkHappy("_: frac(3.8);", Float.unwrap(LibDecimalFloat.packLossless(0.8e1, -1)), "3.8"); + checkHappy("_: frac(-0.5);", Float.unwrap(LibDecimalFloat.packLossless(-0.5e1, -1)), "-0.5"); + checkHappy("_: frac(1.5e10);", Float.unwrap(LibDecimalFloat.packLossless(0, 9)), "1.5e10"); } /// Test the eval of `frac` for bad inputs.