File indexing completed on 2024-04-06 12:12:50
0001 #include "FWCore/TestProcessor/interface/TestProcessor.h"
0002 #include "FWCore/Utilities/interface/Exception.h"
0003
0004 #include "catch.hpp"
0005
0006 static constexpr auto s_tag = "[ModuloEventIDFilter]";
0007
0008 TEST_CASE("Check parameters of ModuloEventIDFilter", s_tag) {
0009 const std::string baseConfig{
0010 R"_(from FWCore.TestProcessor.TestProcess import *
0011 process = TestProcess()
0012 process.toTest = cms.EDFilter('ModuloEventIDFilter',
0013 modulo =cms.uint32(3),
0014 offset = cms.uint32(offset))
0015 process.moduleToTest(process.toTest)
0016 )_"};
0017
0018 SECTION("modulo sets how many events to fail before success") {
0019 edm::test::TestProcessor::Config config{"offset=1\n" + baseConfig};
0020
0021 edm::test::TestProcessor tester(config);
0022 tester.setEventNumber(1);
0023 REQUIRE(tester.test().modulePassed());
0024 REQUIRE_FALSE(tester.test().modulePassed());
0025 REQUIRE_FALSE(tester.test().modulePassed());
0026 REQUIRE(tester.test().modulePassed());
0027 REQUIRE_FALSE(tester.test().modulePassed());
0028 REQUIRE_FALSE(tester.test().modulePassed());
0029 REQUIRE(tester.test().modulePassed());
0030 tester.setEventNumber(10);
0031 REQUIRE(tester.test().modulePassed());
0032 tester.setEventNumber(13);
0033 REQUIRE(tester.test().modulePassed());
0034 tester.setEventNumber(15);
0035 REQUIRE_FALSE(tester.test().modulePassed());
0036 }
0037
0038 SECTION("offset sets which event succeeds") {
0039 edm::test::TestProcessor::Config config{"offset=2\n" + baseConfig};
0040
0041 edm::test::TestProcessor tester(config);
0042 tester.setEventNumber(1);
0043 REQUIRE_FALSE(tester.test().modulePassed());
0044 REQUIRE(tester.test().modulePassed());
0045 REQUIRE_FALSE(tester.test().modulePassed());
0046 REQUIRE_FALSE(tester.test().modulePassed());
0047 REQUIRE(tester.test().modulePassed());
0048 tester.setEventNumber(8);
0049 REQUIRE(tester.test().modulePassed());
0050 tester.setEventNumber(11);
0051 REQUIRE(tester.test().modulePassed());
0052 tester.setEventNumber(13);
0053 REQUIRE_FALSE(tester.test().modulePassed());
0054 }
0055 }
0056
0057 TEST_CASE("No default parameters of ModuloEventIDFilter", s_tag) {
0058 const std::string config{
0059 R"_(from FWCore.TestProcessor.TestProcess import *
0060 process = TestProcess()
0061 process.toTest = cms.EDFilter('ModuloEventIDFilter')
0062 process.moduleToTest(process.toTest)
0063 )_"};
0064
0065 REQUIRE_THROWS_AS(edm::test::TestProcessor(config), cms::Exception);
0066 }