Algorithms_in_C++ 1.0.0
Set of algorithms implemented in C++.
tests Namespace Reference

Testcases to check Reversal of Binary Tree. More...

Functions

void test1 ()
 < Use the BinaryTree More...
 
void test2 ()
 A Test to check an edge case (NULL root element) More...
 
void test3 ()
 A Test to check correct reversal of a Binary Tree. More...
 

Detailed Description

Testcases to check Reversal of Binary Tree.

Function Documentation

◆ test1()

void tests::test1 ( )

< Use the BinaryTree

A Test to check an edge case (single element reversal)

< Check for equal sizes

< Ensure that there is only one element

< Check if both elements are same

167 {
168 BinaryTree bst;
169 std::vector<int64_t> pre_reversal, post_reversal;
170 std::cout << "TEST CASE 1\n";
171 std::cout << "Initializing tree with a single element (5)\n";
172 bst.add(5);
173 pre_reversal = bst.get_level_order();
174 std::cout << "Before reversal: ";
175 bst.print();
176 std::cout << "After reversal: ";
177 bst.reverse();
178 post_reversal = bst.get_level_order();
179 assert(pre_reversal.size() ==
180 post_reversal.size()); ///< Check for equal sizes
181 assert(pre_reversal.size() ==
182 1); ///< Ensure that there is only one element
183 assert(pre_reversal[0] ==
184 post_reversal[0]); ///< Check if both elements are same
185 bst.print();
186 std::cout << "TEST PASSED!\n\n";
187}
T size(T... args)
Here is the call graph for this function:

◆ test2()

void tests::test2 ( )

A Test to check an edge case (NULL root element)

< Check for equal sizes

< Ensure that there is only one element

191 {
192 BinaryTree bst;
193 std::vector<int64_t> pre_reversal, post_reversal;
194 std::cout << "TEST CASE 2\n";
195 std::cout << "Creating empty tree (root points to NULL)\n";
196 pre_reversal = bst.get_level_order();
197 std::cout << "Before reversal: ";
198 bst.print();
199 std::cout << "After reversal: ";
200 bst.reverse();
201 post_reversal = bst.get_level_order();
202 assert(pre_reversal.size() ==
203 post_reversal.size()); ///< Check for equal sizes
204 assert(pre_reversal.size() ==
205 0); ///< Ensure that there is only one element
206 bst.print();
207 std::cout << "TEST PASSED!\n\n";
208}
Here is the call graph for this function:

◆ test3()

void tests::test3 ( )

A Test to check correct reversal of a Binary Tree.

< Check for equality

< Check for equality

212 {
213 BinaryTree bst;
214 std::vector<int64_t> pre_reversal, post_reversal;
215 std::vector<int64_t> pre_res = {4, 3, 6, 2, 5, 7, 1};
216 std::vector<int64_t> post_res = {4, 6, 3, 7, 5, 2, 1};
217 std::cout << "TEST CASE 3\n";
218 std::cout << "Creating tree with elements (4, 6, 3, 2, 5, 7, 1)\n";
219 bst.add(4);
220 bst.add(6);
221 bst.add(3);
222 bst.add(2);
223 bst.add(5);
224 bst.add(7);
225 bst.add(1);
226 pre_reversal = bst.get_level_order();
227 assert(pre_reversal == pre_res); ///< Check for equality
228 std::cout << "Before reversal: ";
229 bst.print();
230 std::cout << "After reversal: ";
231 bst.reverse();
232 post_reversal = bst.get_level_order();
233 assert(post_reversal == post_res); ///< Check for equality
234 bst.print();
235 std::cout << "TEST PASSED!\n\n";
236}