@@ -144,3 +144,53 @@ BOOST_AUTO_TEST_CASE(TestQueryBuilder)
144144 BOOST_CHECK (matcher4->match (header3) == false );
145145 BOOST_CHECK (matcher4->match (header4) == false );
146146}
147+
148+ BOOST_AUTO_TEST_CASE (TestInputSpecMatching)
149+ {
150+ InputSpec spec0{ " spec0" , " TPC" , " CLUSTERS" , 1 };
151+ InputSpec spec1{ " spec1" , " ITS" , " TRACKLET" , 2 };
152+ InputSpec spec2{ " spec2" , " ITS" , " TRACKLET" , 1 };
153+ InputSpec spec3{ " spec3" , " TPC" , " CLUSTERS" , 0 };
154+ InputSpec spec4{ " spec4" , " TRD" , " TRACKLET" , 0 };
155+
156+ DataDescriptorMatcher matcher{
157+ DataDescriptorMatcher::Op::And,
158+ OriginValueMatcher{ " TPC" },
159+ std::make_unique<DataDescriptorMatcher>(
160+ DataDescriptorMatcher::Op::And,
161+ DescriptionValueMatcher{ " CLUSTERS" },
162+ std::make_unique<DataDescriptorMatcher>(
163+ DataDescriptorMatcher::Op::And,
164+ SubSpecificationTypeValueMatcher{ 1 },
165+ ConstantValueMatcher{ true }))
166+ };
167+
168+ BOOST_CHECK (matcher.match (spec0) == true );
169+ BOOST_CHECK (matcher.match (spec1) == false );
170+ BOOST_CHECK (matcher.match (spec2) == false );
171+ BOOST_CHECK (matcher.match (spec3) == false );
172+ BOOST_CHECK (matcher.match (spec4) == false );
173+
174+ DataDescriptorMatcher matcher1{
175+ DataDescriptorMatcher::Op::Or,
176+ OriginValueMatcher{ " TPC" },
177+ OriginValueMatcher{ " ITS" }
178+ };
179+
180+ BOOST_CHECK (matcher1.match (spec0) == true );
181+ BOOST_CHECK (matcher1.match (spec1) == true );
182+ BOOST_CHECK (matcher1.match (spec2) == true );
183+ BOOST_CHECK (matcher1.match (spec3) == true );
184+ BOOST_CHECK (matcher1.match (spec4) == false );
185+
186+ DataDescriptorMatcher matcher2{
187+ DataDescriptorMatcher::Op::Just,
188+ DescriptionValueMatcher{ " TRACKLET" }
189+ };
190+
191+ BOOST_CHECK (matcher2.match (spec0) == false );
192+ BOOST_CHECK (matcher2.match (spec1) == true );
193+ BOOST_CHECK (matcher2.match (spec2) == true );
194+ BOOST_CHECK (matcher2.match (spec3) == false );
195+ BOOST_CHECK (matcher2.match (spec4) == true );
196+ }
0 commit comments