1+ // Copyright 2016-2017 DiffBlue Limited. All Rights Reserved.
2+
3+ // / \file Tests for sharing-node utility
4+
15#include < iostream>
26#include < cassert>
37
48#include < util/sharing_node.h>
9+ #include < testing-utils/catch.hpp>
510
611void sharing_node_test ()
712{
8- std::cout << " Running sharing node test" << std::endl;
9-
1013 typedef sharing_nodet<std::string, std::string> snt;
1114
1215 // internal node test
@@ -16,36 +19,36 @@ void sharing_node_test()
1619
1720 const snt *p2;
1821
19- assert (sn1.is_empty ());
22+ REQUIRE (sn1.is_empty ());
2023
2124 sn1.add_child (0 );
2225 sn1.add_child (1 );
2326 sn1.add_child (2 );
2427
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 ());
2932
30- assert (sn2.get_sub ().size ()==3 );
33+ REQUIRE (sn2.get_sub ().size ()==3 );
3134
3235 p2=sn2.find_child (0 );
33- assert (p2!=nullptr );
36+ REQUIRE (p2!=nullptr );
3437
3538 p2=sn1.find_child (0 );
36- assert (p2!=nullptr );
39+ REQUIRE (p2!=nullptr );
3740
3841 p2=sn2.find_child (3 );
39- assert (p2==nullptr );
42+ REQUIRE (p2==nullptr );
4043
4144 p2=sn1.find_child (3 );
42- assert (p2==nullptr );
45+ REQUIRE (p2==nullptr );
4346
4447 sn1.remove_child (0 );
45- assert (sn2.get_sub ().size ()==2 );
48+ REQUIRE (sn2.get_sub ().size ()==2 );
4649
4750 sn1.clear ();
48- assert (sn2.is_empty ());
51+ REQUIRE (sn2.is_empty ());
4952 }
5053
5154 // container node test
@@ -61,18 +64,18 @@ void sharing_node_test()
6164 p1=sn1.add_child (2 );
6265 p2=p1;
6366
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 );
6669
6770 p1->place_leaf (" a" , " b" );
68- assert (p2->get_container ().size ()==1 );
71+ REQUIRE (p2->get_container ().size ()==1 );
6972 p1->place_leaf (" c" , " d" );
70- assert (p2->get_container ().size ()==2 );
73+ REQUIRE (p2->get_container ().size ()==2 );
7174
72- assert (p2->is_container ());
75+ REQUIRE (p2->is_container ());
7376
7477 p1->remove_leaf (" a" );
75- assert (p2->get_container ().size ()==1 );
78+ REQUIRE (p2->get_container ().size ()==1 );
7679 }
7780
7881 // copy test 1
@@ -81,16 +84,16 @@ void sharing_node_test()
8184 snt sn2;
8285
8386 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 );
8689
8790 sn1.add_child (0 );
88- assert (sn1.data .use_count ()==1 );
91+ REQUIRE (sn1.data .use_count ()==1 );
8992 // the newly created node is empty as well
90- assert (sn2.data .use_count ()==3 );
93+ REQUIRE (sn2.data .use_count ()==3 );
9194
9295 sn2=sn1;
93- assert (sn2.data .use_count ()==2 );
96+ REQUIRE (sn2.data .use_count ()==2 );
9497 }
9598
9699 // copy test 2
@@ -110,20 +113,17 @@ void sharing_node_test()
110113 const snt &sn2c=sn2;
111114 sn2=sn1;
112115
113- assert (sn1.is_internal ());
114- assert (sn2.is_internal ());
116+ REQUIRE (sn1.is_internal ());
117+ REQUIRE (sn2.is_internal ());
115118
116119 sn1.remove_child (0 );
117- assert (sn1c.get_sub ().size ()==1 );
120+ REQUIRE (sn1c.get_sub ().size ()==1 );
118121
119- assert (sn2c.get_sub ().size ()==2 );
122+ REQUIRE (sn2c.get_sub ().size ()==2 );
120123 }
121124}
122125
123- int main ( )
126+ TEST_CASE ( " Sharing node " )
124127{
125- sharing_node_test ();
126-
127- return 0 ;
128+ sharing_node_test ();
128129}
129-
0 commit comments