git / moonbite-core / src/libmw/test/tests/models/block/Test_Header.cpp · raw

// Copyright (c) 2021 The Litecoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#include <mw/models/block/Header.h>#include <test_framework/TestMWEB.h>BOOST_FIXTURE_TEST_SUITE(TestHeader, MWEBTestingSetup)BOOST_AUTO_TEST_CASE(Header){    const uint64_t height = 1;    const uint64_t outputMMRSize = 2;    const uint64_t kernelMMRSize = 3;    mw::Hash outputRoot = mw::Hash::FromHex("000102030405060708090A0B0C0D0E0F1112131415161718191A1B1C1D1E1F20");    mw::Hash kernelRoot = mw::Hash::FromHex("002102030405060708090A0B0C0D0E0F1112131415161718191A1B1C1D1E1F20");    mw::Hash leafsetRoot = mw::Hash::FromHex("003102030405060708090A0B0C0D0E0F1112131415161718191A1B1C1D1E1F20");    BlindingFactor kernelOffset = BigInt<32>::FromHex("004102030405060708090A0B0C0D0E0F1112131415161718191A1B1C1D1E1F20");    BlindingFactor stealth_offset = BigInt<32>::FromHex("005102030405060708090A0B0C0D0E0F1112131415161718191A1B1C1D1E1F20");    mw::Header header(        height,        outputRoot,        kernelRoot,        leafsetRoot,        kernelOffset,        stealth_offset,        outputMMRSize,        kernelMMRSize    );    mw::Header header2(        height + 1,        outputRoot,        kernelRoot,        leafsetRoot,        kernelOffset,        stealth_offset,        outputMMRSize,        kernelMMRSize    );    BOOST_REQUIRE(header != header2);    BOOST_REQUIRE(header.GetHeight() == height);    BOOST_REQUIRE(header.GetOutputRoot() == outputRoot);    BOOST_REQUIRE(header.GetKernelRoot() == kernelRoot);    BOOST_REQUIRE(header.GetLeafsetRoot() == leafsetRoot);    BOOST_REQUIRE(header.GetKernelOffset() == kernelOffset);    BOOST_REQUIRE(header.GetStealthOffset() == stealth_offset);    BOOST_REQUIRE(header.GetNumTXOs() == outputMMRSize);    BOOST_REQUIRE(header.GetNumKernels() == kernelMMRSize);    BOOST_REQUIRE_EQUAL(header.Format(), "688fed89903b3f312daa3f04fe94994c67f3d0688482cdd5ada2851c0b70d7de");    std::vector<uint8_t> header_serialized = header.Serialized();    mw::Header header3;    CDataStream(header_serialized, SER_DISK, 0) >> header3;    BOOST_REQUIRE(header == header3);}BOOST_AUTO_TEST_SUITE_END()