File indexing completed on 2024-11-25 02:29:29
0001 #include "DataFormats/Provenance/interface/Parentage.h"
0002 #include "DataFormats/Provenance/interface/BranchID.h"
0003 #include "FWCore/Utilities/interface/Exception.h"
0004 #include <cassert>
0005 #include <iostream>
0006
0007 #include "catch.hpp"
0008
0009 TEST_CASE("test Parentage", "[Parentage]") {
0010 edm::Parentage ed1;
0011 CHECK(ed1 == ed1);
0012 edm::Parentage ed2;
0013 CHECK(ed1 == ed2);
0014
0015 ed2.setParents(std::vector<edm::BranchID>(1));
0016 edm::Parentage ed3;
0017 ed3.setParents(std::vector<edm::BranchID>(2));
0018
0019 edm::ParentageID id1 = ed1.id();
0020 edm::ParentageID id2 = ed2.id();
0021 edm::ParentageID id3 = ed3.id();
0022
0023 CHECK(id1 != id2);
0024 CHECK(ed1 != ed2);
0025 CHECK(id1 != id3);
0026 CHECK(ed1 != ed3);
0027 CHECK(id2 != id3);
0028 CHECK(ed2 != ed3);
0029
0030 edm::Parentage ed4;
0031 ed4.setParents(std::vector<edm::BranchID>(1));
0032 edm::ParentageID id4 = ed4.id();
0033 CHECK(ed4 == ed2);
0034 CHECK(id4 == id2);
0035
0036 SECTION("ParentageID unchanging") {
0037 {
0038 const std::string idString = "d41d8cd98f00b204e9800998ecf8427e";
0039 std::string toString;
0040 id1.toString(toString);
0041 CHECK(toString == idString);
0042 }
0043
0044 {
0045 const std::string idString = "2e5751b7cfd7f053cd29e946fb2649a4";
0046 std::string toString;
0047 id2.toString(toString);
0048 CHECK(toString == idString);
0049 }
0050 {
0051 const std::string idString = "20e13ca818af45e50e369e50db3914b8";
0052 std::string toString;
0053 id3.toString(toString);
0054 CHECK(toString == idString);
0055 }
0056 {
0057 edm::Parentage ed_mult;
0058 ed_mult.setParents(std::vector<edm::BranchID>({edm::BranchID(1), edm::BranchID(2), edm::BranchID(3)}));
0059 auto id_mult = ed_mult.id();
0060 const std::string idString = "6a5cf1697e50ec8e8dbe7a28ccad348b";
0061 std::string toString;
0062 id_mult.toString(toString);
0063 CHECK(toString == idString);
0064 }
0065 }
0066 }