artdaq_mfextensions  v1_06_02
ma_domain_ops_test.cc
1 
2 #define BOOST_TEST_DYN_LINK
3 #define BOOST_TEST_MODULE ma_domain_ops_test
4 #include <boost/test/unit_test.hpp>
5 
6 #include "ErrorHandler/MessageAnalyzer/ma_domain_ops.h"
7 
8 using namespace novadaq::errorhandler;
9 
10 BOOST_AUTO_TEST_SUITE(ma_domain_ops_test)
11 
12 BOOST_AUTO_TEST_CASE(domain_ctor_test)
13 {
14  {
15  ma_cond_domain d = ma_cond_domain_ctor_null();
16  BOOST_CHECK_EQUAL(d.first, D_NIL);
17  BOOST_CHECK_EQUAL(d.second, D_NIL);
18  }
19 
20  {
21  ma_cond_domain d = ma_cond_domain_ctor_any();
22  BOOST_CHECK_EQUAL(d.first, D_ANY);
23  BOOST_CHECK_EQUAL(d.second, D_ANY);
24  }
25 
26  {
27  ma_cond_domain d = ma_cond_domain_ctor(5, 6);
28  BOOST_CHECK_EQUAL(d.first, 5);
29  BOOST_CHECK_EQUAL(d.second, 6);
30  }
31 }
32 
33 BOOST_AUTO_TEST_CASE(domain_intersect_test)
34 {
35  // ----------------------------------------------------------------
36  // ma_cond_domain intersection
37 
38  {
39  ma_cond_domain d1 = ma_cond_domain_ctor_null();
40  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
41  domain_intersect(d1, d2);
42  BOOST_CHECK_EQUAL(d1.first, D_NIL);
43  BOOST_CHECK_EQUAL(d1.second, D_NIL);
44  BOOST_CHECK(domain_is_null(d1));
45  }
46 
47  {
48  ma_cond_domain d1 = ma_cond_domain_ctor_any();
49  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
50  domain_intersect(d1, d2);
51  BOOST_CHECK_EQUAL(d1.first, 5);
52  BOOST_CHECK_EQUAL(d1.second, 6);
53  }
54 
55  {
56  ma_cond_domain d1 = ma_cond_domain_ctor(5, 8);
57  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
58  domain_intersect(d1, d2);
59  BOOST_CHECK_EQUAL(d1.first, D_NIL);
60  BOOST_CHECK_EQUAL(d1.second, D_NIL);
61  BOOST_CHECK(domain_is_null(d1));
62  }
63 
64  {
65  ma_cond_domain d1 = ma_cond_domain_ctor(5, D_ANY);
66  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
67  domain_intersect(d1, d2);
68  BOOST_CHECK_EQUAL(d1.first, 5);
69  BOOST_CHECK_EQUAL(d1.second, 6);
70  }
71 
72  {
73  ma_cond_domain d1 = ma_cond_domain_ctor(D_ANY, 6);
74  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
75  domain_intersect(d1, d2);
76  BOOST_CHECK_EQUAL(d1.first, 5);
77  BOOST_CHECK_EQUAL(d1.second, 6);
78  }
79 
80  {
81  ma_cond_domain d1 = ma_cond_domain_ctor(D_ANY, 6);
82  ma_cond_domain d2 = ma_cond_domain_ctor(5, D_ANY);
83  domain_intersect(d1, d2);
84  BOOST_CHECK_EQUAL(d1.first, 5);
85  BOOST_CHECK_EQUAL(d1.second, 6);
86  }
87 
88  // ----------------------------------------------------------------
89  // ma_domain_intersection
90 
91  {
92  ma_domain d1 = ma_domain_ctor(3, ma_cond_domain_ctor(2, 3));
93  ma_domain d2 = ma_domain_ctor(4, ma_cond_domain_ctor(5, 6));
94  BOOST_CHECK_THROW(domain_intersect(d1, d2), std::runtime_error);
95  }
96 
97  {
98  ma_domain d1 = ma_domain_ctor(3, ma_cond_domain_ctor(2, 3));
99  ma_domain d2 = ma_domain_ctor(3, ma_cond_domain_ctor(5, 6));
100  domain_intersect(d1, d2);
101  BOOST_CHECK(domain_is_null(d1));
102  }
103 }
104 
105 BOOST_AUTO_TEST_CASE(domain_union_test)
106 {
107 }
108 
109 BOOST_AUTO_TEST_SUITE_END()