diff -r d8475431bbbb -r 8e85e6bbefdf test/map_test.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/map_test.h Mon May 23 04:48:14 2005 +0000 @@ -0,0 +1,95 @@ +/* -*- C++ -*- + * test/map_test.h - Part of LEMON, a generic C++ optimization library + * + * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport + * (Egervary Research Group on Combinatorial Optimization, EGRES). + * + * Permission to use, modify and distribute this software is granted + * provided that this copyright notice appears in all copies. For + * precise terms see the accompanying LICENSE file. + * + * This software is provided "AS IS" with no warranty of any kind, + * express or implied, and with no claim as to its suitability for any + * purpose. + * + */ +#ifndef LEMON_TEST_MAP_TEST_H +#define LEMON_TEST_MAP_TEST_H + + +#include + +#include "test_tools.h" + + +//! \ingroup misc +//! \file +//! \brief Some utilities to test map classes. + +namespace lemon { + + + template + void checkGraphNodeMap() { + Graph graph; + const int num = 16; + + typedef typename Graph::Node Node; + + std::vector nodes; + for (int i = 0; i < num; ++i) { + nodes.push_back(graph.addNode()); + } + typedef typename Graph::template NodeMap IntNodeMap; + IntNodeMap map(graph, 42); + for (int i = 0; i < (int)nodes.size(); ++i) { + check(map[nodes[i]] == 42, "Wrong map constructor."); + } + for (int i = 0; i < num; ++i) { + nodes.push_back(graph.addNode()); + map[nodes.back()] = 23; + } + graph.clear(); + nodes.clear(); + } + + template + void checkGraphEdgeMap() { + Graph graph; + const int num = 16; + + typedef typename Graph::Node Node; + typedef typename Graph::Edge Edge; + + std::vector nodes; + for (int i = 0; i < num; ++i) { + nodes.push_back(graph.addNode()); + } + + std::vector edges; + for (int i = 0; i < num; ++i) { + for (int j = 0; j < i; ++j) { + edges.push_back(graph.addEdge(nodes[i], nodes[j])); + } + } + + typedef typename Graph::template EdgeMap IntEdgeMap; + IntEdgeMap map(graph, 42); + + for (int i = 0; i < (int)edges.size(); ++i) { + check(map[edges[i]] == 42, "Wrong map constructor."); + } + + for (int i = 0; i < num; ++i) { + for (int j = i + 1; j < num; ++j) { + edges.push_back(graph.addEdge(nodes[i], nodes[j])); + map[edges.back()] = 23; + } + } + graph.clear(); + edges.clear(); + } + +} + +#endif