aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRJ Catalano <rcatalano@macsales.com>2016-03-12 07:53:54 +0800
committerVoR0220 <catalanor0220@gmail.com>2016-05-10 00:41:02 +0800
commit91fda50922865c1dbeed34652c30ac89f5edfadf (patch)
treee908f41e77eab2f95b84a6750c4d6df31b5c8123 /test
parentdff1a26f55adc54ccfddfa9d2e87f1dab719d8ca (diff)
downloaddexon-solidity-91fda50922865c1dbeed34652c30ac89f5edfadf.tar.gz
dexon-solidity-91fda50922865c1dbeed34652c30ac89f5edfadf.tar.zst
dexon-solidity-91fda50922865c1dbeed34652c30ac89f5edfadf.zip
fixed problem with var...probably a conversion problem for fixed in size capabilities
adding fixed type tests Removing bitshift and regrouping fixed type tests together
Diffstat (limited to 'test')
-rw-r--r--test/libsolidity/SolidityNameAndTypeResolution.cpp72
1 files changed, 70 insertions, 2 deletions
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp
index 9ead3dcd..9c41dab8 100644
--- a/test/libsolidity/SolidityNameAndTypeResolution.cpp
+++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp
@@ -3222,7 +3222,6 @@ BOOST_AUTO_TEST_CASE(library_functions_do_not_have_value)
BOOST_CHECK(!success(text));
}
-
BOOST_AUTO_TEST_CASE(invalid_fixed_types_0x7_mxn)
{
char const* text = R"(
@@ -3544,9 +3543,41 @@ BOOST_AUTO_TEST_CASE(rational_bitand_binary_operation)
}
}
)";
+
+ BOOST_CHECK(success(text));
+}
+
+
+BOOST_AUTO_TEST_CASE(invalid_non_mod_8_fixed_types)
+{
+ char const* text = R"(
+ contract test {
+ function f(){
+ fixed8x10 a = 12345678.1234567890;
+ }
+ }
+ )";
+
BOOST_CHECK(!success(text));
}
+BOOST_AUTO_TEST_CASE(valid_fixed_types)
+{
+ char const* text = R"(
+ contract test {
+ function f(){
+ fixed8x8 a = 87654321.12345678;
+ fixed16x16 b = a**2;
+ fixed24x24 c = b**(1.5);
+ fixed32x32 d = b**2;
+ fixed40x40 e = a**5;
+ }
+ }
+ )";
+
+ BOOST_CHECK(success(text));
+}
+
BOOST_AUTO_TEST_CASE(fixed_type_int_conversion)
{
char const* text = R"(
@@ -3620,6 +3651,19 @@ BOOST_AUTO_TEST_CASE(fixed_type_literal_seconds_and_wei)
BOOST_CHECK(!success(text));
}
+BOOST_AUTO_TEST_CASE(uint_array_declaration_with_fixed_type)
+{
+ char const* text = R"(
+ contract test {
+ function f() {
+ uint[fixed(3.56)] a;
+ }
+ }
+ )";
+ BOOST_CHECK(!success(text));
+}
+
+
BOOST_AUTO_TEST_CASE(array_declaration_with_fixed_literal)
{
char const* text = R"(
@@ -3645,18 +3689,41 @@ BOOST_AUTO_TEST_CASE(mapping_with_fixed_literal)
BOOST_CHECK(success(text));
}
+BOOST_AUTO_TEST_CASE(inline_array_fixed_type)
+{
+ char const* text = R"(
+ contract test {
+ function f() {
+ fixed[3] memory a = [fixed(3.5), fixed(4.1234), fixed(967.32)];
+ }
+ }
+ )";
+ BOOST_CHECK(success(text));
+}
+
BOOST_AUTO_TEST_CASE(inline_array_fixed_literals)
{
char const* text = R"(
contract test {
function f() {
- fixed[3] memory a = [3.5, 4.1234, 967.32];
+ fixed[3] memory a = [3.5, 4.1234, 967.32];
}
}
)";
BOOST_CHECK(success(text));
}
+BOOST_AUTO_TEST_CASE(zero_and_eight_variants_fixed)
+{
+ char const* text = R"(
+ contract A {
+ fixed8x0 someInt = 4;
+ fixed0x8 half = 0.5;
+ }
+ )";
+ BOOST_CHECK(success(text));
+}
+
BOOST_AUTO_TEST_CASE(size_capabilities_of_fixed_point_types)
{
char const* text = R"(
@@ -3685,6 +3752,7 @@ BOOST_AUTO_TEST_CASE(var_capable_of_holding_fixed_constants)
BOOST_CHECK(success(text));
}
+
BOOST_AUTO_TEST_SUITE_END()
}