src/test/graph_wrapper_test.cc
changeset 953 d9c115e2eeaf
parent 938 70e2886211d5
child 959 c80ef5912903
equal deleted inserted replaced
7:36b63f0cb152 8:20e7d6734391
    13  * purpose.
    13  * purpose.
    14  *
    14  *
    15  */
    15  */
    16 
    16 
    17 #include<iostream>
    17 #include<iostream>
       
    18 #include<lemon/concept_check.h>
       
    19 
    18 #include<lemon/smart_graph.h>
    20 #include<lemon/smart_graph.h>
    19 #include<lemon/skeletons/graph.h>
    21 #include<lemon/skeletons/graph.h>
       
    22 
    20 #include<lemon/list_graph.h>
    23 #include<lemon/list_graph.h>
    21 #include<lemon/full_graph.h>
    24 #include<lemon/full_graph.h>
    22 #include<lemon/graph_wrapper.h>
    25 #include<lemon/graph_wrapper.h>
    23 
    26 
    24 #include"test/test_tools.h"
    27 #include"test/test_tools.h"
    30 
    33 
    31 \todo More extensive tests are needed 
    34 \todo More extensive tests are needed 
    32 */
    35 */
    33 
    36 
    34 using namespace lemon;
    37 using namespace lemon;
       
    38 using namespace lemon::skeleton;
    35 
    39 
    36 
    40 
    37 typedef SmartGraph Graph;
    41 typedef SmartGraph Graph;
    38 
    42 
    39 //Compile GraphWrapper
       
    40 typedef GraphWrapper<Graph> GW;
       
    41 template void lemon::skeleton::checkCompileStaticGraph<GW>(GW &);
       
    42 
       
    43 //Compile RevGraphWrapper
       
    44 typedef RevGraphWrapper<Graph> RevGW;
       
    45 template void lemon::skeleton::checkCompileStaticGraph<RevGW>(RevGW &);
       
    46 
       
    47 //Compile SubGraphWrapper
       
    48 typedef SubGraphWrapper<Graph, Graph::NodeMap<bool>, 
       
    49 			Graph::EdgeMap<bool> > SubGW;
       
    50 template void lemon::skeleton::checkCompileStaticGraph<SubGW>(SubGW &);
       
    51 
       
    52 //Compile NodeSubGraphWrapper
       
    53 typedef NodeSubGraphWrapper<Graph, Graph::NodeMap<bool> > NodeSubGW;
       
    54 template void lemon::skeleton::checkCompileStaticGraph<NodeSubGW>(NodeSubGW &);
       
    55 
       
    56 //Compile EdgeSubGraphWrapper
       
    57 typedef EdgeSubGraphWrapper<Graph, Graph::EdgeMap<bool> > EdgeSubGW;
       
    58 template void lemon::skeleton::checkCompileStaticGraph<EdgeSubGW>(EdgeSubGW &);
       
    59 
       
    60 //Compile UndirGraphWrapper
       
    61 /// \bug UndirGraphWrapper cannot pass the StaticGraph test
       
    62 //typedef UndirGraphWrapper<Graph> UndirGW;
       
    63 //template void checkCompileStaticGraph<UndirGW>(UndirGW &);
       
    64 
       
    65 //Compile UndirGraph
       
    66 //typedef UndirGraph<Graph> UndirG;
       
    67 //template void checkCompileStaticGraph<UndirG>(UndirG &);
       
    68 
       
    69 //Compile SubBidirGraphWrapper
       
    70 typedef SubBidirGraphWrapper<Graph, Graph::EdgeMap<bool>, 
       
    71 			     Graph::EdgeMap<bool> > SubBDGW;
       
    72 template void lemon::skeleton::checkCompileStaticGraph<SubBDGW>(SubBDGW &);
       
    73 
       
    74 //Compile BidirGraphWrapper
       
    75 typedef BidirGraphWrapper<Graph> BidirGW;
       
    76 template void lemon::skeleton::checkCompileStaticGraph<BidirGW>(BidirGW &);
       
    77 
       
    78 //Compile BidirGraph
       
    79 typedef BidirGraph<Graph> BidirG;
       
    80 template void lemon::skeleton::checkCompileStaticGraph<BidirG>(BidirG &);
       
    81 
       
    82 //Compile ResGraphWrapper
       
    83 typedef ResGraphWrapper<Graph, int, Graph::EdgeMap<int>, 
       
    84 			Graph::EdgeMap<int> > ResGW;
       
    85 template void lemon::skeleton::checkCompileStaticGraph<ResGW>(ResGW &);
       
    86 
       
    87 //Compile ErasingFirstGraphWrapper
       
    88 typedef ErasingFirstGraphWrapper<Graph, Graph::NodeMap<Graph::Edge> > ErasingFirstGW;
       
    89 template
       
    90 void lemon::skeleton::checkCompileStaticGraph<ErasingFirstGW>(ErasingFirstGW &);
       
    91 
       
    92 
    43 
    93 int main() 
    44 int main() 
    94 {
    45 {
       
    46   {
       
    47     function_requires<StaticGraphConcept<GraphWrapper<Graph> > >();
       
    48 
       
    49     function_requires<StaticGraphConcept<RevGraphWrapper<Graph> > >();
       
    50 
       
    51     function_requires<StaticGraphConcept<SubGraphWrapper<Graph, Graph::NodeMap<bool> , Graph::EdgeMap<bool> > > >();
       
    52     function_requires<StaticGraphConcept<NodeSubGraphWrapper<Graph, Graph::NodeMap<bool> > > >();
       
    53     function_requires<StaticGraphConcept<EdgeSubGraphWrapper<Graph, Graph::EdgeMap<bool> > > >();
       
    54 
       
    55     function_requires<StaticGraphConcept<SubBidirGraphWrapper<Graph, Graph::EdgeMap<bool>, Graph::EdgeMap<bool> > > > ();
       
    56 
       
    57     function_requires<StaticGraphConcept<BidirGraph<Graph> > >();
       
    58 
       
    59     function_requires<StaticGraphConcept<ResGraphWrapper<Graph, int, Graph::EdgeMap<int>, Graph::EdgeMap<int> > > >();
       
    60 
       
    61     function_requires<StaticGraphConcept<ErasingFirstGraphWrapper<Graph, Graph::NodeMap<Graph::Edge> > > >();
       
    62   }
    95   std::cout << __FILE__ ": All tests passed.\n";
    63   std::cout << __FILE__ ": All tests passed.\n";
    96 
    64 
    97   return 0;
    65   return 0;
    98 }
    66 }