MCLinker upstream commit 0459e386785c.

Change-Id: Ide6790f5a354b7fcc03d812d6c8cf43b1e309ba3
diff --git a/unittests/BinTreeTest.cpp b/unittests/BinTreeTest.cpp
index fdf2bd1..5d2cd0a 100644
--- a/unittests/BinTreeTest.cpp
+++ b/unittests/BinTreeTest.cpp
@@ -8,8 +8,8 @@
 //===----------------------------------------------------------------------===//
 #include "BinTreeTest.h"
 
-#include "mcld/ADT/TypeTraits.h"
-#include "mcld/MC/InputTree.h"
+#include <mcld/ADT/TypeTraits.h>
+#include <mcld/InputTree.h>
 #include <string>
 
 using namespace mcld;
@@ -44,8 +44,8 @@
 //
 
 
-/// General 
-TEST_F( BinTreeTest,Two_non_null_tree_merge) 
+/// General
+TEST_F( BinTreeTest,Two_non_null_tree_merge)
 {
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<TreeIteratorBase::Rightward>(pos,0);
@@ -63,16 +63,16 @@
   mergeTree->join<TreeIteratorBase::Rightward>(pos2,1);
   mergeTree->join<TreeIteratorBase::Leftward>(pos2,1);
 
-  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree); 
+  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree);
   delete mergeTree;
   EXPECT_TRUE(m_pTestee->size()==8);
 }
 
 /// ---- TEST - 2 ----
-TEST_F( BinTreeTest, A_null_tree_merge_a_non_null_tree) 
-{ 
+TEST_F( BinTreeTest, A_null_tree_merge_a_non_null_tree)
+{
   BinaryTree<int>::iterator pos = m_pTestee->root();
- 
+
   BinaryTree<int> *mergeTree = new BinaryTree<int>;
   mergeTree->join<TreeIteratorBase::Rightward>(pos,0);
   --pos;
@@ -82,14 +82,14 @@
   mergeTree->join<TreeIteratorBase::Rightward>(pos,2);
   mergeTree->join<TreeIteratorBase::Leftward>(pos,2);
 
-  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree); 
+  m_pTestee->merge<TreeIteratorBase::Rightward>(pos,*mergeTree);
 
   delete mergeTree;
   EXPECT_TRUE(m_pTestee->size()==5);
 }
 
-TEST_F( BinTreeTest, A_non_null_tree_merge_a_null_tree) 
-{ 
+TEST_F( BinTreeTest, A_non_null_tree_merge_a_null_tree)
+{
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<TreeIteratorBase::Rightward>(pos,0);
   --pos;
@@ -98,24 +98,24 @@
   --pos;
   m_pTestee->join<TreeIteratorBase::Rightward>(pos,2);
   m_pTestee->join<TreeIteratorBase::Leftward>(pos,2);
-  
+
   BinaryTree<int> *mergeTree = new BinaryTree<int>;
-  BinaryTree<int>::iterator pos2 = mergeTree->root(); 
-  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee); 
+  BinaryTree<int>::iterator pos2 = mergeTree->root();
+  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee);
 
   //delete m_pTestee;
   EXPECT_TRUE(mergeTree->size()==5);
   delete mergeTree;
 }
 
-TEST_F( BinTreeTest, Two_null_tree_merge) 
-{ 
+TEST_F( BinTreeTest, Two_null_tree_merge)
+{
   BinaryTree<int>::iterator pos = m_pTestee->root();
- 
-  BinaryTree<int> *mergeTree = new BinaryTree<int>;
-  BinaryTree<int>::iterator pos2 = mergeTree->root(); 
 
-  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee); 
+  BinaryTree<int> *mergeTree = new BinaryTree<int>;
+  BinaryTree<int>::iterator pos2 = mergeTree->root();
+
+  mergeTree->merge<TreeIteratorBase::Rightward>(pos2,*m_pTestee);
 
   //delete m_pTestee;
   EXPECT_TRUE(mergeTree->size()==0);
@@ -126,7 +126,7 @@
 {
   int a = 111;
   BinaryTree<int>::iterator pos = m_pTestee->root();
-  
+
   m_pTestee->join<InputTree::Inclusive>(pos,a);
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,10);
@@ -134,9 +134,9 @@
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,8);
   m_pTestee->join<InputTree::Inclusive>(pos,7);
-  
-  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin(); 
-  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end(); 
+
+  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin();
+  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end();
 
   ASSERT_EQ(111, **dfs_it);
   ++dfs_it;
