equal
  deleted
  inserted
  replaced
  
    
    
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-  | 
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-  | 
     2  *  | 
     2  *  | 
     3  * This file is a part of LEMON, a generic C++ optimization library.  | 
     3  * This file is a part of LEMON, a generic C++ optimization library.  | 
     4  *  | 
     4  *  | 
     5  * Copyright (C) 2003-2009  | 
     5  * Copyright (C) 2003-2013  | 
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport  | 
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport  | 
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).  | 
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).  | 
     8  *  | 
     8  *  | 
     9  * Permission to use, modify and distribute this software is granted  | 
     9  * Permission to use, modify and distribute this software is granted  | 
    10  * provided that this copyright notice appears in all copies. For  | 
    10  * provided that this copyright notice appears in all copies. For  | 
    51       SmartDigraph::Arc arc = from.addArc(fnv[i], fnv[j]);  | 
    51       SmartDigraph::Arc arc = from.addArc(fnv[i], fnv[j]);  | 
    52       fam[arc] = i + j * j;  | 
    52       fam[arc] = i + j * j;  | 
    53       if (i == 0 && j == 0) fa = arc;  | 
    53       if (i == 0 && j == 0) fa = arc;  | 
    54     }  | 
    54     }  | 
    55   }  | 
    55   }  | 
    56     | 
    56   | 
    57   // Test digraph copy  | 
    57   // Test digraph copy  | 
    58   GR to;  | 
    58   GR to;  | 
    59   typename GR::template NodeMap<int> tnm(to);  | 
    59   typename GR::template NodeMap<int> tnm(to);  | 
    60   typename GR::template ArcMap<int> tam(to);  | 
    60   typename GR::template ArcMap<int> tam(to);  | 
    61   typename GR::Node tn;  | 
    61   typename GR::Node tn;  | 
    70   digraphCopy(from, to).  | 
    70   digraphCopy(from, to).  | 
    71     nodeMap(fnm, tnm).arcMap(fam, tam).  | 
    71     nodeMap(fnm, tnm).arcMap(fam, tam).  | 
    72     nodeRef(nr).arcRef(er).  | 
    72     nodeRef(nr).arcRef(er).  | 
    73     nodeCrossRef(ncr).arcCrossRef(ecr).  | 
    73     nodeCrossRef(ncr).arcCrossRef(ecr).  | 
    74     node(fn, tn).arc(fa, ta).run();  | 
    74     node(fn, tn).arc(fa, ta).run();  | 
    75     | 
    75   | 
    76   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
    76   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
    77   check(countArcs(from) == countArcs(to), "Wrong copy.");  | 
    77   check(countArcs(from) == countArcs(to), "Wrong copy.");  | 
    78   | 
    78   | 
    79   for (SmartDigraph::NodeIt it(from); it != INVALID; ++it) { | 
    79   for (SmartDigraph::NodeIt it(from); it != INVALID; ++it) { | 
    80     check(ncr[nr[it]] == it, "Wrong copy.");  | 
    80     check(ncr[nr[it]] == it, "Wrong copy.");  | 
    98   check(tn == nr[fn], "Wrong copy.");  | 
    98   check(tn == nr[fn], "Wrong copy.");  | 
    99   check(ta == er[fa], "Wrong copy.");  | 
    99   check(ta == er[fa], "Wrong copy.");  | 
   100   | 
   100   | 
   101   // Test repeated copy  | 
   101   // Test repeated copy  | 
   102   digraphCopy(from, to).run();  | 
   102   digraphCopy(from, to).run();  | 
   103     | 
   103   | 
   104   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
   104   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
   105   check(countArcs(from) == countArcs(to), "Wrong copy.");  | 
   105   check(countArcs(from) == countArcs(to), "Wrong copy.");  | 
   106 }  | 
   106 }  | 
   107   | 
   107   | 
   108 template <typename GR>  | 
   108 template <typename GR>  | 
   201   check(ta == ar[fa], "Wrong copy.");  | 
   201   check(ta == ar[fa], "Wrong copy.");  | 
   202   check(te == er[fe], "Wrong copy.");  | 
   202   check(te == er[fe], "Wrong copy.");  | 
   203   | 
   203   | 
   204   // Test repeated copy  | 
   204   // Test repeated copy  | 
   205   graphCopy(from, to).run();  | 
   205   graphCopy(from, to).run();  | 
   206     | 
   206   | 
   207   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
   207   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
   208   check(countEdges(from) == countEdges(to), "Wrong copy.");  | 
   208   check(countEdges(from) == countEdges(to), "Wrong copy.");  | 
   209   check(countArcs(from) == countArcs(to), "Wrong copy.");  | 
   209   check(countArcs(from) == countArcs(to), "Wrong copy.");  | 
   210 }  | 
   210 }  | 
   211   | 
   211   | 
   364   check(ta == ar[fa], "Wrong copy.");  | 
   364   check(ta == ar[fa], "Wrong copy.");  | 
   365   check(te == er[fe], "Wrong copy.");  | 
   365   check(te == er[fe], "Wrong copy.");  | 
   366   | 
   366   | 
   367   // Test repeated copy  | 
   367   // Test repeated copy  | 
   368   bpGraphCopy(from, to).run();  | 
   368   bpGraphCopy(from, to).run();  | 
   369     | 
   369   | 
   370   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
   370   check(countNodes(from) == countNodes(to), "Wrong copy.");  | 
   371   check(countRedNodes(from) == countRedNodes(to), "Wrong copy.");  | 
   371   check(countRedNodes(from) == countRedNodes(to), "Wrong copy.");  | 
   372   check(countBlueNodes(from) == countBlueNodes(to), "Wrong copy.");  | 
   372   check(countBlueNodes(from) == countBlueNodes(to), "Wrong copy.");  | 
   373   check(countEdges(from) == countEdges(to), "Wrong copy.");  | 
   373   check(countEdges(from) == countEdges(to), "Wrong copy.");  | 
   374   check(countArcs(from) == countArcs(to), "Wrong copy.");  | 
   374   check(countArcs(from) == countArcs(to), "Wrong copy.");  |