00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 #include <mln/util/tree.hh>
00027 #include <mln/util/tree_to_fast.hh>
00028 #include <mln/util/tree_fast.hh>
00029 
00030 int main ()
00031 {
00032   using namespace mln;
00033 
00034   unsigned elt1 = 1;
00035   unsigned elt2 = 2;
00036   unsigned elt3 = 3;
00037   unsigned elt4 = 4;
00038   unsigned elt5 = 5;
00039   unsigned elt6= 42;
00040 
00041   util::tree_node<unsigned> node(elt1);
00042   util::tree_node<unsigned>* node2 =  node.add_child(elt2);
00043   node.add_child(elt3);
00044   mln_assertion(node2);
00045   node2->add_child(elt4);
00046   node2->add_child(elt5);
00047   util::tree_node<unsigned>* node3 = node.search(elt4);
00048   mln_assertion(node3);
00049   node3 = node2->search(elt1);
00050   mln_assertion(!node3);
00051   util::tree<unsigned>* tre = new util::tree<unsigned>(&node);
00052   mln_assertion(tre);
00053   tre->add_tree_up(elt6);
00054   mln_assertion (tre->check_consistency());
00055 
00056 
00057   util::tree_fast<unsigned> tree_fast = util::tree_to_fast(*tre);
00058   mln_assertion(tree_fast.has (elt1));
00059   mln_assertion(tree_fast.has (elt2));
00060   mln_assertion(tree_fast.has (elt3));
00061   mln_assertion(tree_fast.has (elt4));
00062   mln_assertion(tree_fast.has (elt5));
00063   mln_assertion(tree_fast.has (elt6));
00064   mln_assertion(tree_fast.search(elt6) == tree_fast.root_);
00065 }