Implement static method for creating a randomized JSDescription

This commit is contained in:
Jack Grigg
2016-10-18 00:22:58 -05:00
parent 0382417fee
commit 7f0aa74666
3 changed files with 63 additions and 0 deletions

View File

@@ -368,6 +368,32 @@ BOOST_AUTO_TEST_CASE(test_basic_joinsplit_verification)
BOOST_CHECK(!test.Verify(*p, pubKeyHash));
}
{
boost::array<size_t, ZC_NUM_JS_INPUTS> inputMap;
boost::array<size_t, ZC_NUM_JS_OUTPUTS> outputMap;
auto jsdesc = JSDescription::Randomized(
*p, pubKeyHash, rt,
inputs, outputs,
inputMap, outputMap,
0, 0);
BOOST_CHECK(jsdesc.Verify(*p, pubKeyHash));
std::set<size_t> inputSet;
for (size_t i = 0; i < ZC_NUM_JS_INPUTS; i++) {
inputSet.insert(inputMap[i]);
}
std::set<size_t> expectedInputSet {0, 1};
BOOST_CHECK(expectedInputSet == inputSet);
std::set<size_t> outputSet;
for (size_t i = 0; i < ZC_NUM_JS_OUTPUTS; i++) {
outputSet.insert(outputMap[i]);
}
std::set<size_t> expectedOutputSet {0, 1};
BOOST_CHECK(expectedOutputSet == outputSet);
}
delete p;
}