diff options
author | Gav Wood <i@gavwood.com> | 2014-01-19 22:42:02 +0800 |
---|---|---|
committer | Gav Wood <i@gavwood.com> | 2014-01-19 22:42:02 +0800 |
commit | 9033480699fb59a307680c39ddb698608a493648 (patch) | |
tree | 4aad7677f7d2b557468ff57aff9321d5bccad095 /hexPrefix.cpp | |
parent | d0381ed9f1716a305da08bf6be70df6652b9c3c3 (diff) | |
download | dexon-solidity-9033480699fb59a307680c39ddb698608a493648.tar.gz dexon-solidity-9033480699fb59a307680c39ddb698608a493648.tar.zst dexon-solidity-9033480699fb59a307680c39ddb698608a493648.zip |
Repotted tests.
Diffstat (limited to 'hexPrefix.cpp')
-rw-r--r-- | hexPrefix.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/hexPrefix.cpp b/hexPrefix.cpp new file mode 100644 index 00000000..cd45cf8d --- /dev/null +++ b/hexPrefix.cpp @@ -0,0 +1,57 @@ +/* + This file is part of cpp-ethereum. + + cpp-ethereum is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Foobar is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Foobar. If not, see <http://www.gnu.org/licenses/>. +*/ +/** @file main.cpp + * @author Gav Wood <i@gavwood.com> + * @date 2014 + * Main test functions. + */ + +#include "TrieCommon.h" +using namespace std; +using namespace eth; + +int hexPrefixTest() +{ + /* + * Hex-prefix Notation. First nibble has flags: oddness = 2^0 & termination = 2^1 + * [0,0,1,2,3,4,5] 0x10012345 + * [0,1,2,3,4,5] 0x00012345 + * [1,2,3,4,5] 0x112345 + * [0,0,1,2,3,4] 0x00001234 + * [0,1,2,3,4] 0x101234 + * [1,2,3,4] 0x001234 + * [0,0,1,2,3,4,5,T] 0x30012345 + * [0,0,1,2,3,4,T] 0x20001234 + * [0,1,2,3,4,5,T] 0x20012345 + * [1,2,3,4,5,T] 0x312345 + * [1,2,3,4,T] 0x201234 + */ + assert(asHex(hexPrefixEncode({0, 0, 1, 2, 3, 4, 5}, false)) == "10012345"); + assert(asHex(hexPrefixEncode({0, 1, 2, 3, 4, 5}, false)) == "00012345"); + assert(asHex(hexPrefixEncode({1, 2, 3, 4, 5}, false)) == "112345"); + assert(asHex(hexPrefixEncode({0, 0, 1, 2, 3, 4}, false)) == "00001234"); + assert(asHex(hexPrefixEncode({0, 1, 2, 3, 4}, false)) == "101234"); + assert(asHex(hexPrefixEncode({1, 2, 3, 4}, false)) == "001234"); + assert(asHex(hexPrefixEncode({0, 0, 1, 2, 3, 4, 5}, true)) == "30012345"); + assert(asHex(hexPrefixEncode({0, 0, 1, 2, 3, 4}, true)) == "20001234"); + assert(asHex(hexPrefixEncode({0, 1, 2, 3, 4, 5}, true)) == "20012345"); + assert(asHex(hexPrefixEncode({1, 2, 3, 4, 5}, true)) == "312345"); + assert(asHex(hexPrefixEncode({1, 2, 3, 4}, true)) == "201234"); + + return 0; +} + |