aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorVoR0220 <catalanor0220@gmail.com>2016-04-08 14:19:20 +0800
committerVoR0220 <catalanor0220@gmail.com>2016-05-10 00:41:03 +0800
commit82039b732eb8855a5a9fac228734bf16081071c8 (patch)
tree78deb9a2ce527ce44e4bc3493950e907c78df500 /test
parentf0ea817580d7f8d5c5177adf1a2e39e5e560fefc (diff)
downloaddexon-solidity-82039b732eb8855a5a9fac228734bf16081071c8.tar.gz
dexon-solidity-82039b732eb8855a5a9fac228734bf16081071c8.tar.zst
dexon-solidity-82039b732eb8855a5a9fac228734bf16081071c8.zip
added bytes conversion tests, resolved that, converted to binary scaling, refactored the find algo to prevent large numbers and take into account integer bytes
think we're good on solidity type name resolution now removed couts updates to documentation and more removed couts along with literal value implementation forgot semicolons
Diffstat (limited to 'test')
-rw-r--r--test/libsolidity/SolidityEndToEndTest.cpp4
-rw-r--r--test/libsolidity/SolidityNameAndTypeResolution.cpp86
2 files changed, 64 insertions, 26 deletions
diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp
index c3bac3d7..67748c1f 100644
--- a/test/libsolidity/SolidityEndToEndTest.cpp
+++ b/test/libsolidity/SolidityEndToEndTest.cpp
@@ -6634,7 +6634,7 @@ BOOST_AUTO_TEST_CASE(delete_on_array_of_structs)
}
-BOOST_AUTO_TEST_CASE(fixed_data_type)
+/*BOOST_AUTO_TEST_CASE(fixed_data_type)
{
char const* sourceCode = R"(
contract C {
@@ -6654,7 +6654,7 @@ BOOST_AUTO_TEST_CASE(fixed_data_type_expression)
}
)";
compileAndRun(sourceCode, 0, "C");
-}
+}*/
BOOST_AUTO_TEST_CASE(internal_library_function)
{
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp
index c3878f3e..a4eec7e6 100644
--- a/test/libsolidity/SolidityNameAndTypeResolution.cpp
+++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp
@@ -3278,16 +3278,16 @@ BOOST_AUTO_TEST_CASE(invalid_fixed_type_long)
BOOST_CHECK(!success(text));
}
-BOOST_AUTO_TEST_CASE(valid_fixed_types)
+BOOST_AUTO_TEST_CASE(valid_fixed_types_casting)
{
char const* text = R"(
contract test {
function f(){
- fixed8x8 a = 87654321.12345678;
- fixed16x16 b = a**2;
- fixed24x24 c = b**3;
- fixed32x32 d = b**2;
- fixed40x40 e = a**5;
+ ufixed8x8 a = ufixed8x8(8765.1234);
+ ufixed16x16 b = a**2;
+ ufixed24x24 c = b**3;
+ ufixed32x32 d = b**2;
+ ufixed40x40 e = a**5;
}
}
)";
@@ -3310,7 +3310,7 @@ BOOST_AUTO_TEST_CASE(fixed_type_int_conversion)
BOOST_CHECK(success(text));
}
-BOOST_AUTO_TEST_CASE(fixed_type_const_int_conversion)
+BOOST_AUTO_TEST_CASE(fixed_type_rational_conversion)
{
char const* text = R"(
contract test {
@@ -3328,8 +3328,8 @@ BOOST_AUTO_TEST_CASE(fixed_type_literal)
char const* text = R"(
contract test {
function f() {
- fixed a = 3.14;
- ufixed d = 2.555555;
+ fixed a = 4.5;
+ ufixed d = 2.5;
}
}
)";
@@ -3341,12 +3341,12 @@ BOOST_AUTO_TEST_CASE(fixed_type_literal_expression)
char const* text = R"(
contract test {
function f() {
- fixed a = 3.14 * 3;
- ufixed b = 4 - 2.555555;
- fixed c = 1.0 / 3.0;
- ufixed d = 599 + .5367;
- ufixed e = 35.245 % 12.9;
- ufixed f = 1.2 % 2.00000;
+ ufixed8x248 a = 3.14 * 3;
+ ufixed8x248 b = 4 - 2.555555;
+ ufixed0x256 c = 1.0 / 3.0;
+ ufixed16x240 d = 599 + .5367;
+ ufixed8x248 e = 35.245 % 12.9;
+ ufixed8x248 f = 1.2 % 2;
fixed g = 2 ** -2;
}
}
@@ -3354,6 +3354,19 @@ BOOST_AUTO_TEST_CASE(fixed_type_literal_expression)
BOOST_CHECK(success(text));
}
+BOOST_AUTO_TEST_CASE(rational_as_exponent_value)
+{
+ char const* text = R"(
+ contract test {
+ function f() {
+ fixed g = 2 ** -2.2;
+ fixed b = 3 ** 2.56;
+ }
+ }
+ )";
+ BOOST_CHECK(!success(text));
+}
+
BOOST_AUTO_TEST_CASE(fixed_type_invalid_size_conversion)
{
char const* text = R"(
@@ -3408,7 +3421,7 @@ BOOST_AUTO_TEST_CASE(mapping_with_fixed_literal)
{
char const* text = R"(
contract test {
- mapping(fixed => string) fixedString;
+ mapping(ufixed8x248 => string) fixedString;
function f() {
fixedString[3.14] = "Pi";
}
@@ -3434,7 +3447,7 @@ BOOST_AUTO_TEST_CASE(inline_array_fixed_rationals)
char const* text = R"(
contract test {
function f() {
- ufixed8x16[4] memory a = [3.5, 4.1234, 2.5, 4.0];
+ ufixed8x248[4] memory a = [3.5, 4.1234, 2.5, 4.0];
}
}
)";
@@ -3445,8 +3458,8 @@ BOOST_AUTO_TEST_CASE(zero_and_eight_variants_fixed)
{
char const* text = R"(
contract A {
- fixed8x0 someInt = 4;
- fixed0x8 half = 0.5;
+ ufixed8x0 someInt = 4;
+ ufixed0x8 half = 0.5;
}
)";
BOOST_CHECK(success(text));
@@ -3457,9 +3470,9 @@ BOOST_AUTO_TEST_CASE(size_capabilities_of_fixed_point_types)
char const* text = R"(
contract test {
function f() {
- ufixed0x8 a = 0.12345678;
- ufixed8x0 b = 12345678.0;
- ufixed0x8 c = 0.00000009;
+ ufixed0x256 a = 0.12345678;
+ ufixed24x0 b = 12345678.0;
+ ufixed0x256 c = 0.00000009;
}
}
)";
@@ -3510,13 +3523,38 @@ BOOST_AUTO_TEST_CASE(fixed_point_casting_exponents)
BOOST_CHECK(success(text));
}
+BOOST_AUTO_TEST_CASE(rational_to_bytes_implicit_conversion)
+{
+ char const* text = R"(
+ contract test {
+ function f() {
+ bytes32 c = 3.183;
+ }
+ }
+ )";
+ BOOST_CHECK(success(text));
+}
+
+BOOST_AUTO_TEST_CASE(fixed_to_bytes_implicit_conversion)
+{
+ char const* text = R"(
+ contract test {
+ function f() {
+ fixed a = 3.183;
+ bytes32 c = a;
+ }
+ }
+ )";
+ BOOST_CHECK(!success(text));
+}
+
BOOST_AUTO_TEST_CASE(rational_unary_operation)
{
char const* text = R"(
contract test {
function f() {
- fixed a = +3.5134;
- fixed b = -2.5145;
+ ufixed8x248 a = +3.5134;
+ fixed8x248 b = -3.5134;
}
}
)";