# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1254212511 -7200
# Node ID 819ca5b50de0c849d6097a3bf933060bbf21404d
# Parent 456fa5bc32569263c32886a2f1ebbc62b50e2500
Add a warning for List(Di)Graph::Snapshot (#311)
and extend tests for snapshots
diff --git a/lemon/list_graph.h b/lemon/list_graph.h
a
|
b
|
|
751 | 751 | /// |
752 | 752 | /// This function undos the changes until the last snapshot |
753 | 753 | /// created by save() or Snapshot(ListDigraph&). |
| 754 | /// |
| 755 | /// \warning This method invalidates the snapshot, i.e. repeated |
| 756 | /// restoring is not supported unless you call save() again. |
754 | 757 | void restore() { |
755 | 758 | detach(); |
756 | 759 | for(std::list<Arc>::iterator it = added_arcs.begin(); |
… |
… |
|
1550 | 1553 | /// |
1551 | 1554 | /// This function undos the changes until the last snapshot |
1552 | 1555 | /// created by save() or Snapshot(ListGraph&). |
| 1556 | /// |
| 1557 | /// \warning This method invalidates the snapshot, i.e. repeated |
| 1558 | /// restoring is not supported unless you call save() again. |
1553 | 1559 | void restore() { |
1554 | 1560 | detach(); |
1555 | 1561 | for(std::list<Edge>::iterator it = added_edges.begin(); |
diff --git a/test/digraph_test.cc b/test/digraph_test.cc
a
|
b
|
|
286 | 286 | G.addArc(G.addNode(), G.addNode()); |
287 | 287 | |
288 | 288 | snapshot.restore(); |
| 289 | snapshot.save(G); |
| 290 | |
| 291 | checkGraphNodeList(G, 4); |
| 292 | checkGraphArcList(G, 4); |
| 293 | |
| 294 | G.addArc(G.addNode(), G.addNode()); |
| 295 | |
| 296 | snapshot.restore(); |
289 | 297 | |
290 | 298 | checkGraphNodeList(G, 4); |
291 | 299 | checkGraphArcList(G, 4); |
diff --git a/test/graph_test.cc b/test/graph_test.cc
a
|
b
|
|
259 | 259 | G.addEdge(G.addNode(), G.addNode()); |
260 | 260 | |
261 | 261 | snapshot.restore(); |
| 262 | snapshot.save(G); |
| 263 | |
| 264 | checkGraphNodeList(G, 4); |
| 265 | checkGraphEdgeList(G, 3); |
| 266 | checkGraphArcList(G, 6); |
| 267 | |
| 268 | G.addEdge(G.addNode(), G.addNode()); |
| 269 | |
| 270 | snapshot.restore(); |
262 | 271 | |
263 | 272 | checkGraphNodeList(G, 4); |
264 | 273 | checkGraphEdgeList(G, 3); |