From 46726a6ff93f0e1aebf16d4566d3c98d1af86c62 Mon Sep 17 00:00:00 2001 From: ritzdorf Date: Tue, 27 Jun 2017 14:42:35 +0200 Subject: [PATCH 1/3] Avoid division by zero which triggers exception. Compare directly to zero. --- strings_test.sol | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/strings_test.sol b/strings_test.sol index efd182c7..6eccc9a6 100644 --- a/strings_test.sol +++ b/strings_test.sol @@ -86,15 +86,15 @@ contract StringsTest is Test { } function testCompare() { - assertEq(sign("foobie".toSlice().compare("foobie".toSlice())), 0); - assertEq(sign("foobie".toSlice().compare("foobie".toSlice())), 0); + assertEq("foobie".toSlice().compare("foobie".toSlice()), 0); + assertEq("foobie".toSlice().compare("foobie".toSlice()), 0); assertEq(sign("foobie".toSlice().compare("foobif".toSlice())), -1); assertEq(sign("foobie".toSlice().compare("foobid".toSlice())), 1); assertEq(sign("foobie".toSlice().compare("foobies".toSlice())), -1); assertEq(sign("foobie".toSlice().compare("foobi".toSlice())), 1); assertEq(sign("foobie".toSlice().compare("doobie".toSlice())), 1); assertEq(sign("01234567890123456789012345678901".toSlice().compare("012345678901234567890123456789012".toSlice())), -1); - assertEq(sign("foo.bar".toSlice().split(".".toSlice()).compare("foo".toSlice())), 0); + assertEq("foo.bar".toSlice().split(".".toSlice()).compare("foo".toSlice()), 0); } function testStartsWith() { From a315155e52288124a096b707b17b00cf782ac174 Mon Sep 17 00:00:00 2001 From: ritzdorf Date: Tue, 27 Jun 2017 14:52:20 +0200 Subject: [PATCH 2/3] Previous unicodes didn't work for me got message "contains invalid UTF-8 sequence at position 9". --- strings_test.sol | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/strings_test.sol b/strings_test.sol index 6eccc9a6..78c2b425 100644 --- a/strings_test.sol +++ b/strings_test.sol @@ -66,14 +66,14 @@ contract StringsTest is Test { } function testNextRune() { - var s = "a¡ࠀ𐀡".toSlice(); + var s = "a¡á→".toSlice(); assertEq(s.nextRune(), "a"); - assertEq(s, "¡ࠀ𐀡"); + assertEq(s, "¡á→"); assertEq(s.nextRune(), "¡"); - assertEq(s, "ࠀ𐀡"); - assertEq(s.nextRune(), "ࠀ"); - assertEq(s, "𐀡"); - assertEq(s.nextRune(), "𐀡"); + assertEq(s, "á→"); + assertEq(s.nextRune(), "á"); + assertEq(s, "→"); + assertEq(s.nextRune(), "→"); assertEq(s, ""); assertEq(s.nextRune(), ""); } @@ -81,8 +81,8 @@ contract StringsTest is Test { function testOrd() { assertEq("a".toSlice().ord(), 0x61); assertEq("¡".toSlice().ord(), 0xA1); - assertEq("ࠀ".toSlice().ord(), 0x800); - assertEq("𐀡".toSlice().ord(), 0x10021); + assertEq("á".toSlice().ord(), 0xE1); + assertEq("→".toSlice().ord(), 0x2192); } function testCompare() { From d9b41b2c7cd06e41d28228a364f0af7cdd2d0625 Mon Sep 17 00:00:00 2001 From: ritzdorf Date: Tue, 27 Jun 2017 14:53:20 +0200 Subject: [PATCH 3/3] add pragma to get rid of warning --- strings.sol | 1 + strings_test.sol | 1 + 2 files changed, 2 insertions(+) diff --git a/strings.sol b/strings.sol index 0a2d68bd..7f2d0ef4 100644 --- a/strings.sol +++ b/strings.sol @@ -1,3 +1,4 @@ +pragma solidity ^0.4.11; /* * @title String & slice utility library for Solidity contracts. * @author Nick Johnson diff --git a/strings_test.sol b/strings_test.sol index 78c2b425..aa90b310 100644 --- a/strings_test.sol +++ b/strings_test.sol @@ -1,3 +1,4 @@ +pragma solidity ^0.4.11; import 'dapple/test.sol'; import 'strings.sol';