13 { | 
    13 { | 
    14   TestGraph G;  | 
    14   TestGraph G;  | 
    15     | 
    15     | 
    16   TestGraph::NodeIterator tn,n2;  | 
    16   TestGraph::NodeIterator tn,n2;  | 
    17     | 
    17     | 
    18   for(int i=1;i<=5000;i++)  | 
    18   cout << "Create nodes\n";  | 
         | 
    19   | 
         | 
    20   for(int i=1;i<=500;i++)  | 
    19     { | 
    21     { | 
    20       *(tn=G.AddNode())=i;  | 
    22       *(tn=G.AddNode())=i;  | 
    21       if(i==2) n2=tn;  | 
    23       if(i==2) n2=tn;  | 
    22     }  | 
    24     }  | 
    23     | 
    25     | 
         | 
    26   cout << "Create Edges\n";  | 
         | 
    27     | 
    24   for(TestGraph::NodeIterator n(G);n.isValid();++n)  | 
    28   for(TestGraph::NodeIterator n(G);n.isValid();++n)  | 
    25     for(TestGraph::NodeIterator m(G);m.isValid();++m)  | 
    29     for(TestGraph::NodeIterator m(G);m.isValid();++m) if(n!=m)  | 
    26       if(gcd(*n,*m)>1) G.AddEdge(n,m);  | 
    30       if(gcd(*n,*m)>1) G.AddEdge(n,m);  | 
    27     | 
    31     | 
         | 
    32     | 
         | 
    33   cout << "Run BFS\n";  | 
         | 
    34   | 
    28   Bfs<default_bfs_T<TestGraph> > bfs;  | 
    35   Bfs<default_bfs_T<TestGraph> > bfs;  | 
    29   | 
    36   | 
    30   bfs.SetG(G);  | 
    37   bfs.SetG(G);  | 
    31   bfs.Init(n2);  | 
    38   bfs.Init(n2);  | 
    32   bfs.Run();  | 
    39   bfs.Run();  | 
    33   | 
    40   | 
    34   for(TestGraph::NodeIterator n(G);n.isValid();++n)  | 
    41   for(TestGraph::NodeIterator n(G);n.isValid();++n)  | 
    35     cout << Get(bfs.tree_map,n).From() << "->" << Get(bfs.tree_map,n).To()  | 
    42     if((*n)!=2)  | 
    36 	 << '\n';  | 
    43       cout << (Get(bfs.dist_map,n)) << '\n';  | 
    37   | 
    44   | 
         | 
    45   for(TestGraph::NodeIterator n(G);n.isValid();++n)  | 
         | 
    46     if(Get(bfs.dist_map,n))  | 
         | 
    47       cout << *(Get(bfs.tree_map,n).From()) << "->"  | 
         | 
    48 	   << *(Get(bfs.tree_map,n).To())  | 
         | 
    49 	   << '\n';  | 
    38 }  | 
    50 }  |