LCOV - code coverage report
Current view: top level - src/test/librust - pedersen_hash_tests.cpp (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 12 12 100.0 %
Date: 2025-04-02 01:23:23 Functions: 2 2 100.0 %

          Line data    Source code
       1             : // Copyright (c) 2016-2020 The ZCash developers
       2             : // Copyright (c) 2020-2021 The PIVX Core developers
       3             : // Distributed under the MIT software license, see the accompanying
       4             : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       5             : 
       6             : #include "test/test_pivx.h"
       7             : 
       8             : #include "arith_uint256.h"
       9             : #include "uint256.h"
      10             : #include "utilstrencodings.h"
      11             : 
      12             : #include <boost/test/unit_test.hpp>
      13             : #include <librustzcash.h>
      14             : 
      15             : BOOST_FIXTURE_TEST_SUITE(pedersen_hash_tests, BasicTestingSetup)
      16             : 
      17           2 : BOOST_AUTO_TEST_CASE(pedersen_hash_testvectors)
      18             : {
      19             :     // Good scenario check
      20           1 :     const uint256 a = uint256S("87a086ae7d2252d58729b30263fb7b66308bf94ef59a76c9c86e7ea016536505");
      21           1 :     const uint256 b = uint256S("a75b84a125b2353da7e8d96ee2a15efe4de23df9601b9d9564ba59de57130406");
      22           1 :     uint256 result;
      23             : 
      24           1 :     librustzcash_merkle_hash(25, a.begin(), b.begin(), result.begin());
      25             : 
      26           1 :     uint256 expected_result = uint256S("5bf43b5736c19b714d1f462c9d22ba3492c36e3d9bbd7ca24d94b440550aa561");
      27             : 
      28           2 :     BOOST_CHECK(result == expected_result);
      29             : 
      30             :     // Simple bad scenario check
      31           3 :     const uint256& c = ArithToUint256(ARITH_UINT256_ONE + UintToArith256(a));
      32           1 :     result.SetNull();
      33           1 :     librustzcash_merkle_hash(25, c.begin(), b.begin(), result.begin());
      34           2 :     BOOST_CHECK(result != expected_result);
      35           1 : }
      36             : 
      37             : BOOST_AUTO_TEST_SUITE_END()

Generated by: LCOV version 1.14