Changes in test/maps_test.cc [768:99124ea4f048:741:71939d63ae77] in lemon
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

test/maps_test.cc
r768 r741 23 23 #include <lemon/concepts/maps.h> 24 24 #include <lemon/maps.h> 25 #include <lemon/list_graph.h>26 25 #include <lemon/smart_graph.h> 27 26 … … 331 330 { 332 331 typedef std::vector<int> vec; 333 checkConcept<WriteMap<int, bool>, LoggerBoolMap<vec::iterator> >();334 checkConcept<WriteMap<int, bool>,335 LoggerBoolMap<std::back_insert_iterator<vec> > >();336 337 332 vec v1; 338 333 vec v2(10); … … 355 350 check(v1[i++] == *it, "Something is wrong with LoggerBoolMap"); 356 351 } 357 358 // IdMap, RangeIdMap359 {360 typedef ListDigraph Graph;361 DIGRAPH_TYPEDEFS(Graph);362 363 checkConcept<ReadMap<Node, int>, IdMap<Graph, Node> >();364 checkConcept<ReadMap<Arc, int>, IdMap<Graph, Arc> >();365 checkConcept<ReadMap<Node, int>, RangeIdMap<Graph, Node> >();366 checkConcept<ReadMap<Arc, int>, RangeIdMap<Graph, Arc> >();367 368 Graph gr;369 IdMap<Graph, Node> nmap(gr);370 IdMap<Graph, Arc> amap(gr);371 RangeIdMap<Graph, Node> nrmap(gr);372 RangeIdMap<Graph, Arc> armap(gr);373 374 Node n0 = gr.addNode();375 Node n1 = gr.addNode();376 Node n2 = gr.addNode();377 378 Arc a0 = gr.addArc(n0, n1);379 Arc a1 = gr.addArc(n0, n2);380 Arc a2 = gr.addArc(n2, n1);381 Arc a3 = gr.addArc(n2, n0);382 383 check(nmap[n0] == gr.id(n0) && nmap(gr.id(n0)) == n0, "Wrong IdMap");384 check(nmap[n1] == gr.id(n1) && nmap(gr.id(n1)) == n1, "Wrong IdMap");385 check(nmap[n2] == gr.id(n2) && nmap(gr.id(n2)) == n2, "Wrong IdMap");386 387 check(amap[a0] == gr.id(a0) && amap(gr.id(a0)) == a0, "Wrong IdMap");388 check(amap[a1] == gr.id(a1) && amap(gr.id(a1)) == a1, "Wrong IdMap");389 check(amap[a2] == gr.id(a2) && amap(gr.id(a2)) == a2, "Wrong IdMap");390 check(amap[a3] == gr.id(a3) && amap(gr.id(a3)) == a3, "Wrong IdMap");391 392 check(nmap.inverse()[gr.id(n0)] == n0, "Wrong IdMap::InverseMap");393 check(amap.inverse()[gr.id(a0)] == a0, "Wrong IdMap::InverseMap");394 395 check(nrmap.size() == 3 && armap.size() == 4,396 "Wrong RangeIdMap::size()");397 398 check(nrmap[n0] == 0 && nrmap(0) == n0, "Wrong RangeIdMap");399 check(nrmap[n1] == 1 && nrmap(1) == n1, "Wrong RangeIdMap");400 check(nrmap[n2] == 2 && nrmap(2) == n2, "Wrong RangeIdMap");401 402 check(armap[a0] == 0 && armap(0) == a0, "Wrong RangeIdMap");403 check(armap[a1] == 1 && armap(1) == a1, "Wrong RangeIdMap");404 check(armap[a2] == 2 && armap(2) == a2, "Wrong RangeIdMap");405 check(armap[a3] == 3 && armap(3) == a3, "Wrong RangeIdMap");406 407 check(nrmap.inverse()[0] == n0, "Wrong RangeIdMap::InverseMap");408 check(armap.inverse()[0] == a0, "Wrong RangeIdMap::InverseMap");409 410 gr.erase(n1);411 412 if (nrmap[n0] == 1) nrmap.swap(n0, n2);413 nrmap.swap(n2, n0);414 if (armap[a1] == 1) armap.swap(a1, a3);415 armap.swap(a3, a1);416 417 check(nrmap.size() == 2 && armap.size() == 2,418 "Wrong RangeIdMap::size()");419 420 check(nrmap[n0] == 1 && nrmap(1) == n0, "Wrong RangeIdMap");421 check(nrmap[n2] == 0 && nrmap(0) == n2, "Wrong RangeIdMap");422 423 check(armap[a1] == 1 && armap(1) == a1, "Wrong RangeIdMap");424 check(armap[a3] == 0 && armap(0) == a3, "Wrong RangeIdMap");425 426 check(nrmap.inverse()[0] == n2, "Wrong RangeIdMap::InverseMap");427 check(armap.inverse()[0] == a3, "Wrong RangeIdMap::InverseMap");428 }429 430 // CrossRefMap431 {432 typedef ListDigraph Graph;433 DIGRAPH_TYPEDEFS(Graph);434 435 checkConcept<ReadWriteMap<Node, int>,436 CrossRefMap<Graph, Node, int> >();437 checkConcept<ReadWriteMap<Node, bool>,438 CrossRefMap<Graph, Node, bool> >();439 checkConcept<ReadWriteMap<Node, double>,440 CrossRefMap<Graph, Node, double> >();441 442 Graph gr;443 typedef CrossRefMap<Graph, Node, char> CRMap;444 typedef CRMap::ValueIterator ValueIt;445 CRMap map(gr);446 447 Node n0 = gr.addNode();448 Node n1 = gr.addNode();449 Node n2 = gr.addNode();450 451 map.set(n0, 'A');452 map.set(n1, 'B');453 map.set(n2, 'C');454 455 check(map[n0] == 'A' && map('A') == n0 && map.inverse()['A'] == n0,456 "Wrong CrossRefMap");457 check(map[n1] == 'B' && map('B') == n1 && map.inverse()['B'] == n1,458 "Wrong CrossRefMap");459 check(map[n2] == 'C' && map('C') == n2 && map.inverse()['C'] == n2,460 "Wrong CrossRefMap");461 check(map.count('A') == 1 && map.count('B') == 1 && map.count('C') == 1,462 "Wrong CrossRefMap::count()");463 464 ValueIt it = map.beginValue();465 check(*it++ == 'A' && *it++ == 'B' && *it++ == 'C' &&466 it == map.endValue(), "Wrong value iterator");467 468 map.set(n2, 'A');469 470 check(map[n0] == 'A' && map[n1] == 'B' && map[n2] == 'A',471 "Wrong CrossRefMap");472 check(map('A') == n0 && map.inverse()['A'] == n0, "Wrong CrossRefMap");473 check(map('B') == n1 && map.inverse()['B'] == n1, "Wrong CrossRefMap");474 check(map('C') == INVALID && map.inverse()['C'] == INVALID,475 "Wrong CrossRefMap");476 check(map.count('A') == 2 && map.count('B') == 1 && map.count('C') == 0,477 "Wrong CrossRefMap::count()");478 479 it = map.beginValue();480 check(*it++ == 'A' && *it++ == 'A' && *it++ == 'B' &&481 it == map.endValue(), "Wrong value iterator");482 483 map.set(n0, 'C');484 485 check(map[n0] == 'C' && map[n1] == 'B' && map[n2] == 'A',486 "Wrong CrossRefMap");487 check(map('A') == n2 && map.inverse()['A'] == n2, "Wrong CrossRefMap");488 check(map('B') == n1 && map.inverse()['B'] == n1, "Wrong CrossRefMap");489 check(map('C') == n0 && map.inverse()['C'] == n0, "Wrong CrossRefMap");490 check(map.count('A') == 1 && map.count('B') == 1 && map.count('C') == 1,491 "Wrong CrossRefMap::count()");492 493 it = map.beginValue();494 check(*it++ == 'A' && *it++ == 'B' && *it++ == 'C' &&495 it == map.endValue(), "Wrong value iterator");496 }497 352 498 353 // Iterable bool map
Note: See TracChangeset
for help on using the changeset viewer.