COIN-OR::LEMON - Graph Library

source: lemon-0.x/src/test/path_test.cc @ 963:5a7556e9e340

Last change on this file since 963:5a7556e9e340 was 959:c80ef5912903, checked in by Mihaly Barasz, 20 years ago

skeleton(s) -> concept renaming

File size: 3.4 KB
RevLine 
[906]1/* -*- C++ -*-
[921]2 * src/test/path_test.cc - Part of LEMON, a generic C++ optimization library
[906]3 *
4 * Copyright (C) 2004 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
5 * (Egervary Combinatorial Optimization Research Group, EGRES).
6 *
7 * Permission to use, modify and distribute this software is granted
8 * provided that this copyright notice appears in all copies. For
9 * precise terms see the accompanying LICENSE file.
10 *
11 * This software is provided "AS IS" with no warranty of any kind,
12 * express or implied, and with no claim as to its suitability for any
13 * purpose.
14 *
15 */
16
[820]17#include <string>
18#include <iostream>
[959]19#include <lemon/concept/path.h>
[921]20#include <lemon/path.h>
21#include <lemon/list_graph.h>
[820]22
23using namespace std;
[921]24using namespace lemon;
[959]25using namespace lemon::concept;
[820]26
[831]27template<class Path> void checkCompilePath(Path &P)
28{
29  typedef typename Path::EdgeIt EdgeIt;
30  typedef typename Path::NodeIt NodeIt;
31  typedef typename Path::GraphNode GraphNode;
32  typedef typename Path::GraphEdge GraphEdge;
33  //typedef typename Path::Builder Builder;
34  //??? ha csinalok ilyet es siman Builderrel peldanyositok, akkor warningol. Talan friend miatt? De ki az?
[820]35
[831]36  EdgeIt ei;
37  NodeIt ni;
38  GraphNode gn;
39  GraphEdge ge;
40
41  size_t st;
42  bool b;
43
44  //Path(const Graph &_G) {}      //the constructor has been already called
45
46  st=P.length();                  //size_t length() const {return 0;}
47  b=P.empty();                    //bool empty() const {}
48  P.clear();                      //void clear() {}
49
50  gn=P.head();                    //GraphNode/*It*/ head() const {return INVALID;}
51  gn=P.tail();                    //GraphNode/*It*/ tail() const {return INVALID;}
52
53  ei=P.first(ei);                 //It& first(It &i) const { return i=It(*this); }
54
55  ni=P.head(ei);                  //NodeIt head(const EdgeIt& e) const {}
56  ni=P.tail(ei);                  //NodeIt tail(const EdgeIt& e) const {}
57
58
59  ListGraph lg;
60  Path p(lg);
61
62  EdgeIt i;                       //EdgeIt() {}
63  EdgeIt j(INVALID);              //EdgeIt(Invalid) {}
64  EdgeIt k(p);                    //EdgeIt(const Path &_p) {}
65
66  i=++j;                          //EdgeIt& operator++() {}
67  b=(i==j);                       //bool operator==(const EdgeIt& e) const {return true;}
68  b=(i!=j);                       //bool operator!=(const EdgeIt& e) const {return true;}
69
70
71  NodeIt l;                       //NodeIt() {}
72  NodeIt m(INVALID);              //NodeIt(Invalid) {}
73  NodeIt n(p);                    //NodeIt(const Path &_p) {}
74
75  l=++m;                          //NodeIt& operator++() {}
76  b=(m==n);                       //bool operator==(const NodeIt& e) const {}
77  b=(m!=n);                       //bool operator!=(const NodeIt& e) const {}
78
79  typename Path::Builder builder(p);     //Builder(Path &_P) : P(_P) {}
80  builder.setStartNode(gn);              //void setStartNode(const GraphNode &) {}
81  builder.pushFront(ge);                 //void pushFront(const GraphEdge& e) {}
82  builder.pushBack(ge);                  //void pushBack(const GraphEdge& e) {}
83  builder.commit();                      //void commit() {}
84  builder.reserveFront(st);              //void reserveFront(size_t r) {}
85  builder.reserveBack(st);               //void reserveBack(size_t r) {}
86
[820]87}
88
[959]89template void checkCompilePath< concept::Path<ListGraph> >(concept::Path<ListGraph> &);
[831]90template void checkCompilePath< DirPath<ListGraph> >(DirPath<ListGraph> &);
91template void checkCompilePath< UndirPath<ListGraph> >(UndirPath<ListGraph> &);
[820]92
[831]93int main()
94{
[820]95}
Note: See TracBrowser for help on using the repository browser.