Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#include "catch.hpp"

#include "DataFormats/Provenance/interface/CompactHash.h"
#include "FWCore/Utilities/interface/Digest.h"

namespace {
  using TestHash = edm::CompactHash<100>;
}

TEST_CASE("CompactHash", "[CompactHash]") {
  SECTION("Default construction is invalid") { REQUIRE(TestHash{}.isValid() == false); }

  SECTION("Basic operations") {
    cms::Digest d("foo");
    auto result = d.digest().bytes;

    TestHash id{result};
    REQUIRE(id.isValid() == true);
    REQUIRE(id.compactForm() == result);

    TestHash id2 = id;
    REQUIRE(id2.isValid() == true);
    REQUIRE(id2.compactForm() == result);

    cms::Digest b("bar");
    auto diffResult = b.digest().bytes;
    REQUIRE(id2 == TestHash{result});
    REQUIRE(id2 != TestHash{diffResult});

    REQUIRE(id2 > TestHash{diffResult});
    REQUIRE(TestHash{diffResult} < id2);

    REQUIRE(not(id2 < id2));
  }
}