diff options
author | Gav Wood <i@gavwood.com> | 2015-03-02 05:54:05 +0800 |
---|---|---|
committer | Gav Wood <i@gavwood.com> | 2015-03-06 19:45:24 +0800 |
commit | 31110cd27a78a04bcec0d8ae3d82f5a9e81ad289 (patch) | |
tree | a1cb671622c6595c8b165a7eda9d72d3ea67fd38 /trie.cpp | |
parent | ebcd518f6a5b5c3f7f90b87b75becc0b631d9c66 (diff) | |
download | dexon-solidity-31110cd27a78a04bcec0d8ae3d82f5a9e81ad289.tar.gz dexon-solidity-31110cd27a78a04bcec0d8ae3d82f5a9e81ad289.tar.zst dexon-solidity-31110cd27a78a04bcec0d8ae3d82f5a9e81ad289.zip |
State integration test.
Fixes to the FatTrie.
Diffstat (limited to 'trie.cpp')
-rw-r--r-- | trie.cpp | 62 |
1 files changed, 0 insertions, 62 deletions
@@ -74,68 +74,6 @@ BOOST_AUTO_TEST_CASE(fat_trie) } } -BOOST_AUTO_TEST_CASE(hex_encoded_securetrie_test) -{ - string testPath = test::getTestPath(); - - testPath += "/TrieTests"; - - cnote << "Testing Secure Trie..."; - js::mValue v; - string s = asString(contents(testPath + "/hex_encoded_securetrie_test.json")); - BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of 'hex_encoded_securetrie_test.json' is empty. Have you cloned the 'tests' repo branch develop?"); - js::read_string(s, v); - for (auto& i: v.get_obj()) - { - cnote << i.first; - js::mObject& o = i.second.get_obj(); - vector<pair<string, string>> ss; - for (auto i: o["in"].get_obj()) - { - ss.push_back(make_pair(i.first, i.second.get_str())); - if (!ss.back().first.find("0x")) - ss.back().first = asString(fromHex(ss.back().first.substr(2))); - if (!ss.back().second.find("0x")) - ss.back().second = asString(fromHex(ss.back().second.substr(2))); - } - for (unsigned j = 0; j < min(1000000000u, dev::test::fac((unsigned)ss.size())); ++j) - { - next_permutation(ss.begin(), ss.end()); - MemoryDB m; - GenericTrieDB<MemoryDB> t(&m); - MemoryDB hm; - HashedGenericTrieDB<MemoryDB> ht(&hm); - MemoryDB fm; - FatGenericTrieDB<MemoryDB> ft(&fm); - t.init(); - ht.init(); - ft.init(); - BOOST_REQUIRE(t.check(true)); - BOOST_REQUIRE(ht.check(true)); - BOOST_REQUIRE(ft.check(true)); - for (auto const& k: ss) - { - t.insert(k.first, k.second); - ht.insert(k.first, k.second); - ft.insert(k.first, k.second); - BOOST_REQUIRE(t.check(true)); - BOOST_REQUIRE(ht.check(true)); - BOOST_REQUIRE(ft.check(true)); - for (auto i = ft.begin(), j = t.begin(); i != ft.end() && j != t.end(); ++i, ++j) - { - BOOST_CHECK_EQUAL(i == ft.end(), j == t.end()); - BOOST_REQUIRE((*i).first.toBytes() == (*j).first.toBytes()); - BOOST_REQUIRE((*i).second.toBytes() == (*j).second.toBytes()); - } - BOOST_CHECK_EQUAL(ht.root(), ft.root()); - } - BOOST_REQUIRE(!o["root"].is_null()); - BOOST_CHECK_EQUAL(o["root"].get_str(), "0x" + toHex(ht.root().asArray())); - BOOST_CHECK_EQUAL(o["root"].get_str(), "0x" + toHex(ft.root().asArray())); - } - } -} - BOOST_AUTO_TEST_CASE(trie_test_anyorder) { string testPath = test::getTestPath(); |