1 | #include "config.h" |
2 | #define BOOST_TEST_DYN_LINK |
3 | #include <boost/test/unit_test.hpp> |
4 | #include "Vector/vector_dist.hpp" |
5 | #include "debug.hpp" |
6 | |
7 | BOOST_AUTO_TEST_SUITE( debug_util_test ) |
8 | |
9 | BOOST_AUTO_TEST_CASE( debug_dist_util_test_use ) |
10 | { |
11 | Vcluster<> & v_cl = create_vcluster(); |
12 | |
13 | if (v_cl.getProcessingUnits() != 1) |
14 | {return;} |
15 | |
16 | // Boundary conditions |
17 | size_t bc[3]={PERIODIC,PERIODIC,PERIODIC}; |
18 | |
19 | // Box |
20 | Box<3,float> box({0.0,0.0,0.0},{1.0,1.0,1.0}); |
21 | |
22 | // ghost |
23 | Ghost<3,float> ghost(0.1); |
24 | |
25 | // first phase |
26 | vector_dist<3,float, aggregate<double,double>> vd(4,box,bc,ghost); |
27 | |
28 | vd.getPos(0)[0] = 0.1; |
29 | vd.getPos(0)[1] = 0.2; |
30 | vd.getPos(0)[2] = 0.3; |
31 | |
32 | vd.getPos(1)[0] = 0.2; |
33 | vd.getPos(1)[1] = 0.3; |
34 | vd.getPos(1)[2] = 0.4; |
35 | |
36 | vd.getPos(2)[0] = 0.3; |
37 | vd.getPos(2)[1] = 0.4; |
38 | vd.getPos(2)[2] = 0.5; |
39 | |
40 | vd.getPos(3)[0] = 0.4; |
41 | vd.getPos(3)[1] = 0.5; |
42 | vd.getPos(3)[2] = 0.6; |
43 | |
44 | Box<3,float> box1({0.0,0.0,0.0},{0.01,0.01,0.01}); |
45 | Box<3,float> box2({0.0,0.0,0.0},{0.5,0.5,0.5}); |
46 | |
47 | bool test = debug_is_in_box(vd,box1); |
48 | BOOST_REQUIRE_EQUAL(test,false); |
49 | |
50 | test = debug_is_in_box(vd,box2,debug_iterator::DOMAIN_IT,debug_run::HOST,false); |
51 | BOOST_REQUIRE_EQUAL(test,true); |
52 | } |
53 | |
54 | BOOST_AUTO_TEST_CASE( debug_util_test_use ) |
55 | { |
56 | Vcluster<> & v_cl = create_vcluster(); |
57 | |
58 | if (v_cl.getProcessingUnits() != 1) |
59 | {return;} |
60 | |
61 | // Boundary conditions |
62 | size_t bc[3]={PERIODIC,PERIODIC,PERIODIC}; |
63 | |
64 | // Box |
65 | Box<3,float> box({0.0,0.0,0.0},{1.0,1.0,1.0}); |
66 | |
67 | // ghost |
68 | Ghost<3,float> ghost(0.1); |
69 | |
70 | // first phase |
71 | openfpm::vector<Point<3,float>> vd(4); |
72 | |
73 | vd.get<0>(0)[0] = 0.1; |
74 | vd.get<0>(0)[1] = 0.2; |
75 | vd.get<0>(0)[2] = 0.3; |
76 | |
77 | vd.get<0>(1)[0] = 0.2; |
78 | vd.get<0>(1)[1] = 0.3; |
79 | vd.get<0>(1)[2] = 0.4; |
80 | |
81 | vd.get<0>(2)[0] = 0.3; |
82 | vd.get<0>(2)[1] = 0.4; |
83 | vd.get<0>(2)[2] = 0.5; |
84 | |
85 | vd.get<0>(3)[0] = 0.4; |
86 | vd.get<0>(3)[1] = 0.5; |
87 | vd.get<0>(3)[2] = 0.6; |
88 | |
89 | Box<3,float> box1({0.0,0.0,0.0},{0.01,0.01,0.01}); |
90 | Box<3,float> box2({0.0,0.0,0.0},{0.5,0.5,0.5}); |
91 | |
92 | bool test = debug_is_in_box_single(vd,box1,vd.size()); |
93 | BOOST_REQUIRE_EQUAL(test,false); |
94 | |
95 | test = debug_is_in_box_single(vd,box2,vd.size(),"" ,debug_iterator::DOMAIN_IT,debug_run::HOST,false); |
96 | BOOST_REQUIRE_EQUAL(test,true); |
97 | } |
98 | |
99 | BOOST_AUTO_TEST_SUITE_END() |
100 | |
101 | |