COIN-OR::LEMON - Graph Library

source: lemon-1.2/test/path_test.cc

Last change on this file was 957:7440937d154b, checked in by Alpar Juttner <alpar@…>, 12 years ago

Bugfix in path copy constructors and assignment operators (#444)

File size: 1.8 KB
Line 
1/* -*- mode: C++; indent-tabs-mode: nil; -*-
2 *
3 * This file is a part of LEMON, a generic C++ optimization library.
4 *
5 * Copyright (C) 2003-2009
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
8 *
9 * Permission to use, modify and distribute this software is granted
10 * provided that this copyright notice appears in all copies. For
11 * precise terms see the accompanying LICENSE file.
12 *
13 * This software is provided "AS IS" with no warranty of any kind,
14 * express or implied, and with no claim as to its suitability for any
15 * purpose.
16 *
17 */
18
19#include <string>
20#include <iostream>
21
22#include <lemon/concepts/path.h>
23#include <lemon/concepts/digraph.h>
24
25#include <lemon/path.h>
26#include <lemon/list_graph.h>
27
28#include "test_tools.h"
29
30using namespace std;
31using namespace lemon;
32
33void check_concepts() {
34  checkConcept<concepts::Path<ListDigraph>, concepts::Path<ListDigraph> >();
35  checkConcept<concepts::Path<ListDigraph>, Path<ListDigraph> >();
36  checkConcept<concepts::Path<ListDigraph>, SimplePath<ListDigraph> >();
37  checkConcept<concepts::Path<ListDigraph>, StaticPath<ListDigraph> >();
38  checkConcept<concepts::Path<ListDigraph>, ListPath<ListDigraph> >();
39}
40
41// Check if proper copy consructor is called (use valgrind for testing)
42template<class _Path>
43void checkCopy()
44{
45  ListDigraph g;
46  ListDigraph::Arc a  = g.addArc(g.addNode(), g.addNode());
47 
48  _Path p,q;
49  p.addBack(a);
50  q=p;
51  _Path r(p);
52  StaticPath<ListDigraph> s(r);
53}
54 
55int main() {
56  check_concepts();
57
58  checkCopy<Path<ListDigraph> >();
59  checkCopy<SimplePath<ListDigraph> >();
60  checkCopy<ListPath<ListDigraph> >();
61
62  ListDigraph g;
63  ListDigraph::Arc a  = g.addArc(g.addNode(), g.addNode());
64 
65  Path<ListDigraph> p;
66  StaticPath<ListDigraph> q,r;
67  p.addBack(a);
68  q=p;
69  r=q;
70  StaticPath<ListDigraph> s(q);
71
72  return 0;
73}
Note: See TracBrowser for help on using the repository browser.