@@ -149,8 +149,8 @@
   ASSERT_EQ(10, **dfs_it);
   ++dfs_it;
   ASSERT_TRUE( dfs_it ==  dfs_end);
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
 }
 
 TEST_F( BinTreeTest, DFSIterator_RightMostTree)
@@ -165,9 +165,9 @@
   m_pTestee->join<InputTree::Positional>(pos,3);
   pos.move<InputTree::Positional>();
   m_pTestee->join<InputTree::Positional>(pos,4);
-  
-  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin(); 
-  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end(); 
+
+  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin();
+  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end();
 
   ASSERT_EQ(0, **dfs_it);
   ++dfs_it;
@@ -187,8 +187,8 @@
 {
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<InputTree::Inclusive>(pos,0);
-  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin(); 
-  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end(); 
+  BinaryTree<int>::dfs_iterator dfs_it = m_pTestee->dfs_begin();
+  BinaryTree<int>::dfs_iterator dfs_end = m_pTestee->dfs_end();
   int counter = 0;
   while( dfs_it != dfs_end ) {
     ++counter;
@@ -201,7 +201,7 @@
 {
   int a = 111;
   BinaryTree<int>::iterator pos = m_pTestee->root();
-  
+
   m_pTestee->join<InputTree::Inclusive>(pos,a);
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,10);
@@ -209,9 +209,9 @@
   pos.move<InputTree::Inclusive>();
   m_pTestee->join<InputTree::Positional>(pos,8);
   m_pTestee->join<InputTree::Inclusive>(pos,7);
-  
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
 
   ASSERT_EQ(111, **bfs_it);
   ++bfs_it;
@@ -224,8 +224,8 @@
   ASSERT_EQ(7, **bfs_it);
   ++bfs_it;
   ASSERT_TRUE(bfs_it ==  bfs_end);
-  bfs_it = m_pTestee->bfs_begin(); 
-  bfs_end = m_pTestee->bfs_end(); 
+  bfs_it = m_pTestee->bfs_begin();
+  bfs_end = m_pTestee->bfs_end();
 }
 
 TEST_F( BinTreeTest, BFSIterator_RightMostTree)
@@ -240,9 +240,9 @@
   m_pTestee->join<InputTree::Positional>(pos,3);
   pos.move<InputTree::Positional>();
   m_pTestee->join<InputTree::Positional>(pos,4);
-  
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
 
   ASSERT_EQ(0, **bfs_it);
   ++bfs_it;
@@ -262,8 +262,8 @@
 {
   BinaryTree<int>::iterator pos = m_pTestee->root();
   m_pTestee->join<InputTree::Inclusive>(pos,0);
-  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin(); 
-  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end(); 
+  BinaryTree<int>::bfs_iterator bfs_it = m_pTestee->bfs_begin();
+  BinaryTree<int>::bfs_iterator bfs_end = m_pTestee->bfs_end();
   int counter = 0;
   while( bfs_it != bfs_end ) {
     ++counter;
@@ -272,4 +272,40 @@
   ASSERT_EQ(1, counter);
 }
 
+TEST_F( BinTreeTest, TreeIterator)
+{
+  BinaryTree<int>::iterator pos = m_pTestee->root();
+  m_pTestee->join<InputTree::Inclusive>(pos,0);
+  pos.move<InputTree::Inclusive>();
+  m_pTestee->join<InputTree::Positional>(pos,1);
+  pos.move<InputTree::Positional>();
+  m_pTestee->join<InputTree::Inclusive>(pos,2);
+  m_pTestee->join<InputTree::Positional>(pos,5);
+  pos.move<InputTree::Inclusive>();
+  m_pTestee->join<InputTree::Positional>(pos,3);
+  pos.move<InputTree::Positional>();
+  m_pTestee->join<InputTree::Positional>(pos,4);
+
+  BinaryTree<int>::iterator it = m_pTestee->begin();
+  BinaryTree<int>::iterator end = m_pTestee->end();
+
+  ASSERT_EQ(0, **it);
+  ++it;
+  ASSERT_EQ(1, **it);
+  --it;
+  ASSERT_EQ(2, **it);
+  ++it;
+  ASSERT_EQ(3, **it);
+  ++it;
+  ASSERT_EQ(4, **it);
+  ++it;
+  ASSERT_TRUE(it == end);
+
+  it = m_pTestee->begin();
+  ++it;
+  ++it;
+  ASSERT_EQ(5, **it);
+  ++it;
+  ASSERT_TRUE(it == end);
+}