artdaq_mfextensions  v1_05_00
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 
34 BOOST_AUTO_TEST_CASE(domain_intersect_test)
35 {
36 
37  // ----------------------------------------------------------------
38  // ma_cond_domain intersection
39 
40  {
41  ma_cond_domain d1 = ma_cond_domain_ctor_null();
42  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
43  domain_intersect(d1, d2);
44  BOOST_CHECK_EQUAL(d1.first, D_NIL);
45  BOOST_CHECK_EQUAL(d1.second, D_NIL);
46  BOOST_CHECK(domain_is_null(d1));
47  }
48 
49  {
50  ma_cond_domain d1 = ma_cond_domain_ctor_any();
51  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
52  domain_intersect(d1, d2);
53  BOOST_CHECK_EQUAL(d1.first, 5);
54  BOOST_CHECK_EQUAL(d1.second, 6);
55  }
56 
57  {
58  ma_cond_domain d1 = ma_cond_domain_ctor(5, 8);
59  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
60  domain_intersect(d1, d2);
61  BOOST_CHECK_EQUAL(d1.first, D_NIL);
62  BOOST_CHECK_EQUAL(d1.second, D_NIL);
63  BOOST_CHECK(domain_is_null(d1));
64  }
65 
66  {
67  ma_cond_domain d1 = ma_cond_domain_ctor(5, D_ANY);
68  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
69  domain_intersect(d1, d2);
70  BOOST_CHECK_EQUAL(d1.first, 5);
71  BOOST_CHECK_EQUAL(d1.second, 6);
72  }
73 
74  {
75  ma_cond_domain d1 = ma_cond_domain_ctor(D_ANY, 6);
76  ma_cond_domain d2 = ma_cond_domain_ctor(5, 6);
77  domain_intersect(d1, d2);
78  BOOST_CHECK_EQUAL(d1.first, 5);
79  BOOST_CHECK_EQUAL(d1.second, 6);
80  }
81 
82  {
83  ma_cond_domain d1 = ma_cond_domain_ctor(D_ANY, 6);
84  ma_cond_domain d2 = ma_cond_domain_ctor(5, D_ANY);
85  domain_intersect(d1, d2);
86  BOOST_CHECK_EQUAL(d1.first, 5);
87  BOOST_CHECK_EQUAL(d1.second, 6);
88  }
89 
90  // ----------------------------------------------------------------
91  // ma_domain_intersection
92 
93  {
94  ma_domain d1 = ma_domain_ctor(3, ma_cond_domain_ctor(2,3));
95  ma_domain d2 = ma_domain_ctor(4, ma_cond_domain_ctor(5,6));
96  BOOST_CHECK_THROW( domain_intersect(d1,d2), std::runtime_error );
97  }
98 
99  {
100  ma_domain d1 = ma_domain_ctor(3, ma_cond_domain_ctor(2,3));
101  ma_domain d2 = ma_domain_ctor(3, ma_cond_domain_ctor(5,6));
102  domain_intersect(d1, d2);
103  BOOST_CHECK( domain_is_null(d1) );
104  }
105 
106 }
107 
108 BOOST_AUTO_TEST_CASE(domain_union_test)
109 {
110 
111 }
112 
113 BOOST_AUTO_TEST_SUITE_END()
114