From 14b553897ebef832305984e2737400d787ac61c7 Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 23 Jan 2019 11:12:49 +0100 Subject: [PATCH] Tests. --- test/libsolidity/SolidityTypes.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/libsolidity/SolidityTypes.cpp b/test/libsolidity/SolidityTypes.cpp index c839afd4d..251835fe2 100644 --- a/test/libsolidity/SolidityTypes.cpp +++ b/test/libsolidity/SolidityTypes.cpp @@ -219,6 +219,30 @@ BOOST_AUTO_TEST_CASE(type_identifiers) BOOST_CHECK_EQUAL(InaccessibleDynamicType().identifier(), "t_inaccessible"); } +BOOST_AUTO_TEST_CASE(encoded_sizes) +{ + BOOST_CHECK_EQUAL(IntegerType(16).calldataEncodedSize(true), 32); + BOOST_CHECK_EQUAL(IntegerType(16).calldataEncodedSize(false), 2); + + BOOST_CHECK_EQUAL(FixedBytesType(16).calldataEncodedSize(true), 32); + BOOST_CHECK_EQUAL(FixedBytesType(16).calldataEncodedSize(false), 16); + + BOOST_CHECK_EQUAL(BoolType().calldataEncodedSize(true), 32); + BOOST_CHECK_EQUAL(BoolType().calldataEncodedSize(false), 1); + + shared_ptr uint24Array = make_shared( + DataLocation::Memory, + make_shared(24), + 9 + ); + BOOST_CHECK_EQUAL(uint24Array->calldataEncodedSize(true), 9 * 32); + BOOST_CHECK_EQUAL(uint24Array->calldataEncodedSize(false), 9 * 32); + + ArrayType twoDimArray(DataLocation::Memory, uint24Array, 3); + BOOST_CHECK_EQUAL(twoDimArray.calldataEncodedSize(true), 9 * 3 * 32); + BOOST_CHECK_EQUAL(twoDimArray.calldataEncodedSize(false), 9 * 3 * 32); +} + BOOST_AUTO_TEST_SUITE_END() }