@@ -21,6 +21,58 @@ using namespace o2::framework;
2121using namespace o2 ::header;
2222using namespace o2 ::framework::data_matcher;
2323
24+ BOOST_AUTO_TEST_CASE (TestMatcherInvariants) {
25+ DataHeader header0;
26+ header0.dataOrigin = " TPC" ;
27+ header0.dataDescription = " CLUSTERS" ;
28+ header0.subSpecification = 1 ;
29+ std::vector<ContextElement> context;
30+
31+ DataHeader header1;
32+ header1.dataOrigin = " ITS" ;
33+ header1.dataDescription = " TRACKLET" ;
34+ header1.subSpecification = 2 ;
35+
36+ DataHeader header2;
37+ header2.dataOrigin = " TPC" ;
38+ header2.dataDescription = " TRACKLET" ;
39+ header2.subSpecification = 1 ;
40+
41+ DataHeader header3;
42+ header3.dataOrigin = " TPC" ;
43+ header3.dataDescription = " CLUSTERS" ;
44+ header3.subSpecification = 0 ;
45+
46+ DataHeader header4;
47+ header4.dataOrigin = " TRD" ;
48+ header4.dataDescription = " TRACKLET" ;
49+ header4.subSpecification = 0 ;
50+
51+ DataDescriptorMatcher matcher{
52+ DataDescriptorMatcher::Op::And,
53+ OriginValueMatcher{ " TPC" },
54+ std::make_unique<DataDescriptorMatcher>(
55+ DataDescriptorMatcher::Op::And,
56+ DescriptionValueMatcher{ " CLUSTERS" },
57+ std::make_unique<DataDescriptorMatcher>(
58+ DataDescriptorMatcher::Op::And,
59+ SubSpecificationTypeValueMatcher{ 1 },
60+ ConstantValueMatcher{ true }))
61+ };
62+ DataDescriptorMatcher matcher2 = matcher;
63+ BOOST_CHECK (matcher.match (header0, context) == true );
64+ BOOST_CHECK (matcher.match (header1, context) == false );
65+ BOOST_CHECK (matcher.match (header2, context) == false );
66+ BOOST_CHECK (matcher.match (header3, context) == false );
67+ BOOST_CHECK (matcher.match (header4, context) == false );
68+ BOOST_CHECK (matcher2.match (header0, context) == true );
69+ BOOST_CHECK (matcher2.match (header1, context) == false );
70+ BOOST_CHECK (matcher2.match (header2, context) == false );
71+ BOOST_CHECK (matcher2.match (header3, context) == false );
72+ BOOST_CHECK (matcher2.match (header4, context) == false );
73+
74+ }
75+
2476BOOST_AUTO_TEST_CASE (TestSimpleMatching)
2577{
2678 DataHeader header0;
0 commit comments