1
+ // Copyright 2016-2017 DiffBlue Limited. All Rights Reserved.
2
+
3
+ // / \file Tests for sharing-node utility
4
+
1
5
#include < iostream>
2
6
#include < cassert>
3
7
4
8
#include < util/sharing_node.h>
9
+ #include < testing-utils/catch.hpp>
5
10
6
11
void sharing_node_test ()
7
12
{
8
- std::cout << " Running sharing node test" << std::endl;
9
-
10
13
typedef sharing_nodet<std::string, std::string> snt;
11
14
12
15
// internal node test
@@ -16,36 +19,36 @@ void sharing_node_test()
16
19
17
20
const snt *p2;
18
21
19
- assert (sn1.is_empty ());
22
+ REQUIRE (sn1.is_empty ());
20
23
21
24
sn1.add_child (0 );
22
25
sn1.add_child (1 );
23
26
sn1.add_child (2 );
24
27
25
- assert (!sn2.is_empty ());
26
- assert (sn2.is_internal ());
27
- assert (!sn2.is_container ());
28
- assert (!sn2.is_leaf ());
28
+ REQUIRE (!sn2.is_empty ());
29
+ REQUIRE (sn2.is_internal ());
30
+ REQUIRE (!sn2.is_container ());
31
+ REQUIRE (!sn2.is_leaf ());
29
32
30
- assert (sn2.get_sub ().size ()==3 );
33
+ REQUIRE (sn2.get_sub ().size ()==3 );
31
34
32
35
p2=sn2.find_child (0 );
33
- assert (p2!=nullptr );
36
+ REQUIRE (p2!=nullptr );
34
37
35
38
p2=sn1.find_child (0 );
36
- assert (p2!=nullptr );
39
+ REQUIRE (p2!=nullptr );
37
40
38
41
p2=sn2.find_child (3 );
39
- assert (p2==nullptr );
42
+ REQUIRE (p2==nullptr );
40
43
41
44
p2=sn1.find_child (3 );
42
- assert (p2==nullptr );
45
+ REQUIRE (p2==nullptr );
43
46
44
47
sn1.remove_child (0 );
45
- assert (sn2.get_sub ().size ()==2 );
48
+ REQUIRE (sn2.get_sub ().size ()==2 );
46
49
47
50
sn1.clear ();
48
- assert (sn2.is_empty ());
51
+ REQUIRE (sn2.is_empty ());
49
52
}
50
53
51
54
// container node test
@@ -61,18 +64,18 @@ void sharing_node_test()
61
64
p1=sn1.add_child (2 );
62
65
p2=p1;
63
66
64
- assert (p1->find_leaf (" a" )==nullptr );
65
- assert (p2->find_leaf (" a" )==nullptr );
67
+ REQUIRE (p1->find_leaf (" a" )==nullptr );
68
+ REQUIRE (p2->find_leaf (" a" )==nullptr );
66
69
67
70
p1->place_leaf (" a" , " b" );
68
- assert (p2->get_container ().size ()==1 );
71
+ REQUIRE (p2->get_container ().size ()==1 );
69
72
p1->place_leaf (" c" , " d" );
70
- assert (p2->get_container ().size ()==2 );
73
+ REQUIRE (p2->get_container ().size ()==2 );
71
74
72
- assert (p2->is_container ());
75
+ REQUIRE (p2->is_container ());
73
76
74
77
p1->remove_leaf (" a" );
75
- assert (p2->get_container ().size ()==1 );
78
+ REQUIRE (p2->get_container ().size ()==1 );
76
79
}
77
80
78
81
// copy test 1
@@ -81,16 +84,16 @@ void sharing_node_test()
81
84
snt sn2;
82
85
83
86
sn2=sn1;
84
- assert (sn1.data .use_count ()==3 );
85
- assert (sn2.data .use_count ()==3 );
87
+ REQUIRE (sn1.data .use_count ()==3 );
88
+ REQUIRE (sn2.data .use_count ()==3 );
86
89
87
90
sn1.add_child (0 );
88
- assert (sn1.data .use_count ()==1 );
91
+ REQUIRE (sn1.data .use_count ()==1 );
89
92
// the newly created node is empty as well
90
- assert (sn2.data .use_count ()==3 );
93
+ REQUIRE (sn2.data .use_count ()==3 );
91
94
92
95
sn2=sn1;
93
- assert (sn2.data .use_count ()==2 );
96
+ REQUIRE (sn2.data .use_count ()==2 );
94
97
}
95
98
96
99
// copy test 2
@@ -110,20 +113,17 @@ void sharing_node_test()
110
113
const snt &sn2c=sn2;
111
114
sn2=sn1;
112
115
113
- assert (sn1.is_internal ());
114
- assert (sn2.is_internal ());
116
+ REQUIRE (sn1.is_internal ());
117
+ REQUIRE (sn2.is_internal ());
115
118
116
119
sn1.remove_child (0 );
117
- assert (sn1c.get_sub ().size ()==1 );
120
+ REQUIRE (sn1c.get_sub ().size ()==1 );
118
121
119
- assert (sn2c.get_sub ().size ()==2 );
122
+ REQUIRE (sn2c.get_sub ().size ()==2 );
120
123
}
121
124
}
122
125
123
- int main ( )
126
+ TEST_CASE ( " Sharing node " )
124
127
{
125
- sharing_node_test ();
126
-
127
- return 0 ;
128
+ sharing_node_test ();
128
129
}
129
-
0 commit comments