1.1 --- a/test/maps_test.cc Fri Sep 25 12:24:16 2009 +0200
1.2 +++ b/test/maps_test.cc Sat Sep 26 07:08:10 2009 +0200
1.3 @@ -579,6 +579,40 @@
1.4 it == map.endValue(), "Wrong value iterator");
1.5 }
1.6
1.7 + // CrossRefMap
1.8 + {
1.9 + typedef SmartDigraph Graph;
1.10 + DIGRAPH_TYPEDEFS(Graph);
1.11 +
1.12 + checkConcept<ReadWriteMap<Node, int>,
1.13 + CrossRefMap<Graph, Node, int> >();
1.14 +
1.15 + Graph gr;
1.16 + typedef CrossRefMap<Graph, Node, char> CRMap;
1.17 + typedef CRMap::ValueIterator ValueIt;
1.18 + CRMap map(gr);
1.19 +
1.20 + Node n0 = gr.addNode();
1.21 + Node n1 = gr.addNode();
1.22 + Node n2 = gr.addNode();
1.23 +
1.24 + map.set(n0, 'A');
1.25 + map.set(n1, 'B');
1.26 + map.set(n2, 'C');
1.27 + map.set(n2, 'A');
1.28 + map.set(n0, 'C');
1.29 +
1.30 + check(map[n0] == 'C' && map[n1] == 'B' && map[n2] == 'A',
1.31 + "Wrong CrossRefMap");
1.32 + check(map('A') == n2 && map.inverse()['A'] == n2, "Wrong CrossRefMap");
1.33 + check(map('B') == n1 && map.inverse()['B'] == n1, "Wrong CrossRefMap");
1.34 + check(map('C') == n0 && map.inverse()['C'] == n0, "Wrong CrossRefMap");
1.35 +
1.36 + ValueIt it = map.beginValue();
1.37 + check(*it++ == 'A' && *it++ == 'B' && *it++ == 'C' &&
1.38 + it == map.endValue(), "Wrong value iterator");
1.39 + }
1.40 +
1.41 // Iterable bool map
1.42 {
1.43 typedef SmartGraph Graph;