Boost logo

Boost-Commit :

From: aaron.windsor_at_[hidden]
Date: 2007-08-25 17:12:35


Author: aaron_windsor
Date: 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
New Revision: 38956
URL: http://svn.boost.org/trac/boost/changeset/38956

Log:
merging planar graph algorithms into the BGL
Added:
   trunk/boost/graph/boyer_myrvold_planar_test.hpp (contents, props changed)
   trunk/boost/graph/chrobak_payne_drawing.hpp (contents, props changed)
   trunk/boost/graph/is_kuratowski_subgraph.hpp (contents, props changed)
   trunk/boost/graph/is_straight_line_drawing.hpp (contents, props changed)
   trunk/boost/graph/make_biconnected_planar.hpp (contents, props changed)
   trunk/boost/graph/make_connected.hpp (contents, props changed)
   trunk/boost/graph/make_maximal_planar.hpp (contents, props changed)
   trunk/boost/graph/planar_canonical_ordering.hpp (contents, props changed)
   trunk/boost/graph/planar_detail/
   trunk/boost/graph/planar_detail/add_edge_visitors.hpp (contents, props changed)
   trunk/boost/graph/planar_detail/boyer_myrvold_impl.hpp (contents, props changed)
   trunk/boost/graph/planar_detail/bucket_sort.hpp (contents, props changed)
   trunk/boost/graph/planar_detail/face_handles.hpp (contents, props changed)
   trunk/boost/graph/planar_detail/face_iterators.hpp (contents, props changed)
   trunk/boost/graph/planar_face_traversal.hpp (contents, props changed)
   trunk/libs/graph/doc/AddEdgeVisitor.html (contents, props changed)
   trunk/libs/graph/doc/PlanarEmbedding.html (contents, props changed)
   trunk/libs/graph/doc/PlanarFaceVisitor.html (contents, props changed)
   trunk/libs/graph/doc/boyer_myrvold.html (contents, props changed)
   trunk/libs/graph/doc/figs/canonical_ordering.png (contents, props changed)
   trunk/libs/graph/doc/figs/embedding_illustration.png (contents, props changed)
   trunk/libs/graph/doc/figs/face_illustration.png (contents, props changed)
   trunk/libs/graph/doc/figs/face_traversal_example.png (contents, props changed)
   trunk/libs/graph/doc/figs/k_5_and_k_3_3.png (contents, props changed)
   trunk/libs/graph/doc/figs/planar_plane_straight_line.png (contents, props changed)
   trunk/libs/graph/doc/figs/straight_line_drawing.png (contents, props changed)
   trunk/libs/graph/doc/is_kuratowski_subgraph.html (contents, props changed)
   trunk/libs/graph/doc/is_straight_line_drawing.html (contents, props changed)
   trunk/libs/graph/doc/make_biconnected_planar.html (contents, props changed)
   trunk/libs/graph/doc/make_connected.html (contents, props changed)
   trunk/libs/graph/doc/make_maximal_planar.html (contents, props changed)
   trunk/libs/graph/doc/planar_canonical_ordering.html (contents, props changed)
   trunk/libs/graph/doc/planar_face_traversal.html (contents, props changed)
   trunk/libs/graph/doc/planar_graphs.html (contents, props changed)
   trunk/libs/graph/doc/straight_line_drawing.html (contents, props changed)
   trunk/libs/graph/example/canonical_ordering.cpp (contents, props changed)
   trunk/libs/graph/example/kuratowski_subgraph.cpp (contents, props changed)
   trunk/libs/graph/example/make_biconnected_planar.cpp (contents, props changed)
   trunk/libs/graph/example/make_connected.cpp (contents, props changed)
   trunk/libs/graph/example/make_maximal_planar.cpp (contents, props changed)
   trunk/libs/graph/example/planar_face_traversal.cpp (contents, props changed)
   trunk/libs/graph/example/simple_planarity_test.cpp (contents, props changed)
   trunk/libs/graph/example/straight_line_drawing.cpp (contents, props changed)
   trunk/libs/graph/test/all_planar_input_files_test.cpp (contents, props changed)
   trunk/libs/graph/test/basic_planarity_test.cpp (contents, props changed)
   trunk/libs/graph/test/make_biconnected_planar_test.cpp (contents, props changed)
   trunk/libs/graph/test/make_connected_test.cpp (contents, props changed)
   trunk/libs/graph/test/make_maximal_planar_test.cpp (contents, props changed)
   trunk/libs/graph/test/parallel_edges_loops_test.cpp (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_A_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_with_short_circuit.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_with_short_circuit_large.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_z_w_walkup_patching.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_10.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_11.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_lopsided_case_D.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/nonplanar_twisted_short_circuit_edge.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_4_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_1_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_line_2_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_biconnected_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_biconnected_2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p9.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p0.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p1.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p2.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p3.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p4.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p5.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p6.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p7.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p8.dimacs (contents, props changed)
   trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p9.dimacs (contents, props changed)
Text files modified:
   trunk/libs/graph/doc/bibliography.html | 22 ++++++++++++++++++++++
   trunk/libs/graph/doc/history.html | 2 ++
   trunk/libs/graph/doc/table_of_contents.html | 23 +++++++++++++++++++++++
   trunk/libs/graph/test/Jamfile.v2 | 20 ++++++++++++++++++++
   4 files changed, 67 insertions(+), 0 deletions(-)

Added: trunk/boost/graph/boyer_myrvold_planar_test.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/boyer_myrvold_planar_test.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,317 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#ifndef __BOYER_MYRVOLD_PLANAR_TEST_HPP__
+#define __BOYER_MYRVOLD_PLANAR_TEST_HPP__
+
+#include <boost/graph/planar_detail/boyer_myrvold_impl.hpp>
+#include <boost/parameter.hpp>
+#include <boost/type_traits.hpp>
+#include <boost/mpl/bool.hpp>
+
+
+namespace boost
+{
+
+ struct no_kuratowski_subgraph_isolation {};
+ struct no_planar_embedding {};
+
+ namespace boyer_myrvold_params
+ {
+
+ BOOST_PARAMETER_KEYWORD(tag, graph);
+ BOOST_PARAMETER_KEYWORD(tag, embedding);
+ BOOST_PARAMETER_KEYWORD(tag, kuratowski_subgraph);
+ BOOST_PARAMETER_KEYWORD(tag, vertex_index_map);
+ BOOST_PARAMETER_KEYWORD(tag, edge_index_map);
+
+ typedef parameter::parameters< parameter::required<tag::graph>,
+ tag::embedding,
+ tag::kuratowski_subgraph,
+ tag::vertex_index_map,
+ tag::edge_index_map
+ > boyer_myrvold_params_t;
+
+ namespace core
+ {
+ template <typename ArgumentPack>
+ bool boyer_myrvold_planarity_test(ArgumentPack const& args)
+ {
+
+ typedef typename parameter::binding
+ < ArgumentPack,
+ tag::kuratowski_subgraph,
+ const no_kuratowski_subgraph_isolation&
+ >::type
+ kuratowski_arg_t;
+
+ typedef typename parameter::binding
+ < ArgumentPack,
+ tag::embedding,
+ const no_planar_embedding&
+ >::type
+ embedding_arg_t;
+
+ return dispatched_boyer_myrvold
+ (args,
+ boost::is_same
+ <embedding_arg_t, const no_planar_embedding&>(),
+ boost::is_same
+ <kuratowski_arg_t, const no_kuratowski_subgraph_isolation&>()
+ );
+ }
+
+
+
+ template <typename ArgumentPack>
+ bool dispatched_boyer_myrvold(ArgumentPack const& args,
+ mpl::true_,
+ mpl::true_
+ )
+ {
+ //Dispatch for no planar embedding, no kuratowski subgraph isolation
+
+ typedef typename remove_const
+ <
+ typename remove_reference
+ < typename parameter::binding
+ < ArgumentPack, tag::graph>::type
+ >::type
+ >::type graph_t;
+
+ typedef typename parameter::binding
+ < ArgumentPack,
+ tag::vertex_index_map,
+ typename property_map
+ < typename remove_reference<graph_t>::type,
+ vertex_index_t>::const_type
+ >::type vertex_index_map_t;
+
+ boyer_myrvold_impl
+ <graph_t,
+ vertex_index_map_t,
+ graph::detail::no_old_handles,
+ graph::detail::no_embedding
+ >
+ planarity_tester(args[graph],
+ args[vertex_index_map |
+ get(vertex_index, args[graph])
+ ]
+ );
+
+ return planarity_tester.is_planar() ? true : false;
+ }
+
+
+
+ template <typename ArgumentPack>
+ bool dispatched_boyer_myrvold(ArgumentPack const& args,
+ mpl::true_,
+ mpl::false_
+ )
+ {
+ //Dispatch for no planar embedding, kuratowski subgraph isolation
+ typedef typename remove_const
+ <
+ typename remove_reference
+ < typename parameter::binding
+ < ArgumentPack, tag::graph>::type
+ >::type
+ >::type graph_t;
+
+ typedef typename parameter::binding
+ < ArgumentPack,
+ tag::vertex_index_map,
+ typename property_map<graph_t, vertex_index_t>::type
+ >::type vertex_index_map_t;
+
+ boyer_myrvold_impl
+ <graph_t,
+ vertex_index_map_t,
+ graph::detail::store_old_handles,
+ graph::detail::no_embedding
+ >
+ planarity_tester(args[graph],
+ args[vertex_index_map |
+ get(vertex_index, args[graph])
+ ]
+ );
+
+ if (planarity_tester.is_planar())
+ return true;
+ else
+ {
+ planarity_tester.extract_kuratowski_subgraph
+ (args[kuratowski_subgraph],
+ args[edge_index_map|get(edge_index, args[graph])]
+ );
+ return false;
+ }
+ }
+
+
+
+
+ template <typename ArgumentPack>
+ bool dispatched_boyer_myrvold(ArgumentPack const& args,
+ mpl::false_,
+ mpl::true_
+ )
+ {
+ //Dispatch for planar embedding, no kuratowski subgraph isolation
+ typedef typename remove_const
+ <
+ typename remove_reference
+ < typename parameter::binding
+ < ArgumentPack, tag::graph>::type
+ >::type
+ >::type graph_t;
+
+ typedef typename parameter::binding
+ < ArgumentPack,
+ tag::vertex_index_map,
+ typename property_map<graph_t, vertex_index_t>::type
+ >::type vertex_index_map_t;
+
+ boyer_myrvold_impl
+ <graph_t,
+ vertex_index_map_t,
+ graph::detail::no_old_handles,
+#ifdef BOOST_GRAPH_PREFER_STD_LIB
+ graph::detail::std_list
+#else
+ graph::detail::recursive_lazy_list
+#endif
+ >
+ planarity_tester(args[graph],
+ args[vertex_index_map |
+ get(vertex_index, args[graph])
+ ]
+ );
+
+ if (planarity_tester.is_planar())
+ {
+ planarity_tester.make_edge_permutation(args[embedding]);
+ return true;
+ }
+ else
+ return false;
+ }
+
+
+
+ template <typename ArgumentPack>
+ bool dispatched_boyer_myrvold(ArgumentPack const& args,
+ mpl::false_,
+ mpl::false_
+ )
+ {
+ //Dispatch for planar embedding, kuratowski subgraph isolation
+ typedef typename remove_const
+ <
+ typename remove_reference
+ < typename parameter::binding
+ < ArgumentPack, tag::graph>::type
+ >::type
+ >::type graph_t;
+
+ typedef typename parameter::binding
+ < ArgumentPack,
+ tag::vertex_index_map,
+ typename property_map<graph_t, vertex_index_t>::type
+ >::type vertex_index_map_t;
+
+ boyer_myrvold_impl
+ <graph_t,
+ vertex_index_map_t,
+ graph::detail::store_old_handles,
+#ifdef BOOST_BGL_PREFER_STD_LIB
+ graph::detail::std_list
+#else
+ graph::detail::recursive_lazy_list
+#endif
+ >
+ planarity_tester(args[graph],
+ args[vertex_index_map |
+ get(vertex_index, args[graph])
+ ]
+ );
+
+ if (planarity_tester.is_planar())
+ {
+ planarity_tester.make_edge_permutation(args[embedding]);
+ return true;
+ }
+ else
+ {
+ planarity_tester.extract_kuratowski_subgraph
+ (args[kuratowski_subgraph],
+ args[edge_index_map | get(edge_index, args[graph])]
+ );
+ return false;
+ }
+ }
+ } //namespace core
+
+ } //namespace boyer_myrvold_params
+
+
+ template <typename A0>
+ bool boyer_myrvold_planarity_test(A0 const& arg0)
+ {
+ return boyer_myrvold_params::core::boyer_myrvold_planarity_test
+ (boyer_myrvold_params::boyer_myrvold_params_t()(arg0));
+ }
+
+ template <typename A0, typename A1>
+ // bool boyer_myrvold_planarity_test(A0 const& arg0, A1 const& arg1)
+ bool boyer_myrvold_planarity_test(A0 const& arg0, A1 const& arg1)
+ {
+ return boyer_myrvold_params::core::boyer_myrvold_planarity_test
+ (boyer_myrvold_params::boyer_myrvold_params_t()(arg0,arg1));
+ }
+
+ template <typename A0, typename A1, typename A2>
+ bool boyer_myrvold_planarity_test(A0 const& arg0,
+ A1 const& arg1,
+ A2 const& arg2
+ )
+ {
+ return boyer_myrvold_params::core::boyer_myrvold_planarity_test
+ (boyer_myrvold_params::boyer_myrvold_params_t()(arg0,arg1,arg2));
+ }
+
+ template <typename A0, typename A1, typename A2, typename A3>
+ bool boyer_myrvold_planarity_test(A0 const& arg0,
+ A1 const& arg1,
+ A2 const& arg2,
+ A3 const& arg3
+ )
+ {
+ return boyer_myrvold_params::core::boyer_myrvold_planarity_test
+ (boyer_myrvold_params::boyer_myrvold_params_t()(arg0,arg1,arg2,arg3));
+ }
+
+ template <typename A0, typename A1, typename A2, typename A3, typename A4>
+ bool boyer_myrvold_planarity_test(A0 const& arg0,
+ A1 const& arg1,
+ A2 const& arg2,
+ A3 const& arg3,
+ A4 const& arg4
+ )
+ {
+ return boyer_myrvold_params::core::boyer_myrvold_planarity_test
+ (boyer_myrvold_params::boyer_myrvold_params_t()
+ (arg0,arg1,arg2,arg3,arg4)
+ );
+ }
+
+
+}
+
+#endif //__BOYER_MYRVOLD_PLANAR_TEST_HPP__

Added: trunk/boost/graph/chrobak_payne_drawing.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/chrobak_payne_drawing.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,270 @@
+//=======================================================================
+// Copyright (c) Aaron Windsor 2007
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#ifndef __CHROBAK_PAYNE_DRAWING_HPP__
+#define __CHROBAK_PAYNE_DRAWING_HPP__
+
+#include <vector>
+#include <list>
+#include <boost/config.hpp>
+#include <boost/utility.hpp> //for next and prior
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+
+
+namespace boost
+{
+
+ namespace graph { namespace detail
+ {
+
+ template<typename Graph,
+ typename VertexToVertexMap,
+ typename VertexTo1DCoordMap>
+ void accumulate_offsets(typename graph_traits<Graph>::vertex_descriptor v,
+ std::size_t offset,
+ const Graph& g,
+ VertexTo1DCoordMap x,
+ VertexTo1DCoordMap delta_x,
+ VertexToVertexMap left,
+ VertexToVertexMap right)
+ {
+ if (v != graph_traits<Graph>::null_vertex())
+ {
+ x[v] += delta_x[v] + offset;
+ accumulate_offsets(left[v], x[v], g, x, delta_x, left, right);
+ accumulate_offsets(right[v], x[v], g, x, delta_x, left, right);
+ }
+ }
+
+ } /*namespace detail*/ } /*namespace graph*/
+
+
+
+
+
+ template<typename Graph,
+ typename PlanarEmbedding,
+ typename ForwardIterator,
+ typename GridPositionMap,
+ typename VertexIndexMap>
+ void chrobak_payne_straight_line_drawing(const Graph& g,
+ PlanarEmbedding embedding,
+ ForwardIterator ordering_begin,
+ ForwardIterator ordering_end,
+ GridPositionMap drawing,
+ VertexIndexMap vm
+ )
+ {
+
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename PlanarEmbedding::value_type::const_iterator
+ edge_permutation_iterator_t;
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+ typedef std::vector<vertex_t> vertex_vector_t;
+ typedef std::vector<v_size_t> vsize_vector_t;
+ typedef std::vector<bool> bool_vector_t;
+ typedef boost::iterator_property_map
+ <typename vertex_vector_t::iterator, VertexIndexMap>
+ vertex_to_vertex_map_t;
+ typedef boost::iterator_property_map
+ <typename vsize_vector_t::iterator, VertexIndexMap>
+ vertex_to_vsize_map_t;
+ typedef boost::iterator_property_map
+ <typename bool_vector_t::iterator, VertexIndexMap>
+ vertex_to_bool_map_t;
+
+ vertex_vector_t left_vector(num_vertices(g),
+ graph_traits<Graph>::null_vertex()
+ );
+ vertex_vector_t right_vector(num_vertices(g),
+ graph_traits<Graph>::null_vertex()
+ );
+ vsize_vector_t seen_as_right_vector(num_vertices(g), 0);
+ vsize_vector_t seen_vector(num_vertices(g), 0);
+ vsize_vector_t delta_x_vector(num_vertices(g),0);
+ vsize_vector_t y_vector(num_vertices(g));
+ vsize_vector_t x_vector(num_vertices(g),0);
+ bool_vector_t installed_vector(num_vertices(g),false);
+
+ vertex_to_vertex_map_t left(left_vector.begin(), vm);
+ vertex_to_vertex_map_t right(right_vector.begin(), vm);
+ vertex_to_vsize_map_t seen_as_right(seen_as_right_vector.begin(), vm);
+ vertex_to_vsize_map_t seen(seen_vector.begin(), vm);
+ vertex_to_vsize_map_t delta_x(delta_x_vector.begin(), vm);
+ vertex_to_vsize_map_t y(y_vector.begin(), vm);
+ vertex_to_vsize_map_t x(x_vector.begin(), vm);
+ vertex_to_bool_map_t installed(installed_vector.begin(), vm);
+
+ v_size_t timestamp = 1;
+ vertex_vector_t installed_neighbors;
+
+ ForwardIterator itr = ordering_begin;
+ vertex_t v1 = *itr; ++itr;
+ vertex_t v2 = *itr; ++itr;
+ vertex_t v3 = *itr; ++itr;
+
+ delta_x[v2] = 1;
+ delta_x[v3] = 1;
+
+ y[v1] = 0;
+ y[v2] = 0;
+ y[v3] = 1;
+
+ right[v1] = v3;
+ right[v3] = v2;
+
+ installed[v1] = installed[v2] = installed[v3] = true;
+
+ for(ForwardIterator itr_end = ordering_end; itr != itr_end; ++itr)
+ {
+ vertex_t v = *itr;
+
+ // First, find the leftmost and rightmost neighbor of v on the outer
+ // cycle of the embedding.
+ // Note: since we're moving clockwise through the edges adjacent to v,
+ // we're actually moving from right to left among v's neighbors on the
+ // outer face (since v will be installed above them all) looking for
+ // the leftmost and rightmost installed neigbhors
+
+ vertex_t leftmost = graph_traits<Graph>::null_vertex();
+ vertex_t rightmost = graph_traits<Graph>::null_vertex();
+
+ installed_neighbors.clear();
+
+ vertex_t prev_vertex = graph_traits<Graph>::null_vertex();
+ edge_permutation_iterator_t pi, pi_end;
+ pi_end = embedding[v].end();
+ for(pi = embedding[v].begin(); pi != pi_end; ++pi)
+ {
+ vertex_t curr_vertex = source(*pi,g) == v ?
+ target(*pi,g) : source(*pi,g);
+
+ // Skip any self-loops or parallel edges
+ if (curr_vertex == v || curr_vertex == prev_vertex)
+ continue;
+
+ if (installed[curr_vertex])
+ {
+ seen[curr_vertex] = timestamp;
+
+ if (right[curr_vertex] != graph_traits<Graph>::null_vertex())
+ {
+ seen_as_right[right[curr_vertex]] = timestamp;
+ }
+ installed_neighbors.push_back(curr_vertex);
+ }
+
+ prev_vertex = curr_vertex;
+ }
+
+ typename vertex_vector_t::iterator vi, vi_end;
+ vi_end = installed_neighbors.end();
+ for(vi = installed_neighbors.begin(); vi != vi_end; ++vi)
+ {
+ if (right[*vi] == graph_traits<Graph>::null_vertex() ||
+ seen[right[*vi]] != timestamp
+ )
+ rightmost = *vi;
+ if (seen_as_right[*vi] != timestamp)
+ leftmost = *vi;
+ }
+
+ ++timestamp;
+
+ //stretch gaps
+ ++delta_x[right[leftmost]];
+ ++delta_x[rightmost];
+
+ //adjust offsets
+ std::size_t delta_p_q = 0;
+ vertex_t stopping_vertex = right[rightmost];
+ for(vertex_t temp = right[leftmost]; temp != stopping_vertex;
+ temp = right[temp]
+ )
+ {
+ delta_p_q += delta_x[temp];
+ }
+
+ delta_x[v] = (y[rightmost] - y[leftmost] + delta_p_q)/2;
+ y[v] = (y[rightmost] + y[leftmost] + delta_p_q)/2;
+ delta_x[rightmost] = delta_p_q - delta_x[v];
+
+ bool leftmost_and_rightmost_adjacent = right[leftmost] == rightmost;
+ if (!leftmost_and_rightmost_adjacent)
+ delta_x[right[leftmost]] -= delta_x[v];
+
+ //install v
+ if (!leftmost_and_rightmost_adjacent)
+ {
+ left[v] = right[leftmost];
+ vertex_t next_to_rightmost;
+ for(vertex_t temp = leftmost; temp != rightmost;
+ temp = right[temp]
+ )
+ {
+ next_to_rightmost = temp;
+ }
+
+ right[next_to_rightmost] = graph_traits<Graph>::null_vertex();
+ }
+ else
+ {
+ left[v] = graph_traits<Graph>::null_vertex();
+ }
+
+ right[leftmost] = v;
+ right[v] = rightmost;
+ installed[v] = true;
+
+ }
+
+ graph::detail::accumulate_offsets
+ (*ordering_begin,0,g,x,delta_x,left,right);
+
+ vertex_iterator_t vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ vertex_t v(*vi);
+ drawing[v].x = x[v];
+ drawing[v].y = y[v];
+ }
+
+ }
+
+
+
+
+ template<typename Graph,
+ typename PlanarEmbedding,
+ typename ForwardIterator,
+ typename GridPositionMap>
+ inline void chrobak_payne_straight_line_drawing(const Graph& g,
+ PlanarEmbedding embedding,
+ ForwardIterator ord_begin,
+ ForwardIterator ord_end,
+ GridPositionMap drawing
+ )
+ {
+ chrobak_payne_straight_line_drawing(g,
+ embedding,
+ ord_begin,
+ ord_end,
+ drawing,
+ get(vertex_index,g)
+ );
+ }
+
+
+
+
+} // namespace boost
+
+#endif //__CHROBAK_PAYNE_DRAWING_HPP__

Added: trunk/boost/graph/is_kuratowski_subgraph.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/is_kuratowski_subgraph.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,332 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __IS_KURATOWSKI_SUBGRAPH_HPP__
+#define __IS_KURATOWSKI_SUBGRAPH_HPP__
+
+#include <boost/config.hpp>
+#include <boost/utility.hpp> //for next/prior
+#include <boost/tuple/tuple.hpp> //for tie
+#include <boost/property_map.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/isomorphism.hpp>
+#include <boost/graph/adjacency_list.hpp>
+
+#include <algorithm>
+#include <vector>
+#include <set>
+
+
+
+namespace boost
+{
+
+ namespace detail
+ {
+
+ template <typename Graph>
+ Graph make_K_5()
+ {
+ typename graph_traits<Graph>::vertex_iterator vi, vi_end, inner_vi;
+ Graph K_5(5);
+ for(tie(vi,vi_end) = vertices(K_5); vi != vi_end; ++vi)
+ for(inner_vi = next(vi); inner_vi != vi_end; ++inner_vi)
+ add_edge(*vi, *inner_vi, K_5);
+ return K_5;
+ }
+
+
+ template <typename Graph>
+ Graph make_K_3_3()
+ {
+ typename graph_traits<Graph>::vertex_iterator
+ vi, vi_end, bipartition_start, inner_vi;
+ Graph K_3_3(6);
+ bipartition_start = next(next(next(vertices(K_3_3).first)));
+ for(tie(vi, vi_end) = vertices(K_3_3); vi != bipartition_start; ++vi)
+ for(inner_vi= bipartition_start; inner_vi != vi_end; ++inner_vi)
+ add_edge(*vi, *inner_vi, K_3_3);
+ return K_3_3;
+ }
+
+
+ template <typename AdjacencyList, typename Vertex>
+ void contract_edge(AdjacencyList& neighbors, Vertex u, Vertex v)
+ {
+ // Remove u from v's neighbor list
+ neighbors[v].erase(std::remove(neighbors[v].begin(),
+ neighbors[v].end(), u
+ ),
+ neighbors[v].end()
+ );
+
+ // Replace any references to u with references to v
+ typedef typename AdjacencyList::value_type::iterator
+ adjacency_iterator_t;
+
+ adjacency_iterator_t u_neighbor_end = neighbors[u].end();
+ for(adjacency_iterator_t u_neighbor_itr = neighbors[u].begin();
+ u_neighbor_itr != u_neighbor_end; ++u_neighbor_itr
+ )
+ {
+ Vertex u_neighbor(*u_neighbor_itr);
+ std::replace(neighbors[u_neighbor].begin(),
+ neighbors[u_neighbor].end(), u, v
+ );
+ }
+
+ // Remove v from u's neighbor list
+ neighbors[u].erase(std::remove(neighbors[u].begin(),
+ neighbors[u].end(), v
+ ),
+ neighbors[u].end()
+ );
+
+ // Add everything in u's neighbor list to v's neighbor list
+ std::copy(neighbors[u].begin(),
+ neighbors[u].end(),
+ std::back_inserter(neighbors[v])
+ );
+
+ // Clear u's neighbor list
+ neighbors[u].clear();
+
+ }
+
+ } // namespace detail
+
+
+
+
+ template <typename Graph, typename ForwardIterator, typename VertexIndexMap>
+ bool is_kuratowski_subgraph(const Graph& g,
+ ForwardIterator begin,
+ ForwardIterator end,
+ VertexIndexMap vm
+ )
+ {
+
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::edges_size_type e_size_t;
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+ typedef typename std::vector<vertex_t> v_list_t;
+ typedef typename v_list_t::iterator v_list_iterator_t;
+ typedef iterator_property_map
+ <typename std::vector<v_list_t>::iterator, VertexIndexMap>
+ vertex_to_v_list_map_t;
+
+ typedef adjacency_list<vecS, vecS, undirectedS> small_graph_t;
+
+ enum target_graph_t { k_3_3, k_5};
+
+ target_graph_t target_graph = k_3_3; //unless we decide otherwise later
+
+ static small_graph_t K_5(detail::make_K_5<small_graph_t>());
+
+ static small_graph_t K_3_3(detail::make_K_3_3<small_graph_t>());
+
+ v_size_t n_vertices(num_vertices(g));
+ v_size_t max_num_edges(3*n_vertices - 5);
+
+ std::vector<v_list_t> neighbors_vector(n_vertices);
+ vertex_to_v_list_map_t neighbors(neighbors_vector.begin(), vm);
+
+ e_size_t count = 0;
+ for(ForwardIterator itr = begin; itr != end; ++itr)
+ {
+
+ if (count++ > max_num_edges)
+ return false;
+
+ edge_t e(*itr);
+ vertex_t u(source(e,g));
+ vertex_t v(target(e,g));
+
+ neighbors[u].push_back(v);
+ neighbors[v].push_back(u);
+
+ }
+
+
+ for(v_size_t max_size = 2; max_size < 5; ++max_size)
+ {
+
+ vertex_iterator_t vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ vertex_t v(*vi);
+
+ //a hack to make sure we don't contract the middle edge of a path
+ //of four degree-3 vertices
+ if (max_size == 4 && neighbors[v].size() == 3)
+ {
+ if (neighbors[neighbors[v][0]].size() +
+ neighbors[neighbors[v][1]].size() +
+ neighbors[neighbors[v][2]].size()
+ < 11 // so, it has two degree-3 neighbors
+ )
+ continue;
+ }
+
+ while (neighbors[v].size() > 0 && neighbors[v].size() < max_size)
+ {
+ // Find one of v's neighbors u such that that v and u
+ // have no neighbors in common. We'll look for such a
+ // neighbor with a naive cubic-time algorithm since the
+ // max size of any of the neighbor sets we'll consider
+ // merging is 3
+
+ bool neighbor_sets_intersect = false;
+
+ vertex_t min_u = graph_traits<Graph>::null_vertex();
+ vertex_t u;
+ v_list_iterator_t v_neighbor_end = neighbors[v].end();
+ for(v_list_iterator_t v_neighbor_itr = neighbors[v].begin();
+ v_neighbor_itr != v_neighbor_end;
+ ++v_neighbor_itr
+ )
+ {
+ neighbor_sets_intersect = false;
+ u = *v_neighbor_itr;
+ v_list_iterator_t u_neighbor_end = neighbors[u].end();
+ for(v_list_iterator_t u_neighbor_itr =
+ neighbors[u].begin();
+ u_neighbor_itr != u_neighbor_end &&
+ !neighbor_sets_intersect;
+ ++u_neighbor_itr
+ )
+ {
+ for(v_list_iterator_t inner_v_neighbor_itr =
+ neighbors[v].begin();
+ inner_v_neighbor_itr != v_neighbor_end;
+ ++inner_v_neighbor_itr
+ )
+ {
+ if (*u_neighbor_itr == *inner_v_neighbor_itr)
+ {
+ neighbor_sets_intersect = true;
+ break;
+ }
+ }
+
+ }
+ if (!neighbor_sets_intersect &&
+ (min_u == graph_traits<Graph>::null_vertex() ||
+ neighbors[u].size() < neighbors[min_u].size())
+ )
+ {
+ min_u = u;
+ }
+
+ }
+
+ if (min_u == graph_traits<Graph>::null_vertex())
+ // Exited the loop without finding an appropriate neighbor of
+ // v, so v must be a lost cause. Move on to other vertices.
+ break;
+ else
+ u = min_u;
+
+ detail::contract_edge(neighbors, u, v);
+
+ }//end iteration over v's neighbors
+
+ }//end iteration through vertices v
+
+ if (max_size == 3)
+ {
+ // check to see whether we should go on to find a K_5
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ if (neighbors[*vi].size() == 4)
+ {
+ target_graph = k_5;
+ break;
+ }
+
+ if (target_graph == k_3_3)
+ break;
+ }
+
+ }//end iteration through max degree 2,3, and 4
+
+
+ //Now, there should only be 5 or 6 vertices with any neighbors. Find them.
+
+ v_list_t main_vertices;
+ vertex_iterator_t vi, vi_end;
+
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ if (!neighbors[*vi].empty())
+ main_vertices.push_back(*vi);
+ }
+
+ // create a graph isomorphic to the contracted graph to test
+ // against K_5 and K_3_3
+ small_graph_t contracted_graph(main_vertices.size());
+ std::map<vertex_t,typename graph_traits<small_graph_t>::vertex_descriptor>
+ contracted_vertex_map;
+
+ typename v_list_t::iterator itr, itr_end;
+ itr_end = main_vertices.end();
+ typename graph_traits<small_graph_t>::vertex_iterator
+ si = vertices(contracted_graph).first;
+
+ for(itr = main_vertices.begin(); itr != itr_end; ++itr, ++si)
+ {
+ contracted_vertex_map[*itr] = *si;
+ }
+
+ typename v_list_t::iterator jtr, jtr_end;
+ for(itr = main_vertices.begin(); itr != itr_end; ++itr)
+ {
+ jtr_end = neighbors[*itr].end();
+ for(jtr = neighbors[*itr].begin(); jtr != jtr_end; ++jtr)
+ {
+ if (get(vm,*itr) < get(vm,*jtr))
+ {
+ add_edge(contracted_vertex_map[*itr],
+ contracted_vertex_map[*jtr],
+ contracted_graph
+ );
+ }
+ }
+ }
+
+ if (target_graph == k_5)
+ {
+ return isomorphism(K_5,contracted_graph);
+ }
+ else //target_graph == k_3_3
+ {
+ return isomorphism(K_3_3,contracted_graph);
+ }
+
+
+ }
+
+
+
+
+
+ template <typename Graph, typename ForwardIterator>
+ bool is_kuratowski_subgraph(const Graph& g,
+ ForwardIterator begin,
+ ForwardIterator end
+ )
+ {
+ return is_kuratowski_subgraph(g, begin, end, get(vertex_index,g));
+ }
+
+
+
+
+}
+
+#endif //__IS_KURATOWSKI_SUBGRAPH_HPP__

Added: trunk/boost/graph/is_straight_line_drawing.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/is_straight_line_drawing.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,232 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __IS_STRAIGHT_LINE_DRAWING_HPP__
+#define __IS_STRAIGHT_LINE_DRAWING_HPP__
+
+#include <boost/config.hpp>
+#include <boost/utility.hpp> //for next and prior
+#include <boost/tuple/tuple.hpp>
+#include <boost/tuple/tuple_comparison.hpp>
+#include <boost/property_map.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/planar_detail/bucket_sort.hpp>
+
+#include <algorithm>
+#include <vector>
+#include <set>
+
+
+
+namespace boost
+{
+
+ // Return true exactly when the line segments s1 = ((x1,y1), (x2,y2)) and
+ // s2 = ((a1,b1), (a2,b2)) intersect in a point other than the endpoints of
+ // the line segments. The one exception to this rule is when s1 = s2, in
+ // which case false is returned - this is to accomodate multiple edges
+ // between the same pair of vertices, which shouldn't invalidate the straight
+ // line embedding. A tolerance variable epsilon can also be used, which
+ // defines how far away from the endpoints of s1 and s2 we want to consider
+ // an intersection.
+
+ bool intersects(double x1, double y1,
+ double x2, double y2,
+ double a1, double b1,
+ double a2, double b2,
+ double epsilon = 0.000001
+ )
+ {
+
+ if (x1 - x2 == 0)
+ {
+ std::swap(x1,a1);
+ std::swap(y1,b1);
+ std::swap(x2,a2);
+ std::swap(y2,b2);
+ }
+
+ if (x1 - x2 == 0)
+ {
+ BOOST_USING_STD_MAX();
+ BOOST_USING_STD_MIN();
+
+ //two vertical line segments
+ double min_y = min BOOST_PREVENT_MACRO_SUBSTITUTION(y1,y2);
+ double max_y = max BOOST_PREVENT_MACRO_SUBSTITUTION(y1,y2);
+ double min_b = min BOOST_PREVENT_MACRO_SUBSTITUTION(b1,b2);
+ double max_b = max BOOST_PREVENT_MACRO_SUBSTITUTION(b1,b2);
+ if ((max_y > max_b && max_b > min_y) ||
+ (max_b > max_y && max_y > min_b)
+ )
+ return true;
+ else
+ return false;
+ }
+
+ double x_diff = x1 - x2;
+ double y_diff = y1 - y2;
+ double a_diff = a2 - a1;
+ double b_diff = b2 - b1;
+
+ double beta_denominator = b_diff - (y_diff/((double)x_diff)) * a_diff;
+
+ if (beta_denominator == 0)
+ {
+ //parallel lines
+ return false;
+ }
+
+ double beta = (b2 - y2 - (y_diff/((double)x_diff)) * (a2 - x2)) /
+ beta_denominator;
+ double alpha = (a2 - x2 - beta*(a_diff))/x_diff;
+
+ double upper_bound = 1 - epsilon;
+ double lower_bound = 0 + epsilon;
+
+ return (beta < upper_bound && beta > lower_bound &&
+ alpha < upper_bound && alpha > lower_bound);
+
+ }
+
+
+ template <typename Graph,
+ typename GridPositionMap,
+ typename VertexIndexMap
+ >
+ bool is_straight_line_drawing(const Graph& g,
+ GridPositionMap drawing,
+ VertexIndexMap vm
+ )
+ {
+
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::edge_iterator edge_iterator_t;
+ typedef typename graph_traits<Graph>::edges_size_type e_size_t;
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+
+ typedef std::size_t x_coord_t;
+ typedef std::size_t y_coord_t;
+ typedef boost::tuple<edge_t, x_coord_t, y_coord_t> edge_event_t;
+ typedef typename std::vector< edge_event_t > edge_event_queue_t;
+
+ typedef tuple<y_coord_t, y_coord_t, x_coord_t, x_coord_t> active_map_key_t;
+ typedef edge_t active_map_value_t;
+ typedef std::map< active_map_key_t, active_map_value_t > active_map_t;
+ typedef typename active_map_t::iterator active_map_iterator_t;
+
+
+ edge_event_queue_t edge_event_queue;
+ active_map_t active_edges;
+
+ edge_iterator_t ei, ei_end;
+ for(tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ {
+ edge_t e(*ei);
+ vertex_t s(source(e,g));
+ vertex_t t(target(e,g));
+ edge_event_queue.push_back
+ (make_tuple(e,
+ static_cast<std::size_t>(drawing[s].x),
+ static_cast<std::size_t>(drawing[s].y)
+ )
+ );
+ edge_event_queue.push_back
+ (make_tuple(e,
+ static_cast<std::size_t>(drawing[t].x),
+ static_cast<std::size_t>(drawing[t].y)
+ )
+ );
+ }
+
+ // Order by edge_event_queue by first, then second coordinate
+ // (bucket_sort is a stable sort.)
+ bucket_sort(edge_event_queue.begin(), edge_event_queue.end(),
+ property_map_tuple_adaptor<edge_event_t, 2>()
+ );
+
+ bucket_sort(edge_event_queue.begin(), edge_event_queue.end(),
+ property_map_tuple_adaptor<edge_event_t, 1>()
+ );
+
+ typedef typename edge_event_queue_t::iterator event_queue_iterator_t;
+ event_queue_iterator_t itr_end = edge_event_queue.end();
+ for(event_queue_iterator_t itr = edge_event_queue.begin();
+ itr != itr_end; ++itr
+ )
+ {
+ edge_t e(get<0>(*itr));
+ vertex_t source_v(source(e,g));
+ vertex_t target_v(target(e,g));
+ if (drawing[source_v].x > drawing[target_v].x)
+ std::swap(source_v, target_v);
+
+ active_map_key_t key(get(drawing, source_v).y,
+ get(drawing, target_v).y,
+ get(drawing, source_v).x,
+ get(drawing, target_v).x
+ );
+
+ active_map_iterator_t a_itr = active_edges.find(key);
+ if (a_itr == active_edges.end())
+ {
+ active_edges[key] = e;
+ }
+ else
+ {
+ active_map_iterator_t before, after;
+ if (a_itr == active_edges.begin())
+ before = active_edges.end();
+ else
+ before = prior(a_itr);
+ after = next(a_itr);
+
+ if (after != active_edges.end() || before != active_edges.end())
+ {
+
+ edge_t f = after != active_edges.end() ?
+ after->second : before->second;
+
+ vertex_t e_source(source(e,g));
+ vertex_t e_target(target(e,g));
+ vertex_t f_source(source(f,g));
+ vertex_t f_target(target(f,g));
+
+ if (intersects(drawing[e_source].x,
+ drawing[e_source].y,
+ drawing[e_target].x,
+ drawing[e_target].y,
+ drawing[f_source].x,
+ drawing[f_source].y,
+ drawing[f_target].x,
+ drawing[f_target].y
+ )
+ )
+ return false;
+ }
+
+ active_edges.erase(a_itr);
+
+ }
+ }
+
+ return true;
+
+ }
+
+
+ template <typename Graph, typename GridPositionMap>
+ bool is_straight_line_drawing(const Graph& g, GridPositionMap drawing)
+ {
+ return is_straight_line_drawing(g, drawing, get(vertex_index,g));
+ }
+
+}
+
+#endif // __IS_STRAIGHT_LINE_DRAWING_HPP__

Added: trunk/boost/graph/make_biconnected_planar.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/make_biconnected_planar.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,120 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __MAKE_BICONNECTED_PLANAR_HPP__
+#define __MAKE_BICONNECTED_PLANAR_HPP__
+
+#include <boost/config.hpp>
+#include <boost/tuple/tuple.hpp> //for tie
+#include <boost/graph/biconnected_components.hpp>
+#include <boost/property_map.hpp>
+#include <vector>
+#include <iterator>
+#include <algorithm>
+
+#include <boost/graph/planar_detail/add_edge_visitors.hpp>
+
+
+namespace boost
+{
+
+
+
+ template <typename Graph,
+ typename PlanarEmbedding,
+ typename EdgeIndexMap,
+ typename AddEdgeVisitor
+ >
+ void make_biconnected_planar(Graph& g,
+ PlanarEmbedding embedding,
+ EdgeIndexMap em,
+ AddEdgeVisitor& vis
+ )
+ {
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::edges_size_type edge_size_t;
+ typedef typename
+ property_traits<PlanarEmbedding>::value_type embedding_value_t;
+ typedef typename embedding_value_t::const_iterator embedding_iterator_t;
+ typedef iterator_property_map
+ <std::vector<std::size_t>::iterator, EdgeIndexMap> component_map_t;
+
+ std::vector<vertex_t> articulation_points;
+ std::vector<edge_size_t> component_vector(num_edges(g));
+ component_map_t component_map(component_vector.begin(), em);
+
+ biconnected_components(g, component_map,
+ std::back_inserter(articulation_points));
+
+ typename std::vector<vertex_t>::iterator ap, ap_end;
+ ap_end = articulation_points.end();
+ for(ap = articulation_points.begin(); ap != ap_end; ++ap)
+ {
+ vertex_t v(*ap);
+ embedding_iterator_t pi = embedding[v].begin();
+ embedding_iterator_t pi_end = embedding[v].end();
+ edge_size_t previous_component;
+ vertex_t previous_vertex = graph_traits<Graph>::null_vertex();
+
+ for(; pi != pi_end; ++pi)
+ {
+ edge_t e(*pi);
+ vertex_t e_source(source(e,g));
+ vertex_t e_target(target(e,g));
+
+ //Skip self-loops and parallel edges
+ if (e_source == e_target || previous_vertex == e_target)
+ continue;
+
+ vertex_t current_vertex = e_source == v ? e_target : e_source;
+ edge_size_t current_component = component_map[e];
+ if (previous_vertex != graph_traits<Graph>::null_vertex() &&
+ current_component != previous_component)
+ {
+ vis.visit_vertex_pair(current_vertex, previous_vertex, g);
+ }
+ previous_vertex = current_vertex;
+ previous_component = current_component;
+ }
+ }
+
+ }
+
+
+
+
+ template <typename Graph,
+ typename PlanarEmbedding,
+ typename EdgeIndexMap
+ >
+ inline void make_biconnected_planar(Graph& g,
+ PlanarEmbedding embedding,
+ EdgeIndexMap em
+ )
+ {
+ default_add_edge_visitor vis;
+ make_biconnected_planar(g, embedding, em, vis);
+ }
+
+
+
+
+ template <typename Graph,
+ typename PlanarEmbedding
+ >
+ inline void make_biconnected_planar(Graph& g, PlanarEmbedding embedding)
+ {
+ make_biconnected_planar(g, embedding, get(edge_index,g));
+ }
+
+
+} // namespace boost
+
+
+
+#endif //__MAKE_BICONNECTED_PLANAR_HPP__

Added: trunk/boost/graph/make_connected.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/make_connected.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,99 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __MAKE_CONNECTED_HPP__
+#define __MAKE_CONNECTED_HPP__
+
+#include <boost/config.hpp>
+#include <boost/utility.hpp> //for next
+#include <boost/tuple/tuple.hpp> //for tie
+#include <boost/graph/connected_components.hpp>
+#include <boost/property_map.hpp>
+#include <vector>
+
+#include <boost/graph/planar_detail/add_edge_visitors.hpp>
+#include <boost/graph/planar_detail/bucket_sort.hpp>
+
+
+namespace boost
+{
+
+
+ template <typename Graph,
+ typename VertexIndexMap,
+ typename AddEdgeVisitor
+ >
+ void make_connected(Graph& g, VertexIndexMap vm, AddEdgeVisitor& vis)
+ {
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+ typedef iterator_property_map< typename std::vector<v_size_t>::iterator,
+ VertexIndexMap
+ > vertex_to_v_size_map_t;
+
+ std::vector<v_size_t> component_vector(num_vertices(g));
+ vertex_to_v_size_map_t component(component_vector.begin(), vm);
+ std::vector<vertex_t> vertices_by_component(num_vertices(g));
+
+ v_size_t num_components = connected_components(g, component);
+
+ if (num_components < 2)
+ return;
+
+ vertex_iterator_t vi, vi_end;
+ tie(vi,vi_end) = vertices(g);
+ std::copy(vi, vi_end, vertices_by_component.begin());
+
+ bucket_sort(vertices_by_component.begin(),
+ vertices_by_component.end(),
+ component,
+ num_components
+ );
+
+ typedef typename std::vector<vertex_t>::iterator vec_of_vertices_itr_t;
+
+ vec_of_vertices_itr_t ci_end = vertices_by_component.end();
+ vec_of_vertices_itr_t ci_prev = vertices_by_component.begin();
+ if (ci_prev == ci_end)
+ return;
+
+ for(vec_of_vertices_itr_t ci = next(ci_prev);
+ ci != ci_end; ci_prev = ci, ++ci
+ )
+ {
+ if (component[*ci_prev] != component[*ci])
+ vis.visit_vertex_pair(*ci_prev, *ci, g);
+ }
+
+ }
+
+
+
+
+ template <typename Graph, typename VertexIndexMap>
+ inline void make_connected(Graph& g, VertexIndexMap vm)
+ {
+ default_add_edge_visitor vis;
+ make_connected(g, vm, vis);
+ }
+
+
+
+
+ template <typename Graph>
+ inline void make_connected(Graph& g)
+ {
+ make_connected(g, get(vertex_index,g));
+ }
+
+
+
+
+} // namespace boost
+
+#endif //__MAKE_CONNECTED_HPP__

Added: trunk/boost/graph/make_maximal_planar.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/make_maximal_planar.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,275 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __MAKE_MAXIMAL_PLANAR_HPP__
+#define __MAKE_MAXIMAL_PLANAR_HPP__
+
+#include <boost/config.hpp>
+#include <boost/tuple/tuple.hpp> //for tie
+#include <boost/graph/biconnected_components.hpp>
+#include <boost/property_map.hpp>
+#include <vector>
+#include <iterator>
+#include <algorithm>
+
+#include <boost/graph/planar_face_traversal.hpp>
+#include <boost/graph/planar_detail/add_edge_visitors.hpp>
+
+
+namespace boost
+{
+
+
+ template <typename Graph, typename VertexIndexMap, typename AddEdgeVisitor>
+ struct triangulation_visitor : public planar_face_traversal_visitor
+ {
+
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+ typedef typename graph_traits<Graph>::degree_size_type degree_size_t;
+ typedef typename graph_traits<Graph>::edge_iterator edge_iterator_t;
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::adjacency_iterator
+ adjacency_iterator_t;
+ typedef typename std::vector<vertex_t> vertex_vector_t;
+ typedef typename std::vector<v_size_t> v_size_vector_t;
+ typedef typename std::vector<degree_size_t> degree_size_vector_t;
+ typedef iterator_property_map
+ < typename v_size_vector_t::iterator, VertexIndexMap >
+ vertex_to_v_size_map_t;
+ typedef iterator_property_map
+ < typename degree_size_vector_t::iterator, VertexIndexMap >
+ vertex_to_degree_size_map_t;
+ typedef typename vertex_vector_t::iterator face_iterator;
+
+
+ triangulation_visitor(Graph& arg_g,
+ VertexIndexMap arg_vm,
+ AddEdgeVisitor arg_add_edge_visitor
+ ) :
+ g(arg_g),
+ vm(arg_vm),
+ add_edge_visitor(arg_add_edge_visitor),
+ timestamp(0),
+ marked_vector(num_vertices(g), timestamp),
+ degree_vector(num_vertices(g), 0),
+ marked(marked_vector.begin(), vm),
+ degree(degree_vector.begin(), vm)
+ {
+ vertex_iterator_t vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ put(degree, *vi, out_degree(*vi, g));
+ }
+
+ template <typename Vertex>
+ void next_vertex(Vertex v)
+ {
+ // Self-loops will appear as consecutive vertices in the list of
+ // vertices on a face. We want to skip these.
+ if (!vertices_on_face.empty() &&
+ (vertices_on_face.back() == v || vertices_on_face.front() == v)
+ )
+ return;
+
+ vertices_on_face.push_back(v);
+ }
+
+ void end_face()
+ {
+ ++timestamp;
+
+ if (vertices_on_face.size() <= 3)
+ {
+ // At most three vertices on this face - don't need to triangulate
+ vertices_on_face.clear();
+ return;
+ }
+
+ // Find vertex on face of minimum degree
+ degree_size_t min_degree = num_vertices(g);
+ typename vertex_vector_t::iterator min_degree_vertex_itr;
+ face_iterator fi_end = vertices_on_face.end();
+ for(face_iterator fi = vertices_on_face.begin(); fi != fi_end; ++fi)
+ {
+ degree_size_t deg = get(degree,*fi);
+ if (deg < min_degree)
+ {
+ min_degree_vertex_itr = fi;
+ min_degree = deg;
+ }
+ }
+
+ // To simplify some of the manipulations, we'll re-arrange
+ // vertices_on_face so that it still contains the same
+ // (counter-clockwise) order of the vertices on this face, but now the
+ // min_degree_vertex is the first element in vertices_on_face.
+ vertex_vector_t temp_vector;
+ std::copy(min_degree_vertex_itr, vertices_on_face.end(),
+ std::back_inserter(temp_vector));
+ std::copy(vertices_on_face.begin(), min_degree_vertex_itr,
+ std::back_inserter(temp_vector));
+ vertices_on_face.swap(temp_vector);
+
+ // Mark all of the min degree vertex's neighbors
+ adjacency_iterator_t ai, ai_end;
+ for(tie(ai,ai_end) = adjacent_vertices(vertices_on_face.front(),g);
+ ai != ai_end; ++ai
+ )
+ {
+ put(marked, *ai, timestamp);
+ }
+
+ typename vertex_vector_t::iterator marked_neighbor
+ = vertices_on_face.end();
+
+ // The iterator manipulations on the next two lines are safe because
+ // vertices_on_face.size() > 3 (from the first test in this function)
+ fi_end = prior(vertices_on_face.end());
+ for(face_iterator fi = next(next(vertices_on_face.begin()));
+ fi != fi_end; ++fi
+ )
+ {
+ if (get(marked, *fi) == timestamp)
+ {
+ marked_neighbor = fi;
+ break;
+ }
+ }
+
+ if (marked_neighbor == vertices_on_face.end())
+ {
+ add_edge_range(
+ vertices_on_face[0],
+ next(next(vertices_on_face.begin())),
+ prior(vertices_on_face.end())
+ );
+ }
+ else
+ {
+ add_edge_range(
+ vertices_on_face[1],
+ next(marked_neighbor),
+ vertices_on_face.end()
+ );
+
+ add_edge_range(
+ *next(marked_neighbor),
+ next(next(vertices_on_face.begin())),
+ marked_neighbor
+ );
+ }
+
+ //reset for the next face
+ vertices_on_face.clear();
+
+ }
+
+ private:
+
+
+ void add_edge_range(vertex_t anchor,
+ face_iterator fi,
+ face_iterator fi_end
+ )
+ {
+ for (; fi != fi_end; ++fi)
+ {
+ vertex_t v(*fi);
+ add_edge_visitor.visit_vertex_pair(anchor, v, g);
+ put(degree, anchor, get(degree, anchor) + 1);
+ put(degree, v, get(degree, v) + 1);
+ }
+ }
+
+
+ Graph& g;
+ VertexIndexMap vm;
+ AddEdgeVisitor add_edge_visitor;
+ v_size_t timestamp;
+ vertex_vector_t vertices_on_face;
+ v_size_vector_t marked_vector;
+ degree_size_vector_t degree_vector;
+ vertex_to_v_size_map_t marked;
+ vertex_to_degree_size_map_t degree;
+
+ };
+
+
+
+
+ template <typename Graph,
+ typename PlanarEmbedding,
+ typename VertexIndexMap,
+ typename EdgeIndexMap,
+ typename AddEdgeVisitor
+ >
+ void make_maximal_planar(Graph& g,
+ PlanarEmbedding embedding,
+ VertexIndexMap vm,
+ EdgeIndexMap em,
+ AddEdgeVisitor& vis)
+ {
+ triangulation_visitor<Graph,VertexIndexMap,AddEdgeVisitor>
+ visitor(g, vm, vis);
+ planar_face_traversal(g, embedding, visitor, em);
+ }
+
+
+
+
+ template <typename Graph,
+ typename PlanarEmbedding,
+ typename VertexIndexMap,
+ typename EdgeIndexMap
+ >
+ void make_maximal_planar(Graph& g,
+ PlanarEmbedding embedding,
+ VertexIndexMap vm,
+ EdgeIndexMap em
+ )
+ {
+ default_add_edge_visitor vis;
+ make_maximal_planar(g, embedding, vm, em, vis);
+ }
+
+
+
+
+ template <typename Graph,
+ typename PlanarEmbedding,
+ typename VertexIndexMap
+ >
+ void make_maximal_planar(Graph& g,
+ PlanarEmbedding embedding,
+ VertexIndexMap vm
+ )
+ {
+ make_maximal_planar(g, embedding, vm, get(edge_index,g));
+ }
+
+
+
+
+ template <typename Graph,
+ typename PlanarEmbedding
+ >
+ void make_maximal_planar(Graph& g,
+ PlanarEmbedding embedding
+ )
+ {
+ make_maximal_planar(g, embedding, get(vertex_index,g));
+ }
+
+
+
+
+} // namespace boost
+
+
+
+#endif //__MAKE_MAXIMAL_PLANAR_HPP__

Added: trunk/boost/graph/planar_canonical_ordering.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/planar_canonical_ordering.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,211 @@
+//=======================================================================
+// Copyright (c) Aaron Windsor 2007
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#ifndef __PLANAR_CANONICAL_ORDERING_HPP__
+#define __PLANAR_CANONICAL_ORDERING_HPP__
+
+#include <vector>
+#include <list>
+#include <boost/config.hpp>
+#include <boost/utility.hpp> //for next and prior
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+
+
+namespace boost
+{
+
+
+ template<typename Graph,
+ typename PlanarEmbedding,
+ typename OutputIterator,
+ typename VertexIndexMap>
+ void planar_canonical_ordering(const Graph& g,
+ PlanarEmbedding embedding,
+ OutputIterator ordering,
+ VertexIndexMap vm)
+ {
+
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::adjacency_iterator
+ adjacency_iterator_t;
+ typedef typename std::pair<vertex_t, vertex_t> vertex_pair_t;
+ typedef typename property_traits<PlanarEmbedding>::value_type
+ embedding_value_t;
+ typedef typename embedding_value_t::const_iterator embedding_iterator_t;
+ typedef iterator_property_map
+ <typename std::vector<vertex_t>::iterator, VertexIndexMap>
+ vertex_to_vertex_map_t;
+ typedef iterator_property_map
+ <typename std::vector<std::size_t>::iterator, VertexIndexMap>
+ vertex_to_size_t_map_t;
+
+ enum {PROCESSED,
+ UNPROCESSED,
+ ONE_NEIGHBOR_PROCESSED,
+ READY_TO_BE_PROCESSED};
+
+ std::vector<vertex_t> processed_neighbor_vector(num_vertices(g));
+ vertex_to_vertex_map_t processed_neighbor
+ (processed_neighbor_vector.begin(), vm);
+
+ std::vector<std::size_t> status_vector(num_vertices(g), UNPROCESSED);
+ vertex_to_size_t_map_t status(status_vector.begin(), vm);
+
+ std::list<vertex_t> ready_to_be_processed;
+
+ vertex_t first_vertex = *vertices(g).first;
+ vertex_t second_vertex;
+ adjacency_iterator_t ai, ai_end;
+ for(tie(ai,ai_end) = adjacent_vertices(first_vertex,g); ai != ai_end; ++ai)
+ {
+ if (*ai == first_vertex)
+ continue;
+ second_vertex = *ai;
+ break;
+ }
+
+ ready_to_be_processed.push_back(first_vertex);
+ status[first_vertex] = READY_TO_BE_PROCESSED;
+ ready_to_be_processed.push_back(second_vertex);
+ status[second_vertex] = READY_TO_BE_PROCESSED;
+
+ while(!ready_to_be_processed.empty())
+ {
+ vertex_t u = ready_to_be_processed.front();
+ ready_to_be_processed.pop_front();
+
+ if (status[u] != READY_TO_BE_PROCESSED && u != second_vertex)
+ continue;
+
+ embedding_iterator_t ei, ei_start, ei_end;
+ embedding_iterator_t next_edge_itr, prior_edge_itr;
+
+ ei_start = embedding[u].begin();
+ ei_end = embedding[u].end();
+ prior_edge_itr = prior(ei_end);
+ while(source(*prior_edge_itr, g) == target(*prior_edge_itr,g))
+ prior_edge_itr = prior(prior_edge_itr);
+
+ for(ei = ei_start; ei != ei_end; ++ei)
+ {
+
+ edge_t e(*ei); // e = (u,v)
+ next_edge_itr = next(ei) == ei_end ? ei_start : next(ei);
+ vertex_t v = source(e,g) == u ? target(e,g) : source(e,g);
+
+ vertex_t prior_vertex = source(*prior_edge_itr, g) == u ?
+ target(*prior_edge_itr, g) : source(*prior_edge_itr, g);
+ vertex_t next_vertex = source(*next_edge_itr, g) == u ?
+ target(*next_edge_itr, g) : source(*next_edge_itr, g);
+
+ // Need prior_vertex, u, v, and next_vertex to all be
+ // distinct. This is possible, since the input graph is
+ // triangulated. It'll be true all the time in a simple
+ // graph, but loops and parallel edges cause some complications.
+ if (prior_vertex == v || prior_vertex == u)
+ {
+ prior_edge_itr = ei;
+ continue;
+ }
+
+ //Skip any self-loops
+ if (u == v)
+ continue;
+
+ // Move next_edge_itr (and next_vertex) forwards
+ // past any loops or parallel edges
+ while (next_vertex == v || next_vertex == u)
+ {
+ next_edge_itr = next(next_edge_itr) == ei_end ?
+ ei_start : next(next_edge_itr);
+ next_vertex = source(*next_edge_itr, g) == u ?
+ target(*next_edge_itr, g) : source(*next_edge_itr, g);
+ }
+
+
+ if (status[v] == UNPROCESSED)
+ {
+ status[v] = ONE_NEIGHBOR_PROCESSED;
+ processed_neighbor[v] = u;
+ }
+ else if (status[v] == ONE_NEIGHBOR_PROCESSED)
+ {
+ vertex_t x = processed_neighbor[v];
+ //are edges (v,u) and (v,x) adjacent in the planar
+ //embedding? if so, set status[v] = 1. otherwise, set
+ //status[v] = 2.
+
+ if ((next_vertex == x &&
+ !(first_vertex == u && second_vertex == x)
+ )
+ ||
+ (prior_vertex == x &&
+ !(first_vertex == x && second_vertex == u)
+ )
+ )
+ {
+ status[v] = READY_TO_BE_PROCESSED;
+ }
+ else
+ {
+ status[v] = READY_TO_BE_PROCESSED + 1;
+ }
+ }
+ else if (status[v] > ONE_NEIGHBOR_PROCESSED)
+ {
+ //check the two edges before and after (v,u) in the planar
+ //embedding, and update status[v] accordingly
+
+ bool processed_before = false;
+ if (status[prior_vertex] == PROCESSED)
+ processed_before = true;
+
+ bool processed_after = false;
+ if (status[next_vertex] == PROCESSED)
+ processed_after = true;
+
+ if (!processed_before && !processed_after)
+ ++status[v];
+
+ else if (processed_before && processed_after)
+ --status[v];
+
+ }
+
+ if (status[v] == READY_TO_BE_PROCESSED)
+ ready_to_be_processed.push_back(v);
+
+ prior_edge_itr = ei;
+
+ }
+
+ status[u] = PROCESSED;
+ *ordering = u;
+ ++ordering;
+
+ }
+
+ }
+
+
+ template<typename Graph, typename PlanarEmbedding, typename OutputIterator>
+ void planar_canonical_ordering(const Graph& g,
+ PlanarEmbedding embedding,
+ OutputIterator ordering
+ )
+ {
+ planar_canonical_ordering(g, embedding, ordering, get(vertex_index,g));
+ }
+
+
+} //namespace boost
+
+#endif //__PLANAR_CANONICAL_ORDERING_HPP__

Added: trunk/boost/graph/planar_detail/add_edge_visitors.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/planar_detail/add_edge_visitors.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,59 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __ADD_EDGE_VISITORS_HPP__
+#define __ADD_EDGE_VISITORS_HPP__
+
+#include <boost/property_map.hpp>
+
+namespace boost
+{
+
+ struct default_add_edge_visitor
+ {
+
+ template <typename Graph, typename Vertex>
+ void visit_vertex_pair(Vertex u, Vertex v, Graph& g)
+ {
+ add_edge(u,v,g);
+ }
+
+ };
+
+ template<typename EdgeIndexMap>
+ struct edge_index_update_visitor
+ {
+
+ typedef typename
+ property_traits<EdgeIndexMap>::value_type edge_index_value_t;
+
+ edge_index_update_visitor(EdgeIndexMap em,
+ edge_index_value_t next_index_available
+ ) :
+ m_em(em),
+ m_next_index(next_index_available)
+ {}
+
+ template <typename Graph, typename Vertex>
+ void visit_vertex_pair(Vertex u, Vertex v, Graph& g)
+ {
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ std::pair<edge_t, bool> return_value = add_edge(u,v,g);
+ if (return_value.second)
+ put( m_em, return_value.first, m_next_index++);
+ }
+
+ private:
+
+ EdgeIndexMap m_em;
+ edge_index_value_t m_next_index;
+
+ };
+
+} // namespace boost
+
+#endif //__ADD_EDGE_VISITORS_HPP__

Added: trunk/boost/graph/planar_detail/boyer_myrvold_impl.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/planar_detail/boyer_myrvold_impl.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,2016 @@
+//=======================================================================
+// Copyright (c) Aaron Windsor 2007
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __BOYER_MYRVOLD_IMPL_HPP__
+#define __BOYER_MYRVOLD_IMPL_HPP__
+
+#include <vector>
+#include <list>
+#include <boost/utility.hpp> //for boost::next
+#include <boost/config.hpp> //for std::min macros
+#include <boost/shared_ptr.hpp>
+#include <boost/tuple/tuple.hpp>
+#include <boost/property_map.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/depth_first_search.hpp>
+#include <boost/graph/planar_detail/face_handles.hpp>
+#include <boost/graph/planar_detail/face_iterators.hpp>
+#include <boost/graph/planar_detail/bucket_sort.hpp>
+
+
+
+namespace boost
+{
+
+ template<typename LowPointMap, typename DFSParentMap,
+ typename DFSNumberMap, typename LeastAncestorMap,
+ typename DFSParentEdgeMap, typename SizeType>
+ struct planar_dfs_visitor : public dfs_visitor<>
+ {
+ planar_dfs_visitor(LowPointMap lpm, DFSParentMap dfs_p,
+ DFSNumberMap dfs_n, LeastAncestorMap lam,
+ DFSParentEdgeMap dfs_edge)
+ : low(lpm),
+ parent(dfs_p),
+ df_number(dfs_n),
+ least_ancestor(lam),
+ df_edge(dfs_edge),
+ count(0)
+ {}
+
+
+ template <typename Vertex, typename Graph>
+ void start_vertex(const Vertex& u, Graph&)
+ {
+ put(parent, u, u);
+ put(least_ancestor, u, count);
+ }
+
+
+ template <typename Vertex, typename Graph>
+ void discover_vertex(const Vertex& u, Graph&)
+ {
+ put(low, u, count);
+ put(df_number, u, count);
+ ++count;
+ }
+
+ template <typename Edge, typename Graph>
+ void tree_edge(const Edge& e, Graph& g)
+ {
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ vertex_t s(source(e,g));
+ vertex_t t(target(e,g));
+
+ put(parent, t, s);
+ put(df_edge, t, e);
+ put(least_ancestor, t, get(df_number, s));
+ }
+
+ template <typename Edge, typename Graph>
+ void back_edge(const Edge& e, Graph& g)
+ {
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+
+ vertex_t s(source(e,g));
+ vertex_t t(target(e,g));
+ BOOST_USING_STD_MIN();
+
+ if ( t != get(parent, s) ) {
+ v_size_t s_low_df_number = get(low, s);
+ v_size_t t_df_number = get(df_number, t);
+ v_size_t s_least_ancestor_df_number = get(least_ancestor, s);
+
+ put(low, s,
+ min BOOST_PREVENT_MACRO_SUBSTITUTION(s_low_df_number,
+ t_df_number)
+ );
+
+ put(least_ancestor, s,
+ min BOOST_PREVENT_MACRO_SUBSTITUTION(s_least_ancestor_df_number,
+ t_df_number
+ )
+ );
+
+ }
+ }
+
+ template <typename Vertex, typename Graph>
+ void finish_vertex(const Vertex& u, Graph& g)
+ {
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+
+ Vertex u_parent = get(parent, u);
+ v_size_t u_parent_lowpoint = get(low, u_parent);
+ v_size_t u_lowpoint = get(low, u);
+ BOOST_USING_STD_MIN();
+
+ if (u_parent != u)
+ {
+ put(low, u_parent,
+ min BOOST_PREVENT_MACRO_SUBSTITUTION(u_lowpoint,
+ u_parent_lowpoint
+ )
+ );
+ }
+ }
+
+ LowPointMap low;
+ DFSParentMap parent;
+ DFSNumberMap df_number;
+ LeastAncestorMap least_ancestor;
+ DFSParentEdgeMap df_edge;
+ SizeType count;
+
+ };
+
+
+
+
+
+
+ template <typename Graph,
+ typename VertexIndexMap,
+ typename StoreOldHandlesPolicy = graph::detail::store_old_handles,
+ typename StoreEmbeddingPolicy = graph::detail::recursive_lazy_list
+ >
+ class boyer_myrvold_impl
+ {
+
+ typedef typename graph_traits<Graph>::vertices_size_type v_size_t;
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::edge_iterator edge_iterator_t;
+ typedef typename graph_traits<Graph>::out_edge_iterator
+ out_edge_iterator_t;
+ typedef graph::detail::face_handle
+ <Graph, StoreOldHandlesPolicy, StoreEmbeddingPolicy> face_handle_t;
+ typedef std::vector<vertex_t> vertex_vector_t;
+ typedef std::vector<edge_t> edge_vector_t;
+ typedef std::list<vertex_t> vertex_list_t;
+ typedef std::list< face_handle_t > face_handle_list_t;
+ typedef boost::shared_ptr< face_handle_list_t > face_handle_list_ptr_t;
+ typedef boost::shared_ptr< vertex_list_t > vertex_list_ptr_t;
+ typedef boost::tuple<vertex_t, bool, bool> merge_stack_frame_t;
+ typedef std::vector<merge_stack_frame_t> merge_stack_t;
+
+ template <typename T>
+ struct map_vertex_to_
+ {
+ typedef iterator_property_map
+ <typename std::vector<T>::iterator, VertexIndexMap> type;
+ };
+
+ typedef typename map_vertex_to_<v_size_t>::type vertex_to_v_size_map_t;
+ typedef typename map_vertex_to_<vertex_t>::type vertex_to_vertex_map_t;
+ typedef typename map_vertex_to_<edge_t>::type vertex_to_edge_map_t;
+ typedef typename map_vertex_to_<vertex_list_ptr_t>::type
+ vertex_to_vertex_list_ptr_map_t;
+ typedef typename map_vertex_to_< edge_vector_t >::type
+ vertex_to_edge_vector_map_t;
+ typedef typename map_vertex_to_<bool>::type vertex_to_bool_map_t;
+ typedef typename map_vertex_to_<face_handle_t>::type
+ vertex_to_face_handle_map_t;
+ typedef typename map_vertex_to_<face_handle_list_ptr_t>::type
+ vertex_to_face_handle_list_ptr_map_t;
+ typedef typename map_vertex_to_<typename vertex_list_t::iterator>::type
+ vertex_to_separated_node_map_t;
+
+ template <typename BicompSideToTraverse = single_side,
+ typename VisitorType = lead_visitor,
+ typename Time = current_iteration>
+ struct face_vertex_iterator
+ {
+ typedef face_iterator<Graph,
+ vertex_to_face_handle_map_t,
+ vertex_t,
+ BicompSideToTraverse,
+ VisitorType,
+ Time>
+ type;
+ };
+
+ template <typename BicompSideToTraverse = single_side,
+ typename Time = current_iteration>
+ struct face_edge_iterator
+ {
+ typedef face_iterator<Graph,
+ vertex_to_face_handle_map_t,
+ edge_t,
+ BicompSideToTraverse,
+ lead_visitor,
+ Time>
+ type;
+ };
+
+
+
+ public:
+
+
+
+ boyer_myrvold_impl(const Graph& arg_g, VertexIndexMap arg_vm):
+ g(arg_g),
+ vm(arg_vm),
+
+ low_point_vector(num_vertices(g)),
+ dfs_parent_vector(num_vertices(g)),
+ dfs_number_vector(num_vertices(g)),
+ least_ancestor_vector(num_vertices(g)),
+ pertinent_roots_vector(num_vertices(g)),
+ backedge_flag_vector(num_vertices(g), num_vertices(g) + 1),
+ visited_vector(num_vertices(g), num_vertices(g) + 1),
+ face_handles_vector(num_vertices(g)),
+ dfs_child_handles_vector(num_vertices(g)),
+ separated_dfs_child_list_vector(num_vertices(g)),
+ separated_node_in_parent_list_vector(num_vertices(g)),
+ canonical_dfs_child_vector(num_vertices(g)),
+ flipped_vector(num_vertices(g), false),
+ backedges_vector(num_vertices(g)),
+ dfs_parent_edge_vector(num_vertices(g)),
+
+ vertices_by_dfs_num(num_vertices(g)),
+
+ low_point(low_point_vector.begin(), vm),
+ dfs_parent(dfs_parent_vector.begin(), vm),
+ dfs_number(dfs_number_vector.begin(), vm),
+ least_ancestor(least_ancestor_vector.begin(), vm),
+ pertinent_roots(pertinent_roots_vector.begin(), vm),
+ backedge_flag(backedge_flag_vector.begin(), vm),
+ visited(visited_vector.begin(), vm),
+ face_handles(face_handles_vector.begin(), vm),
+ dfs_child_handles(dfs_child_handles_vector.begin(), vm),
+ separated_dfs_child_list(separated_dfs_child_list_vector.begin(), vm),
+ separated_node_in_parent_list
+ (separated_node_in_parent_list_vector.begin(), vm),
+ canonical_dfs_child(canonical_dfs_child_vector.begin(), vm),
+ flipped(flipped_vector.begin(), vm),
+ backedges(backedges_vector.begin(), vm),
+ dfs_parent_edge(dfs_parent_edge_vector.begin(), vm)
+
+ {
+
+ planar_dfs_visitor
+ <vertex_to_v_size_map_t, vertex_to_vertex_map_t,
+ vertex_to_v_size_map_t, vertex_to_v_size_map_t,
+ vertex_to_edge_map_t, v_size_t> vis
+ (low_point, dfs_parent, dfs_number, least_ancestor, dfs_parent_edge);
+
+ // Perform a depth-first search to find each vertex's low point, least
+ // ancestor, and dfs tree information
+ depth_first_search(g, visitor(vis).vertex_index_map(vm));
+
+ // Sort vertices by their lowpoint - need this later in the constructor
+ vertex_vector_t vertices_by_lowpoint(num_vertices(g));
+ std::copy( vertices(g).first, vertices(g).second,
+ vertices_by_lowpoint.begin()
+ );
+ bucket_sort(vertices_by_lowpoint.begin(),
+ vertices_by_lowpoint.end(),
+ low_point,
+ num_vertices(g)
+ );
+
+ // Sort vertices by their dfs number - need this to iterate by reverse
+ // DFS number in the main loop.
+ std::copy( vertices(g).first, vertices(g).second,
+ vertices_by_dfs_num.begin()
+ );
+ bucket_sort(vertices_by_dfs_num.begin(),
+ vertices_by_dfs_num.end(),
+ dfs_number,
+ num_vertices(g)
+ );
+
+ // Initialize face handles. A face handle is an abstraction that serves
+ // two uses in our implementation - it allows us to efficiently move
+ // along the outer face of embedded bicomps in a partially embedded
+ // graph, and it provides storage for the planar embedding. Face
+ // handles are implemented by a sequence of edges and are associated
+ // with a particular vertex - the sequence of edges represents the
+ // current embedding of edges around that vertex, and the first and
+ // last edges in the sequence represent the pair of edges on the outer
+ // face that are adjacent to the associated vertex. This lets us embed
+ // edges in the graph by just pushing them on the front or back of the
+ // sequence of edges held by the face handles.
+ //
+ // Our algorithm starts with a DFS tree of edges (where every vertex is
+ // an articulation point and every edge is a singleton bicomp) and
+ // repeatedly merges bicomps by embedding additional edges. Note that
+ // any bicomp at any point in the algorithm can be associated with a
+ // unique edge connecting the vertex of that bicomp with the lowest DFS
+ // number (which we refer to as the "root" of the bicomp) with its DFS
+ // child in the bicomp: the existence of two such edges would contradict
+ // the properties of a DFS tree. We refer to the DFS child of the root
+ // of a bicomp as the "canonical DFS child" of the bicomp. Note that a
+ // vertex can be the root of more than one bicomp.
+ //
+ // We move around the external faces of a bicomp using a few property
+ // maps, which we'll initialize presently:
+ //
+ // - face_handles: maps a vertex to a face handle that can be used to
+ // move "up" a bicomp. For a vertex that isn't an articulation point,
+ // this holds the face handles that can be used to move around that
+ // vertex's unique bicomp. For a vertex that is an articulation point,
+ // this holds the face handles associated with the unique bicomp that
+ // the vertex is NOT the root of. These handles can therefore be used
+ // to move from any point on the outer face of the tree of bicomps
+ // around the current outer face towards the root of the DFS tree.
+ //
+ // - dfs_child_handles: these are used to hold face handles for
+ // vertices that are articulation points - dfs_child_handles[v] holds
+ // the face handles corresponding to vertex u in the bicomp with root
+ // u and canonical DFS child v.
+ //
+ // - canonical_dfs_child: this property map allows one to determine the
+ // canonical DFS child of a bicomp while traversing the outer face.
+ // This property map is only valid when applied to one of the two
+ // vertices adjacent to the root of the bicomp on the outer face. To
+ // be more precise, if v is the canonical DFS child of a bicomp,
+ // canonical_dfs_child[dfs_child_handles[v].first_vertex()] == v and
+ // canonical_dfs_child[dfs_child_handles[v].second_vertex()] == v.
+ //
+ // - pertinent_roots: given a vertex v, pertinent_roots[v] contains a
+ // list of face handles pointing to the top of bicomps that need to
+ // be visited by the current walkdown traversal (since they lead to
+ // backedges that need to be embedded). These lists are populated by
+ // the walkup and consumed by the walkdown.
+
+ vertex_iterator_t vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ vertex_t v(*vi);
+ vertex_t parent = dfs_parent[v];
+
+ if (parent != v)
+ {
+ edge_t parent_edge = dfs_parent_edge[v];
+ add_to_embedded_edges(parent_edge, StoreOldHandlesPolicy());
+ face_handles[v] = face_handle_t(v, parent_edge, g);
+ dfs_child_handles[v] = face_handle_t(parent, parent_edge, g);
+ }
+ else
+ {
+ face_handles[v] = face_handle_t(v);
+ dfs_child_handles[v] = face_handle_t(parent);
+ }
+
+ canonical_dfs_child[v] = v;
+ pertinent_roots[v] = face_handle_list_ptr_t(new face_handle_list_t);
+ separated_dfs_child_list[v] = vertex_list_ptr_t(new vertex_list_t);
+
+ }
+
+ // We need to create a list of not-yet-merged depth-first children for
+ // each vertex that will be updated as bicomps get merged. We sort each
+ // list by ascending lowpoint, which allows the externally_active
+ // function to run in constant time, and we keep a pointer to each
+ // vertex's representation in its parent's list, which allows merging
+ //in constant time.
+
+ for(typename vertex_vector_t::iterator itr =
+ vertices_by_lowpoint.begin();
+ itr != vertices_by_lowpoint.end(); ++itr)
+ {
+ vertex_t v(*itr);
+ vertex_t parent(dfs_parent[v]);
+ if (v != parent)
+ {
+ separated_node_in_parent_list[v] =
+ separated_dfs_child_list[parent]->insert
+ (separated_dfs_child_list[parent]->end(), v);
+ }
+ }
+
+ // The merge stack holds path information during a walkdown iteration
+ merge_stack.reserve(num_vertices(g));
+
+ }
+
+
+
+
+
+
+ bool is_planar()
+ {
+
+ // This is the main algorithm: starting with a DFS tree of embedded
+ // edges (which, since it's a tree, is planar), iterate through all
+ // vertices by reverse DFS number, attempting to embed all backedges
+ // connecting the current vertex to vertices with higher DFS numbers.
+ //
+ // The walkup is a procedure that examines all such backedges and sets
+ // up the required data structures so that they can be searched by the
+ // walkdown in linear time. The walkdown does the actual work of
+ // embedding edges and flipping bicomps, and can identify when it has
+ // come across a kuratowski subgraph.
+ //
+ // store_old_face_handles caches face handles from the previous
+ // iteration - this is used only for the kuratowski subgraph isolation,
+ // and is therefore dispatched based on the StoreOldHandlesPolicy.
+ //
+ // clean_up_embedding does some clean-up and fills in values that have
+ // to be computed lazily during the actual execution of the algorithm
+ // (for instance, whether or not a bicomp is flipped in the final
+ // embedding). It's dispatched on the the StoreEmbeddingPolicy, since
+ // it's not needed if an embedding isn't desired.
+
+ typename vertex_vector_t::reverse_iterator vi, vi_end;
+
+ vi_end = vertices_by_dfs_num.rend();
+ for(vi = vertices_by_dfs_num.rbegin(); vi != vi_end; ++vi)
+ {
+
+ store_old_face_handles(StoreOldHandlesPolicy());
+
+ vertex_t v(*vi);
+
+ walkup(v);
+
+ if (!walkdown(v))
+ return false;
+
+ }
+
+ clean_up_embedding(StoreEmbeddingPolicy());
+
+ return true;
+
+ }
+
+
+
+
+
+
+ private:
+
+
+
+
+
+ void walkup(vertex_t v)
+ {
+
+ // The point of the walkup is to follow all backedges from v to
+ // vertices with higher DFS numbers, and update pertinent_roots
+ // for the bicomp roots on the path from backedge endpoints up
+ // to v. This will set the stage for the walkdown to efficiently
+ // traverse the graph of bicomps down from v.
+
+ typedef face_iterator
+ <Graph, vertex_to_face_handle_map_t, vertex_t, both_sides>
+ walkup_iterator_t;
+
+ out_edge_iterator_t oi, oi_end;
+ for(tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
+ {
+ edge_t e(*oi);
+ vertex_t e_source(source(e,g));
+ vertex_t e_target(target(e,g));
+
+ if (e_source == e_target)
+ {
+ self_loops.push_back(e);
+ continue;
+ }
+
+ vertex_t w(e_source == v ? e_target : e_source);
+
+ //continue if not a back edge or already embedded
+ if (dfs_number[w] < dfs_number[v] || e == dfs_parent_edge[w])
+ continue;
+
+ backedges[w].push_back(e);
+
+ v_size_t timestamp = dfs_number[v];
+ backedge_flag[w] = timestamp;
+
+ walkup_iterator_t walkup_itr(w, face_handles);
+ walkup_iterator_t walkup_end;
+ vertex_t lead_vertex = w;
+
+ while (true)
+ {
+
+ // Move to the root of the current bicomp or the first visited
+ // vertex on the bicomp by going up each side in parallel
+
+ while(walkup_itr != walkup_end &&
+ visited[*walkup_itr] != timestamp
+ )
+ {
+ lead_vertex = *walkup_itr;
+ visited[lead_vertex] = timestamp;
+ ++walkup_itr;
+ }
+
+ // If we've found the root of a bicomp through a path we haven't
+ // seen before, update pertinent_roots with a handle to the
+ // current bicomp. Otherwise, we've just seen a path we've been
+ // up before, so break out of the main while loop.
+
+ if (walkup_itr == walkup_end)
+ {
+ vertex_t dfs_child = canonical_dfs_child[lead_vertex];
+ vertex_t parent = dfs_parent[dfs_child];
+
+ visited[dfs_child_handles[dfs_child].first_vertex()]
+ = timestamp;
+ visited[dfs_child_handles[dfs_child].second_vertex()]
+ = timestamp;
+
+ if (low_point[dfs_child] < dfs_number[v] ||
+ least_ancestor[dfs_child] < dfs_number[v]
+ )
+ {
+ pertinent_roots[parent]->push_back
+ (dfs_child_handles[dfs_child]);
+ }
+ else
+ {
+ pertinent_roots[parent]->push_front
+ (dfs_child_handles[dfs_child]);
+ }
+
+ if (parent != v && visited[parent] != timestamp)
+ {
+ walkup_itr = walkup_iterator_t(parent, face_handles);
+ lead_vertex = parent;
+ }
+ else
+ break;
+ }
+ else
+ break;
+ }
+
+ }
+
+ }
+
+
+
+
+
+
+
+ bool walkdown(vertex_t v)
+ {
+ // This procedure is where all of the action is - pertinent_roots
+ // has already been set up by the walkup, so we just need to move
+ // down bicomps from v until we find vertices that have been
+ // labeled as backedge endpoints. Once we find such a vertex, we
+ // embed the corresponding edge and glue together the bicomps on
+ // the path connecting the two vertices in the edge. This may
+ // involve flipping bicomps along the way.
+
+ vertex_t w; //the other endpoint of the edge we're embedding
+
+ while (!pertinent_roots[v]->empty())
+ {
+
+ face_handle_t root_face_handle = pertinent_roots[v]->front();
+ face_handle_t curr_face_handle = root_face_handle;
+ pertinent_roots[v]->pop_front();
+
+ merge_stack.clear();
+
+ while(true)
+ {
+
+ typename face_vertex_iterator<>::type
+ first_face_itr, second_face_itr, face_end;
+ vertex_t first_side_vertex
+ = graph_traits<Graph>::null_vertex();
+ vertex_t second_side_vertex;
+ vertex_t first_tail, second_tail;
+
+ first_tail = second_tail = curr_face_handle.get_anchor();
+ first_face_itr = typename face_vertex_iterator<>::type
+ (curr_face_handle, face_handles, first_side());
+ second_face_itr = typename face_vertex_iterator<>::type
+ (curr_face_handle, face_handles, second_side());
+
+ for(; first_face_itr != face_end; ++first_face_itr)
+ {
+ vertex_t face_vertex(*first_face_itr);
+ if (pertinent(face_vertex, v) ||
+ externally_active(face_vertex, v)
+ )
+ {
+ first_side_vertex = face_vertex;
+ second_side_vertex = face_vertex;
+ break;
+ }
+ first_tail = face_vertex;
+ }
+
+ if (first_side_vertex == graph_traits<Graph>::null_vertex() ||
+ first_side_vertex == curr_face_handle.get_anchor()
+ )
+ break;
+
+ for(;second_face_itr != face_end; ++second_face_itr)
+ {
+ vertex_t face_vertex(*second_face_itr);
+ if (pertinent(face_vertex, v) ||
+ externally_active(face_vertex, v)
+ )
+ {
+ second_side_vertex = face_vertex;
+ break;
+ }
+ second_tail = face_vertex;
+ }
+
+ vertex_t chosen;
+ bool chose_first_upper_path;
+ if (internally_active(first_side_vertex, v))
+ {
+ chosen = first_side_vertex;
+ chose_first_upper_path = true;
+ }
+ else if (internally_active(second_side_vertex, v))
+ {
+ chosen = second_side_vertex;
+ chose_first_upper_path = false;
+ }
+ else if (pertinent(first_side_vertex, v))
+ {
+ chosen = first_side_vertex;
+ chose_first_upper_path = true;
+ }
+ else if (pertinent(second_side_vertex, v))
+ {
+ chosen = second_side_vertex;
+ chose_first_upper_path = false;
+ }
+ else
+ {
+
+ // If there's a pertinent vertex on the lower face
+ // between the first_face_itr and the second_face_itr,
+ // this graph isn't planar.
+ for(;
+ *first_face_itr != second_side_vertex;
+ ++first_face_itr
+ )
+ {
+ vertex_t p(*first_face_itr);
+ if (pertinent(p,v))
+ {
+ //Found a Kuratowski subgraph
+ kuratowski_v = v;
+ kuratowski_x = first_side_vertex;
+ kuratowski_y = second_side_vertex;
+ return false;
+ }
+ }
+
+ // Otherwise, the fact that we didn't find a pertinent
+ // vertex on this face is fine - we should set the
+ // short-circuit edges and break out of this loop to
+ // start looking at a different pertinent root.
+
+ if (first_side_vertex == second_side_vertex)
+ {
+ if (first_tail != v)
+ {
+ vertex_t first
+ = face_handles[first_tail].first_vertex();
+ vertex_t second
+ = face_handles[first_tail].second_vertex();
+ tie(first_side_vertex, first_tail)
+ = make_tuple(first_tail,
+ first == first_side_vertex ?
+ second : first
+ );
+ }
+ else if (second_tail != v)
+ {
+ vertex_t first
+ = face_handles[second_tail].first_vertex();
+ vertex_t second
+ = face_handles[second_tail].second_vertex();
+ tie(second_side_vertex, second_tail)
+ = make_tuple(second_tail,
+ first == second_side_vertex ?
+ second : first);
+ }
+ else
+ break;
+ }
+
+ canonical_dfs_child[first_side_vertex]
+ = canonical_dfs_child[root_face_handle.first_vertex()];
+ canonical_dfs_child[second_side_vertex]
+ = canonical_dfs_child[root_face_handle.second_vertex()];
+ root_face_handle.set_first_vertex(first_side_vertex);
+ root_face_handle.set_second_vertex(second_side_vertex);
+
+ if (face_handles[first_side_vertex].first_vertex() ==
+ first_tail
+ )
+ face_handles[first_side_vertex].set_first_vertex(v);
+ else
+ face_handles[first_side_vertex].set_second_vertex(v);
+
+ if (face_handles[second_side_vertex].first_vertex() ==
+ second_tail
+ )
+ face_handles[second_side_vertex].set_first_vertex(v);
+ else
+ face_handles[second_side_vertex].set_second_vertex(v);
+
+ break;
+
+ }
+
+
+ // When we unwind the stack, we need to know which direction
+ // we came down from on the top face handle
+
+ bool chose_first_lower_path =
+ (chose_first_upper_path &&
+ face_handles[chosen].first_vertex() == first_tail)
+ ||
+ (!chose_first_upper_path &&
+ face_handles[chosen].first_vertex() == second_tail);
+
+ //If there's a backedge at the chosen vertex, embed it now
+ if (backedge_flag[chosen] == dfs_number[v])
+ {
+ w = chosen;
+
+ backedge_flag[chosen] = num_vertices(g) + 1;
+ add_to_merge_points(chosen, StoreOldHandlesPolicy());
+
+ typename edge_vector_t::iterator ei, ei_end;
+ ei_end = backedges[chosen].end();
+ for(ei = backedges[chosen].begin(); ei != ei_end; ++ei)
+ {
+ edge_t e(*ei);
+ add_to_embedded_edges(e, StoreOldHandlesPolicy());
+
+ if (chose_first_lower_path)
+ face_handles[chosen].push_first(e, g);
+ else
+ face_handles[chosen].push_second(e, g);
+ }
+
+ }
+ else
+ {
+ merge_stack.push_back(make_tuple
+ (chosen, chose_first_upper_path, chose_first_lower_path)
+ );
+ curr_face_handle = *pertinent_roots[chosen]->begin();
+ continue;
+ }
+
+ //Unwind the merge stack to the root, merging all bicomps
+
+ bool bottom_path_follows_first;
+ bool top_path_follows_first;
+ bool next_bottom_follows_first = chose_first_upper_path;
+ face_handle_t top_handle, bottom_handle;
+
+ vertex_t merge_point = chosen;
+
+ while(!merge_stack.empty())
+ {
+
+ bottom_path_follows_first = next_bottom_follows_first;
+ tie(merge_point,
+ next_bottom_follows_first,
+ top_path_follows_first
+ ) = merge_stack.back();
+ merge_stack.pop_back();
+
+ face_handle_t top_handle(face_handles[merge_point]);
+ face_handle_t bottom_handle
+ (*pertinent_roots[merge_point]->begin());
+
+ vertex_t bottom_dfs_child = canonical_dfs_child
+ [pertinent_roots[merge_point]->begin()->first_vertex()];
+
+ remove_vertex_from_separated_dfs_child_list(
+ canonical_dfs_child
+ [pertinent_roots[merge_point]->begin()->first_vertex()]
+ );
+
+ pertinent_roots[merge_point]->pop_front();
+
+ add_to_merge_points(top_handle.get_anchor(),
+ StoreOldHandlesPolicy()
+ );
+
+ if (top_path_follows_first && bottom_path_follows_first)
+ {
+ bottom_handle.flip();
+ top_handle.glue_first_to_second(bottom_handle);
+ }
+ else if (!top_path_follows_first &&
+ bottom_path_follows_first
+ )
+ {
+ flipped[bottom_dfs_child] = true;
+ top_handle.glue_second_to_first(bottom_handle);
+ }
+ else if (top_path_follows_first &&
+ !bottom_path_follows_first
+ )
+ {
+ flipped[bottom_dfs_child] = true;
+ top_handle.glue_first_to_second(bottom_handle);
+ }
+ else //!top_path_follows_first && !bottom_path_follows_first
+ {
+ bottom_handle.flip();
+ top_handle.glue_second_to_first(bottom_handle);
+ }
+
+ }
+
+ //Finally, embed all edges (v,w) at their upper end points
+ canonical_dfs_child[w]
+ = canonical_dfs_child[root_face_handle.first_vertex()];
+
+ add_to_merge_points(root_face_handle.get_anchor(),
+ StoreOldHandlesPolicy()
+ );
+
+ typename edge_vector_t::iterator ei, ei_end;
+ ei_end = backedges[chosen].end();
+ for(ei = backedges[chosen].begin(); ei != ei_end; ++ei)
+ {
+ if (next_bottom_follows_first)
+ root_face_handle.push_first(*ei, g);
+ else
+ root_face_handle.push_second(*ei, g);
+ }
+
+ backedges[chosen].clear();
+ curr_face_handle = root_face_handle;
+
+ }//while(true)
+
+ }//while(!pertinent_roots[v]->empty())
+
+ return true;
+
+ }
+
+
+
+
+
+
+ void store_old_face_handles(graph::detail::no_old_handles) {}
+
+ void store_old_face_handles(graph::detail::store_old_handles)
+ {
+ for(typename std::vector<vertex_t>::iterator mp_itr
+ = current_merge_points.begin();
+ mp_itr != current_merge_points.end(); ++mp_itr)
+ {
+ face_handles[*mp_itr].store_old_face_handles();
+ }
+ current_merge_points.clear();
+ }
+
+
+ void add_to_merge_points(vertex_t v, graph::detail::no_old_handles) {}
+
+ void add_to_merge_points(vertex_t v, graph::detail::store_old_handles)
+ {
+ current_merge_points.push_back(v);
+ }
+
+
+ void add_to_embedded_edges(edge_t e, graph::detail::no_old_handles) {}
+
+ void add_to_embedded_edges(edge_t e, graph::detail::store_old_handles)
+ {
+ embedded_edges.push_back(e);
+ }
+
+
+
+
+ void clean_up_embedding(graph::detail::no_embedding) {}
+
+ void clean_up_embedding(graph::detail::store_embedding)
+ {
+
+ // If the graph isn't biconnected, we'll still have entries
+ // in the separated_dfs_child_list for some vertices. Since
+ // these represent articulation points, we can obtain a
+ // planar embedding no matter what order we embed them in.
+
+ vertex_iterator_t xi, xi_end;
+ for(tie(xi,xi_end) = vertices(g); xi != xi_end; ++xi)
+ {
+ if (!separated_dfs_child_list[*xi]->empty())
+ {
+ typename vertex_list_t::iterator yi, yi_end;
+ yi_end = separated_dfs_child_list[*xi]->end();
+ for(yi = separated_dfs_child_list[*xi]->begin();
+ yi != yi_end; ++yi
+ )
+ {
+ dfs_child_handles[*yi].flip();
+ face_handles[*xi].glue_first_to_second
+ (dfs_child_handles[*yi]);
+ }
+ }
+ }
+
+ // Up until this point, we've flipped bicomps lazily by setting
+ // flipped[v] to true if the bicomp rooted at v was flipped (the
+ // lazy aspect of this flip is that all descendents of that vertex
+ // need to have their orientations reversed as well). Now, we
+ // traverse the DFS tree by DFS number and perform the actual
+ // flipping as needed
+
+ typedef typename vertex_vector_t::iterator vertex_vector_itr_t;
+ vertex_vector_itr_t vi_end = vertices_by_dfs_num.end();
+ for(vertex_vector_itr_t vi = vertices_by_dfs_num.begin();
+ vi != vi_end; ++vi
+ )
+ {
+ vertex_t v(*vi);
+ bool v_flipped = flipped[v];
+ bool p_flipped = flipped[dfs_parent[v]];
+ if (v_flipped && !p_flipped)
+ {
+ face_handles[v].flip();
+ }
+ else if (p_flipped && !v_flipped)
+ {
+ face_handles[v].flip();
+ flipped[v] = true;
+ }
+ else
+ {
+ flipped[v] = false;
+ }
+ }
+
+ // If there are any self-loops in the graph, they were flagged
+ // during the walkup, and we should add them to the embedding now.
+ // Adding a self loop anywhere in the embedding could never
+ // invalidate the embedding, but they would complicate the traversal
+ // if they were added during the walkup/walkdown.
+
+ typename edge_vector_t::iterator ei, ei_end;
+ ei_end = self_loops.end();
+ for(ei = self_loops.begin(); ei != ei_end; ++ei)
+ {
+ edge_t e(*ei);
+ face_handles[source(e,g)].push_second(e,g);
+ }
+
+ }
+
+
+
+
+
+ bool pertinent(vertex_t w, vertex_t v)
+ {
+ // w is pertinent with respect to v if there is a backedge (v,w) or if
+ // w is the root of a bicomp that contains a pertinent vertex.
+
+ return backedge_flag[w] == dfs_number[v] || !pertinent_roots[w]->empty();
+ }
+
+
+
+ bool externally_active(vertex_t w, vertex_t v)
+ {
+ // Let a be any proper depth-first search ancestor of v. w is externally
+ // active with respect to v if there exists a backedge (a,w) or a
+ // backedge (a,w_0) for some w_0 in a descendent bicomp of w.
+
+ v_size_t dfs_number_of_v = dfs_number[v];
+ return (least_ancestor[w] < dfs_number_of_v) ||
+ (!separated_dfs_child_list[w]->empty() &&
+ low_point[separated_dfs_child_list[w]->front()] < dfs_number_of_v);
+ }
+
+
+
+ bool internally_active(vertex_t w, vertex_t v)
+ {
+ return pertinent(w,v) && !externally_active(w,v);
+ }
+
+
+
+
+ void remove_vertex_from_separated_dfs_child_list(vertex_t v)
+ {
+ typename vertex_list_t::iterator to_delete
+ = separated_node_in_parent_list[v];
+ garbage.splice(garbage.end(),
+ *separated_dfs_child_list[dfs_parent[v]],
+ to_delete,
+ next(to_delete)
+ );
+ }
+
+
+
+
+
+ // End of the implementation of the basic Boyer-Myrvold Algorithm. The rest
+ // of the code below implements the isolation of a Kuratowski subgraph in
+ // the case that the input graph is not planar. This is by far the most
+ // complicated part of the implementation.
+
+
+
+
+ public:
+
+
+
+
+ template <typename EdgeToBoolPropertyMap, typename EdgeContainer>
+ vertex_t kuratowski_walkup(vertex_t v,
+ EdgeToBoolPropertyMap forbidden_edge,
+ EdgeToBoolPropertyMap goal_edge,
+ EdgeToBoolPropertyMap is_embedded,
+ EdgeContainer& path_edges
+ )
+ {
+ vertex_t current_endpoint;
+ bool seen_goal_edge = false;
+ out_edge_iterator_t oi, oi_end;
+
+ for(tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
+ forbidden_edge[*oi] = true;
+
+ for(tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
+ {
+ path_edges.clear();
+
+ edge_t e(*oi);
+ current_endpoint = target(*oi,g) == v ?
+ source(*oi,g) : target(*oi,g);
+
+ if (dfs_number[current_endpoint] < dfs_number[v] ||
+ is_embedded[e] ||
+ v == current_endpoint //self-loop
+ )
+ {
+ //Not a backedge
+ continue;
+ }
+
+ path_edges.push_back(e);
+ if (goal_edge[e])
+ {
+ return current_endpoint;
+ }
+
+ typedef face_iterator
+ <Graph, vertex_to_face_handle_map_t, edge_t, single_side>
+ walkup_itr_t;
+
+ walkup_itr_t
+ walkup_itr(current_endpoint, face_handles, first_side());
+ walkup_itr_t walkup_end;
+
+ seen_goal_edge = false;
+
+ while (true)
+ {
+
+ if (walkup_itr != walkup_end && forbidden_edge[*walkup_itr])
+ break;
+
+ while(walkup_itr != walkup_end &&
+ !goal_edge[*walkup_itr] &&
+ !forbidden_edge[*walkup_itr]
+ )
+ {
+ edge_t f(*walkup_itr);
+ forbidden_edge[f] = true;
+ path_edges.push_back(f);
+ current_endpoint =
+ source(f, g) == current_endpoint ?
+ target(f, g) :
+ source(f,g);
+ ++walkup_itr;
+ }
+
+ if (walkup_itr != walkup_end && goal_edge[*walkup_itr])
+ {
+ path_edges.push_back(*walkup_itr);
+ seen_goal_edge = true;
+ break;
+ }
+
+ walkup_itr
+ = walkup_itr_t(current_endpoint, face_handles, first_side());
+
+ }
+
+ if (seen_goal_edge)
+ break;
+
+ }
+
+ if (seen_goal_edge)
+ return current_endpoint;
+ else
+ return graph_traits<Graph>::null_vertex();
+
+ }
+
+
+
+
+
+
+
+
+ template <typename OutputIterator, typename EdgeIndexMap>
+ void extract_kuratowski_subgraph(OutputIterator o_itr, EdgeIndexMap em)
+ {
+
+ // If the main algorithm has failed to embed one of the back-edges from
+ // a vertex v, we can use the current state of the algorithm to isolate
+ // a Kuratowksi subgraph. The isolation process breaks down into five
+ // cases, A - E. The general configuration of all five cases is shown in
+ // figure 1. There is a vertex v from which the planar
+ // v embedding process could not proceed. This means that
+ // | there exists some bicomp containing three vertices
+ // ----- x,y, and z as shown such that x and y are externally
+ // | | active with respect to v (which means that there are
+ // x y two vertices x_0 and y_0 such that (1) both x_0 and
+ // | | y_0 are proper depth-first search ancestors of v and
+ // --z-- (2) there are two disjoint paths, one connecting x
+ // and x_0 and one connecting y and y_0, both consisting
+ // fig. 1 entirely of unembedded edges). Furthermore, there
+ // exists a vertex z_0 such that z is a depth-first
+ // search ancestor of z_0 and (v,z_0) is an unembedded back-edge from v.
+ // x,y and z all exist on the same bicomp, which consists entirely of
+ // embedded edges. The five subcases break down as follows, and are
+ // handled by the algorithm logically in the order A-E: First, if v is
+ // not on the same bicomp as x,y, and z, a K_3_3 can be isolated - this
+ // is case A. So, we'll assume that v is on the same bicomp as x,y, and
+ // z. If z_0 is on a different bicomp than x,y, and z, a K_3_3 can also
+ // be isolated - this is a case B - so we'll assume from now on that v
+ // is on the same bicomp as x, y, and z=z_0. In this case, one can use
+ // properties of the Boyer-Myrvold algorithm to show the existence of an
+ // "x-y path" connecting some vertex on the "left side" of the x,y,z
+ // bicomp with some vertex on the "right side" of the bicomp (where the
+ // left and right are split by a line drawn through v and z.If either of
+ // the endpoints of the x-y path is above x or y on the bicomp, a K_3_3
+ // can be isolated - this is a case C. Otherwise, both endpoints are at
+ // or below x and y on the bicomp. If there is a vertex alpha on the x-y
+ // path such that alpha is not x or y and there's a path from alpha to v
+ // that's disjoint from any of the edges on the bicomp and the x-y path,
+ // a K_3_3 can be isolated - this is a case D. Otherwise, properties of
+ // the Boyer-Myrvold algorithm can be used to show that another vertex
+ // w exists on the lower half of the bicomp such that w is externally
+ // active with respect to v. w can then be used to isolate a K_5 - this
+ // is the configuration of case E.
+
+ vertex_iterator_t vi, vi_end;
+ edge_iterator_t ei, ei_end;
+ out_edge_iterator_t oei, oei_end;
+ typename std::vector<edge_t>::iterator xi, xi_end;
+
+ // Clear the short-circuit edges - these are needed for the planar
+ // testing/embedding algorithm to run in linear time, but they'll
+ // complicate the kuratowski subgraph isolation
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ face_handles[*vi].reset_vertex_cache();
+ dfs_child_handles[*vi].reset_vertex_cache();
+ }
+
+ vertex_t v = kuratowski_v;
+ vertex_t x = kuratowski_x;
+ vertex_t y = kuratowski_y;
+
+ typedef iterator_property_map
+ <typename std::vector<bool>::iterator, EdgeIndexMap>
+ edge_to_bool_map_t;
+
+ std::vector<bool> is_in_subgraph_vector(num_edges(g), false);
+ edge_to_bool_map_t is_in_subgraph(is_in_subgraph_vector.begin(), em);
+
+ std::vector<bool> is_embedded_vector(num_edges(g), false);
+ edge_to_bool_map_t is_embedded(is_embedded_vector.begin(), em);
+
+ typename std::vector<edge_t>::iterator embedded_itr, embedded_end;
+ embedded_end = embedded_edges.end();
+ for(embedded_itr = embedded_edges.begin();
+ embedded_itr != embedded_end; ++embedded_itr
+ )
+ is_embedded[*embedded_itr] = true;
+
+ // upper_face_vertex is true for x,y, and all vertices above x and y in
+ // the bicomp
+ std::vector<bool> upper_face_vertex_vector(num_vertices(g), false);
+ vertex_to_bool_map_t upper_face_vertex
+ (upper_face_vertex_vector.begin(), vm);
+
+ std::vector<bool> lower_face_vertex_vector(num_vertices(g), false);
+ vertex_to_bool_map_t lower_face_vertex
+ (lower_face_vertex_vector.begin(), vm);
+
+ // These next few variable declarations are all things that we need
+ // to find.
+ vertex_t z;
+ vertex_t bicomp_root;
+ vertex_t w = graph_traits<Graph>::null_vertex();
+ face_handle_t w_handle;
+ face_handle_t v_dfchild_handle;
+ vertex_t first_x_y_path_endpoint = graph_traits<Graph>::null_vertex();
+ vertex_t second_x_y_path_endpoint = graph_traits<Graph>::null_vertex();
+ vertex_t w_ancestor = v;
+
+ enum case_t{NO_CASE_CHOSEN, CASE_A, CASE_B, CASE_C, CASE_D, CASE_E};
+ case_t chosen_case = NO_CASE_CHOSEN;
+
+ std::vector<edge_t> x_external_path;
+ std::vector<edge_t> y_external_path;
+ std::vector<edge_t> case_d_edges;
+
+ std::vector<edge_t> z_v_path;
+ std::vector<edge_t> w_path;
+
+ //first, use a walkup to find a path from V that starts with a
+ //backedge from V, then goes up until it hits either X or Y
+ //(but doesn't find X or Y as the root of a bicomp)
+
+ typename face_vertex_iterator<>::type
+ x_upper_itr(x, face_handles, first_side());
+ typename face_vertex_iterator<>::type
+ x_lower_itr(x, face_handles, second_side());
+ typename face_vertex_iterator<>::type face_itr, face_end;
+
+ // Don't know which path from x is the upper or lower path -
+ // we'll find out here
+ for(face_itr = x_upper_itr; face_itr != face_end; ++face_itr)
+ {
+ if (*face_itr == y)
+ {
+ std::swap(x_upper_itr, x_lower_itr);
+ break;
+ }
+ }
+
+ upper_face_vertex[x] = true;
+
+ vertex_t current_vertex = x;
+ vertex_t previous_vertex;
+ for(face_itr = x_upper_itr; face_itr != face_end; ++face_itr)
+ {
+ previous_vertex = current_vertex;
+ current_vertex = *face_itr;
+ upper_face_vertex[current_vertex] = true;
+ }
+
+ v_dfchild_handle
+ = dfs_child_handles[canonical_dfs_child[previous_vertex]];
+
+ for(face_itr = x_lower_itr; *face_itr != y; ++face_itr)
+ {
+ vertex_t current_vertex(*face_itr);
+ lower_face_vertex[current_vertex] = true;
+
+ typename face_handle_list_t::iterator roots_itr, roots_end;
+
+ if (w == graph_traits<Graph>::null_vertex()) //haven't found a w yet
+ {
+ roots_end = pertinent_roots[current_vertex]->end();
+ for(roots_itr = pertinent_roots[current_vertex]->begin();
+ roots_itr != roots_end; ++roots_itr
+ )
+ {
+ if (low_point[canonical_dfs_child[roots_itr->first_vertex()]]
+ < dfs_number[v]
+ )
+ {
+ w = current_vertex;
+ w_handle = *roots_itr;
+ break;
+ }
+ }
+ }
+
+ }
+
+ for(; face_itr != face_end; ++face_itr)
+ {
+ vertex_t current_vertex(*face_itr);
+ upper_face_vertex[current_vertex] = true;
+ bicomp_root = current_vertex;
+ }
+
+
+ typedef face_iterator
+ <Graph, vertex_to_face_handle_map_t, edge_t, single_side> walkup_itr_t;
+
+ std::vector<bool> outer_face_edge_vector(num_edges(g), false);
+ edge_to_bool_map_t outer_face_edge(outer_face_edge_vector.begin(), em);
+
+ walkup_itr_t walkup_end;
+ for(walkup_itr_t walkup_itr(x, face_handles, first_side());
+ walkup_itr != walkup_end; ++walkup_itr
+ )
+ {
+ outer_face_edge[*walkup_itr] = true;
+ is_in_subgraph[*walkup_itr] = true;
+ }
+
+ for(walkup_itr_t walkup_itr(x, face_handles, second_side());
+ walkup_itr != walkup_end; ++walkup_itr
+ )
+ {
+ outer_face_edge[*walkup_itr] = true;
+ is_in_subgraph[*walkup_itr] = true;
+ }
+
+ std::vector<bool> forbidden_edge_vector(num_edges(g), false);
+ edge_to_bool_map_t forbidden_edge(forbidden_edge_vector.begin(), em);
+
+ std::vector<bool> goal_edge_vector(num_edges(g), false);
+ edge_to_bool_map_t goal_edge(goal_edge_vector.begin(), em);
+
+
+ //Find external path to x and to y
+
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ {
+ edge_t e(*ei);
+ goal_edge[e]
+ = !outer_face_edge[e] && (source(e,g) == x || target(e,g) == x);
+ forbidden_edge[*ei] = outer_face_edge[*ei];
+ }
+
+ vertex_t x_ancestor = v;
+ vertex_t x_endpoint = graph_traits<Graph>::null_vertex();
+
+ while(x_endpoint == graph_traits<Graph>::null_vertex())
+ {
+ x_ancestor = dfs_parent[x_ancestor];
+ x_endpoint = kuratowski_walkup(x_ancestor,
+ forbidden_edge,
+ goal_edge,
+ is_embedded,
+ x_external_path
+ );
+
+ }
+
+
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ {
+ edge_t e(*ei);
+ goal_edge[e]
+ = !outer_face_edge[e] && (source(e,g) == y || target(e,g) == y);
+ forbidden_edge[*ei] = outer_face_edge[*ei];
+ }
+
+ vertex_t y_ancestor = v;
+ vertex_t y_endpoint = graph_traits<Graph>::null_vertex();
+
+ while(y_endpoint == graph_traits<Graph>::null_vertex())
+ {
+ y_ancestor = dfs_parent[y_ancestor];
+ y_endpoint = kuratowski_walkup(y_ancestor,
+ forbidden_edge,
+ goal_edge,
+ is_embedded,
+ y_external_path
+ );
+
+ }
+
+
+ vertex_t parent, child;
+
+ //If v isn't on the same bicomp as x and y, it's a case A
+ if (bicomp_root != v)
+ {
+ chosen_case = CASE_A;
+
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ if (lower_face_vertex[*vi])
+ for(tie(oei,oei_end) = out_edges(*vi,g); oei != oei_end; ++oei)
+ if(!outer_face_edge[*oei])
+ goal_edge[*oei] = true;
+
+ for(tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ forbidden_edge[*ei] = outer_face_edge[*ei];
+
+ z = kuratowski_walkup
+ (v, forbidden_edge, goal_edge, is_embedded, z_v_path);
+
+ }
+ else if (w != graph_traits<Graph>::null_vertex())
+ {
+ chosen_case = CASE_B;
+
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ {
+ edge_t e(*ei);
+ goal_edge[e] = false;
+ forbidden_edge[e] = outer_face_edge[e];
+ }
+
+ goal_edge[w_handle.first_edge()] = true;
+ goal_edge[w_handle.second_edge()] = true;
+
+ z = kuratowski_walkup(v,
+ forbidden_edge,
+ goal_edge,
+ is_embedded,
+ z_v_path
+ );
+
+
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ {
+ forbidden_edge[*ei] = outer_face_edge[*ei];
+ }
+
+ typename std::vector<edge_t>::iterator pi, pi_end;
+ pi_end = z_v_path.end();
+ for(pi = z_v_path.begin(); pi != pi_end; ++pi)
+ {
+ goal_edge[*pi] = true;
+ }
+
+ w_ancestor = v;
+ vertex_t w_endpoint = graph_traits<Graph>::null_vertex();
+
+ while(w_endpoint == graph_traits<Graph>::null_vertex())
+ {
+ w_ancestor = dfs_parent[w_ancestor];
+ w_endpoint = kuratowski_walkup(w_ancestor,
+ forbidden_edge,
+ goal_edge,
+ is_embedded,
+ w_path
+ );
+
+ }
+
+ // We really want both the w walkup and the z walkup to finish on
+ // exactly the same edge, but for convenience (since we don't have
+ // control over which side of a bicomp a walkup moves up) we've
+ // defined the walkup to either end at w_handle.first_edge() or
+ // w_handle.second_edge(). If both walkups ended at different edges,
+ // we'll do a little surgery on the w walkup path to make it follow
+ // the other side of the final bicomp.
+
+ if ((w_path.back() == w_handle.first_edge() &&
+ z_v_path.back() == w_handle.second_edge())
+ ||
+ (w_path.back() == w_handle.second_edge() &&
+ z_v_path.back() == w_handle.first_edge())
+ )
+ {
+ walkup_itr_t wi, wi_end;
+ edge_t final_edge = w_path.back();
+ vertex_t anchor
+ = source(final_edge, g) == w_handle.get_anchor() ?
+ target(final_edge, g) : source(final_edge, g);
+ if (face_handles[anchor].first_edge() == final_edge)
+ wi = walkup_itr_t(anchor, face_handles, second_side());
+ else
+ wi = walkup_itr_t(anchor, face_handles, first_side());
+
+ w_path.pop_back();
+
+ for(; wi != wi_end; ++wi)
+ {
+ edge_t e(*wi);
+ if (w_path.back() == e)
+ w_path.pop_back();
+ else
+ w_path.push_back(e);
+ }
+ }
+
+
+ }
+ else
+ {
+
+ //We need to find a valid z, since the x-y path re-defines the lower
+ //face, and the z we found earlier may now be on the upper face.
+
+ chosen_case = CASE_E;
+
+
+ // The z we've used so far is just an externally active vertex on the
+ // lower face path, but may not be the z we need for a case C, D, or
+ // E subgraph. the z we need now is any externally active vertex on
+ // the lower face path with both old_face_handles edges on the outer
+ // face. Since we know an x-y path exists, such a z must also exist.
+
+ //TODO: find this z in the first place.
+
+ //find the new z
+
+ for(face_itr = x_lower_itr; *face_itr != y; ++face_itr)
+ {
+ vertex_t possible_z(*face_itr);
+ if (pertinent(possible_z,v) &&
+ outer_face_edge[face_handles[possible_z].old_first_edge()] &&
+ outer_face_edge[face_handles[possible_z].old_second_edge()]
+ )
+ {
+ z = possible_z;
+ break;
+ }
+ }
+
+ //find x-y path, and a w if one exists.
+
+ if (externally_active(z,v))
+ w = z;
+
+
+ typedef typename face_edge_iterator
+ <single_side, previous_iteration>::type old_face_iterator_t;
+
+ old_face_iterator_t
+ first_old_face_itr(z, face_handles, first_side());
+ old_face_iterator_t
+ second_old_face_itr(z, face_handles, second_side());
+ old_face_iterator_t old_face_itr, old_face_end;
+
+ std::vector<old_face_iterator_t> old_face_iterators;
+ old_face_iterators.push_back(first_old_face_itr);
+ old_face_iterators.push_back(second_old_face_itr);
+
+ std::vector<bool> x_y_path_vertex_vector(num_vertices(g), false);
+ vertex_to_bool_map_t x_y_path_vertex
+ (x_y_path_vertex_vector.begin(), vm);
+
+ typename std::vector<old_face_iterator_t>::iterator
+ of_itr, of_itr_end;
+ of_itr_end = old_face_iterators.end();
+ for(of_itr = old_face_iterators.begin();
+ of_itr != of_itr_end; ++of_itr
+ )
+ {
+
+ old_face_itr = *of_itr;
+
+ vertex_t previous_vertex;
+ bool seen_x_or_y = false;
+ vertex_t current_vertex = z;
+ for(; old_face_itr != old_face_end; ++old_face_itr)
+ {
+ edge_t e(*old_face_itr);
+ previous_vertex = current_vertex;
+ current_vertex = source(e,g) == current_vertex ?
+ target(e,g) : source(e,g);
+
+ if (current_vertex == x || current_vertex == y)
+ seen_x_or_y = true;
+
+ if (w == graph_traits<Graph>::null_vertex() &&
+ externally_active(current_vertex,v) &&
+ outer_face_edge[e] &&
+ outer_face_edge[*next(old_face_itr)] &&
+ !seen_x_or_y
+ )
+ {
+ w = current_vertex;
+ }
+
+ if (!outer_face_edge[e])
+ {
+ if (!upper_face_vertex[current_vertex] &&
+ !lower_face_vertex[current_vertex]
+ )
+ {
+ x_y_path_vertex[current_vertex] = true;
+ }
+
+ is_in_subgraph[e] = true;
+ if (upper_face_vertex[source(e,g)] ||
+ lower_face_vertex[source(e,g)]
+ )
+ {
+ if (first_x_y_path_endpoint ==
+ graph_traits<Graph>::null_vertex()
+ )
+ first_x_y_path_endpoint = source(e,g);
+ else
+ second_x_y_path_endpoint = source(e,g);
+ }
+ if (upper_face_vertex[target(e,g)] ||
+ lower_face_vertex[target(e,g)]
+ )
+ {
+ if (first_x_y_path_endpoint ==
+ graph_traits<Graph>::null_vertex()
+ )
+ first_x_y_path_endpoint = target(e,g);
+ else
+ second_x_y_path_endpoint = target(e,g);
+ }
+
+
+ }
+ else if (previous_vertex == x || previous_vertex == y)
+ {
+ chosen_case = CASE_C;
+ }
+
+ }
+
+ }
+
+ // Look for a case D - one of v's embedded edges will connect to the
+ // x-y path along an inner face path.
+
+ //First, get a list of all of v's embedded child edges
+
+ out_edge_iterator_t v_edge_itr, v_edge_end;
+ for(tie(v_edge_itr,v_edge_end) = out_edges(v,g);
+ v_edge_itr != v_edge_end; ++v_edge_itr
+ )
+ {
+ edge_t embedded_edge(*v_edge_itr);
+
+ if (!is_embedded[embedded_edge] ||
+ embedded_edge == dfs_parent_edge[v]
+ )
+ continue;
+
+ case_d_edges.push_back(embedded_edge);
+
+ vertex_t current_vertex
+ = source(embedded_edge,g) == v ?
+ target(embedded_edge,g) : source(embedded_edge,g);
+
+ typename face_edge_iterator<>::type
+ internal_face_itr, internal_face_end;
+ if (face_handles[current_vertex].first_vertex() == v)
+ {
+ internal_face_itr = typename face_edge_iterator<>::type
+ (current_vertex, face_handles, second_side());
+ }
+ else
+ {
+ internal_face_itr = typename face_edge_iterator<>::type
+ (current_vertex, face_handles, first_side());
+ }
+
+ while(internal_face_itr != internal_face_end &&
+ !outer_face_edge[*internal_face_itr] &&
+ !x_y_path_vertex[current_vertex]
+ )
+ {
+ edge_t e(*internal_face_itr);
+ case_d_edges.push_back(e);
+ current_vertex =
+ source(e,g) == current_vertex ? target(e,g) : source(e,g);
+ ++internal_face_itr;
+ }
+
+ if (x_y_path_vertex[current_vertex])
+ {
+ chosen_case = CASE_D;
+ break;
+ }
+ else
+ {
+ case_d_edges.clear();
+ }
+
+ }
+
+
+ }
+
+
+
+
+ if (chosen_case != CASE_B && chosen_case != CASE_A)
+ {
+
+ //Finding z and w.
+
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ {
+ edge_t e(*ei);
+ goal_edge[e] = !outer_face_edge[e] &&
+ (source(e,g) == z || target(e,g) == z);
+ forbidden_edge[e] = outer_face_edge[e];
+ }
+
+ kuratowski_walkup(v,
+ forbidden_edge,
+ goal_edge,
+ is_embedded,
+ z_v_path
+ );
+
+ if (chosen_case == CASE_E)
+ {
+
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ {
+ forbidden_edge[*ei] = outer_face_edge[*ei];
+ goal_edge[*ei] = !outer_face_edge[*ei] &&
+ (source(*ei,g) == w || target(*ei,g) == w);
+ }
+
+ for(tie(oei, oei_end) = out_edges(w,g); oei != oei_end; ++oei)
+ {
+ if (!outer_face_edge[*oei])
+ goal_edge[*oei] = true;
+ }
+
+ typename std::vector<edge_t>::iterator pi, pi_end;
+ pi_end = z_v_path.end();
+ for(pi = z_v_path.begin(); pi != pi_end; ++pi)
+ {
+ goal_edge[*pi] = true;
+ }
+
+ w_ancestor = v;
+ vertex_t w_endpoint = graph_traits<Graph>::null_vertex();
+
+ while(w_endpoint == graph_traits<Graph>::null_vertex())
+ {
+ w_ancestor = dfs_parent[w_ancestor];
+ w_endpoint = kuratowski_walkup(w_ancestor,
+ forbidden_edge,
+ goal_edge,
+ is_embedded,
+ w_path
+ );
+
+ }
+
+ }
+
+
+ }
+
+
+ //We're done isolating the Kuratowski subgraph at this point -
+ //but there's still some cleaning up to do.
+
+ //Update is_in_subgraph with the paths we just found
+
+ xi_end = x_external_path.end();
+ for(xi = x_external_path.begin(); xi != xi_end; ++xi)
+ is_in_subgraph[*xi] = true;
+
+ xi_end = y_external_path.end();
+ for(xi = y_external_path.begin(); xi != xi_end; ++xi)
+ is_in_subgraph[*xi] = true;
+
+ xi_end = z_v_path.end();
+ for(xi = z_v_path.begin(); xi != xi_end; ++xi)
+ is_in_subgraph[*xi] = true;
+
+ xi_end = case_d_edges.end();
+ for(xi = case_d_edges.begin(); xi != xi_end; ++xi)
+ is_in_subgraph[*xi] = true;
+
+ xi_end = w_path.end();
+ for(xi = w_path.begin(); xi != xi_end; ++xi)
+ is_in_subgraph[*xi] = true;
+
+ child = bicomp_root;
+ parent = dfs_parent[child];
+ while(child != parent)
+ {
+ is_in_subgraph[dfs_parent_edge[child]] = true;
+ tie(parent, child) = std::make_pair( dfs_parent[parent], parent );
+ }
+
+
+
+
+ // At this point, we've already isolated the Kuratowski subgraph and
+ // collected all of the edges that compose it in the is_in_subgraph
+ // property map. But we want the verification of such a subgraph to be
+ // a deterministic process, and we can simplify the function
+ // is_kuratowski_subgraph by cleaning up some edges here.
+
+ if (chosen_case == CASE_B)
+ {
+ is_in_subgraph[dfs_parent_edge[v]] = false;
+ }
+ else if (chosen_case == CASE_C)
+ {
+ // In a case C subgraph, at least one of the x-y path endpoints
+ // (call it alpha) is above either x or y on the outer face. The
+ // other endpoint may be attached at x or y OR above OR below. In
+ // any of these three cases, we can form a K_3_3 by removing the
+ // edge attached to v on the outer face that is NOT on the path to
+ // alpha.
+
+ typename face_vertex_iterator<single_side, follow_visitor>::type
+ face_itr, face_end;
+ if (face_handles[v_dfchild_handle.first_vertex()].first_edge() ==
+ v_dfchild_handle.first_edge()
+ )
+ {
+ face_itr = typename face_vertex_iterator
+ <single_side, follow_visitor>::type
+ (v_dfchild_handle.first_vertex(), face_handles, second_side());
+ }
+ else
+ {
+ face_itr = typename face_vertex_iterator
+ <single_side, follow_visitor>::type
+ (v_dfchild_handle.first_vertex(), face_handles, first_side());
+ }
+
+ for(; true; ++face_itr)
+ {
+ vertex_t current_vertex(*face_itr);
+ if (current_vertex == x || current_vertex == y)
+ {
+ is_in_subgraph[v_dfchild_handle.first_edge()] = false;
+ break;
+ }
+ else if (current_vertex == first_x_y_path_endpoint ||
+ current_vertex == second_x_y_path_endpoint)
+ {
+ is_in_subgraph[v_dfchild_handle.second_edge()] = false;
+ break;
+ }
+ }
+
+ }
+ else if (chosen_case == CASE_D)
+ {
+ // Need to remove both of the edges adjacent to v on the outer face.
+ // remove the connecting edges from v to bicomp, then
+ // is_kuratowski_subgraph will shrink vertices of degree 1
+ // automatically...
+
+ is_in_subgraph[v_dfchild_handle.first_edge()] = false;
+ is_in_subgraph[v_dfchild_handle.second_edge()] = false;
+
+ }
+ else if (chosen_case == CASE_E)
+ {
+ // Similarly to case C, if the endpoints of the x-y path are both
+ // below x and y, we should remove an edge to allow the subgraph to
+ // contract to a K_3_3.
+
+
+ if ((first_x_y_path_endpoint != x && first_x_y_path_endpoint != y) ||
+ (second_x_y_path_endpoint != x && second_x_y_path_endpoint != y)
+ )
+ {
+ is_in_subgraph[dfs_parent_edge[v]] = false;
+
+ vertex_t deletion_endpoint, other_endpoint;
+ if (lower_face_vertex[first_x_y_path_endpoint])
+ {
+ deletion_endpoint = second_x_y_path_endpoint;
+ other_endpoint = first_x_y_path_endpoint;
+ }
+ else
+ {
+ deletion_endpoint = first_x_y_path_endpoint;
+ other_endpoint = second_x_y_path_endpoint;
+ }
+
+ typename face_edge_iterator<>::type face_itr, face_end;
+
+ bool found_other_endpoint = false;
+ for(face_itr = typename face_edge_iterator<>::type
+ (deletion_endpoint, face_handles, first_side());
+ face_itr != face_end; ++face_itr
+ )
+ {
+ edge_t e(*face_itr);
+ if (source(e,g) == other_endpoint ||
+ target(e,g) == other_endpoint
+ )
+ {
+ found_other_endpoint = true;
+ break;
+ }
+ }
+
+ if (found_other_endpoint)
+ {
+ is_in_subgraph[face_handles[deletion_endpoint].first_edge()]
+ = false;
+ }
+ else
+ {
+ is_in_subgraph[face_handles[deletion_endpoint].second_edge()]
+ = false;
+ }
+ }
+
+ }
+
+
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ if (is_in_subgraph[*ei])
+ *o_itr = *ei;
+
+ }
+
+
+
+ template<typename EdgePermutation>
+ void make_edge_permutation(EdgePermutation perm)
+ {
+ vertex_iterator_t vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ vertex_t v(*vi);
+ perm[v].clear();
+ face_handles[v].get_list(std::back_inserter(perm[v]));
+ }
+ }
+
+
+ private:
+
+ const Graph& g;
+ VertexIndexMap vm;
+
+ vertex_t kuratowski_v;
+ vertex_t kuratowski_x;
+ vertex_t kuratowski_y;
+
+ vertex_list_t garbage; // we delete items from linked lists by
+ // splicing them into garbage
+
+ //only need these two for kuratowski subgraph isolation
+ std::vector<vertex_t> current_merge_points;
+ std::vector<edge_t> embedded_edges;
+
+ //property map storage
+ std::vector<v_size_t> low_point_vector;
+ std::vector<vertex_t> dfs_parent_vector;
+ std::vector<v_size_t> dfs_number_vector;
+ std::vector<v_size_t> least_ancestor_vector;
+ std::vector<face_handle_list_ptr_t> pertinent_roots_vector;
+ std::vector<v_size_t> backedge_flag_vector;
+ std::vector<v_size_t> visited_vector;
+ std::vector< face_handle_t > face_handles_vector;
+ std::vector< face_handle_t > dfs_child_handles_vector;
+ std::vector< vertex_list_ptr_t > separated_dfs_child_list_vector;
+ std::vector< typename vertex_list_t::iterator >
+ separated_node_in_parent_list_vector;
+ std::vector<vertex_t> canonical_dfs_child_vector;
+ std::vector<bool> flipped_vector;
+ std::vector<edge_vector_t> backedges_vector;
+ edge_vector_t self_loops;
+ std::vector<edge_t> dfs_parent_edge_vector;
+ vertex_vector_t vertices_by_dfs_num;
+
+ //property maps
+ vertex_to_v_size_map_t low_point;
+ vertex_to_vertex_map_t dfs_parent;
+ vertex_to_v_size_map_t dfs_number;
+ vertex_to_v_size_map_t least_ancestor;
+ vertex_to_face_handle_list_ptr_map_t pertinent_roots;
+ vertex_to_v_size_map_t backedge_flag;
+ vertex_to_v_size_map_t visited;
+ vertex_to_face_handle_map_t face_handles;
+ vertex_to_face_handle_map_t dfs_child_handles;
+ vertex_to_vertex_list_ptr_map_t separated_dfs_child_list;
+ vertex_to_separated_node_map_t separated_node_in_parent_list;
+ vertex_to_vertex_map_t canonical_dfs_child;
+ vertex_to_bool_map_t flipped;
+ vertex_to_edge_vector_map_t backedges;
+ vertex_to_edge_map_t dfs_parent_edge; //only need for kuratowski
+
+ merge_stack_t merge_stack;
+
+ };
+
+
+} //namespace boost
+
+#endif //__BOYER_MYRVOLD_IMPL_HPP__

Added: trunk/boost/graph/planar_detail/bucket_sort.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/planar_detail/bucket_sort.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,144 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#ifndef __BUCKET_SORT_HPP__
+#define __BUCKET_SORT_HPP__
+
+#include <vector>
+#include <algorithm>
+#include <boost/property_map.hpp>
+
+
+
+namespace boost
+{
+
+
+ template <typename ItemToRankMap>
+ struct rank_comparison
+ {
+ rank_comparison(ItemToRankMap arg_itrm) : itrm(arg_itrm) {}
+
+ template <typename Item>
+ bool operator() (Item x, Item y) const
+ {
+ return get(itrm, x) < get(itrm, y);
+ }
+
+ private:
+ ItemToRankMap itrm;
+
+ };
+
+
+ template <typename TupleType,
+ int N,
+ typename PropertyMapWrapper = identity_property_map>
+ struct property_map_tuple_adaptor :
+ public put_get_helper< typename PropertyMapWrapper::value_type,
+ property_map_tuple_adaptor
+ <TupleType, N, PropertyMapWrapper>
+ >
+ {
+ typedef typename PropertyMapWrapper::reference reference;
+ typedef typename PropertyMapWrapper::value_type value_type;
+ typedef TupleType key_type;
+ typedef readable_property_map_tag category;
+
+ property_map_tuple_adaptor() {}
+
+ property_map_tuple_adaptor(PropertyMapWrapper wrapper_map) :
+ m_wrapper_map(wrapper_map)
+ {}
+
+ inline value_type operator[](const key_type& x) const
+ {
+ return get(m_wrapper_map, get<n>(x));
+ }
+
+ const static int n = N;
+ PropertyMapWrapper m_wrapper_map;
+
+ };
+
+
+
+
+ // This function sorts a sequence of n items by their ranks in linear time,
+ // given that all ranks are in the range [0, range). This sort is stable.
+ template <typename ForwardIterator,
+ typename ItemToRankMap,
+ typename SizeType>
+ void bucket_sort(ForwardIterator begin,
+ ForwardIterator end,
+ ItemToRankMap rank,
+ SizeType range = 0)
+ {
+#ifdef BOOST_GRAPH_PREFER_STD_LIB
+ std::stable_sort(begin, end, rank_comparison<ItemToRankMap>(rank));
+#else
+ typedef std::vector
+ < typename boost::property_traits<ItemToRankMap>::key_type >
+ vector_of_values_t;
+ typedef std::vector< vector_of_values_t > vector_of_vectors_t;
+
+ if (!range)
+ {
+ rank_comparison<ItemToRankMap> cmp(rank);
+ ForwardIterator max_by_rank = std::max_element(begin, end, cmp);
+ if (max_by_rank == end)
+ return;
+ range = get(rank, *max_by_rank) + 1;
+ }
+
+ vector_of_vectors_t temp_values(range);
+
+ for(ForwardIterator itr = begin; itr != end; ++itr)
+ {
+ temp_values[get(rank, *itr)].push_back(*itr);
+ }
+
+ ForwardIterator orig_seq_itr = begin;
+ typename vector_of_vectors_t::iterator itr_end = temp_values.end();
+ for(typename vector_of_vectors_t::iterator itr = temp_values.begin();
+ itr != itr_end; ++itr
+ )
+ {
+ typename vector_of_values_t::iterator jtr_end = itr->end();
+ for(typename vector_of_values_t::iterator jtr = itr->begin();
+ jtr != jtr_end; ++jtr
+ )
+ {
+ *orig_seq_itr = *jtr;
+ ++orig_seq_itr;
+ }
+ }
+#endif
+ }
+
+
+ template <typename ForwardIterator, typename ItemToRankMap>
+ void bucket_sort(ForwardIterator begin,
+ ForwardIterator end,
+ ItemToRankMap rank)
+ {
+ bucket_sort(begin, end, rank, 0);
+ }
+
+ template <typename ForwardIterator>
+ void bucket_sort(ForwardIterator begin,
+ ForwardIterator end
+ )
+ {
+ bucket_sort(begin, end, identity_property_map());
+ }
+
+
+} //namespace boost
+
+
+#endif //__BUCKET_SORT_HPP__

Added: trunk/boost/graph/planar_detail/face_handles.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/planar_detail/face_handles.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,497 @@
+//=======================================================================
+// Copyright (c) Aaron Windsor 2007
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#ifndef __FACE_HANDLES_HPP__
+#define __FACE_HANDLES_HPP__
+
+
+#include <list>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/shared_ptr.hpp>
+
+
+// A "face handle" is an optimization meant to serve two purposes in
+// the implementation of the Boyer-Myrvold planarity test: (1) it holds
+// the partial planar embedding of a particular vertex as it's being
+// constructed, and (2) it allows for efficient traversal around the
+// outer face of the partial embedding at that particular vertex. A face
+// handle is lightweight, just a shared pointer to the actual implementation,
+// since it is passed around/copied liberally in the algorithm. It consists
+// of an "anchor" (the actual vertex it's associated with) as well as a
+// sequence of edges. The functions first_vertex/second_vertex and
+// first_edge/second_edge allow fast access to the beginning and end of the
+// stored sequence, which allows one to traverse the outer face of the partial
+// planar embedding as it's being created.
+//
+// There are some policies below that define the contents of the face handles:
+// in the case no embedding is needed (for example, if one just wants to use
+// the Boyer-Myrvold algorithm as a true/false test for planarity, the
+// no_embedding class can be passed as the StoreEmbedding policy. Otherwise,
+// either std_list (which uses as std::list) or recursive_lazy_list can be
+// passed as this policy. recursive_lazy_list has the best theoretical
+// performance (O(n) for a sequence of interleaved concatenations and reversals
+// of the underlying list), but I've noticed little difference between std_list
+// and recursive_lazy_list in my tests, even though using std_list changes
+// the worst-case complexity of the planarity test to O(n^2)
+//
+// Another policy is StoreOldHandlesPolicy, which specifies whether or not
+// to keep a record of the previous first/second vertex/edge - this is needed
+// if a Kuratowski subgraph needs to be isolated.
+
+
+namespace boost { namespace graph { namespace detail {
+
+
+ //face handle policies
+
+ //EmbeddingStorage policy
+ struct store_embedding {};
+ struct recursive_lazy_list : public store_embedding {};
+ struct std_list : public store_embedding {};
+ struct no_embedding {};
+
+ //StoreOldHandlesPolicy
+ struct store_old_handles {};
+ struct no_old_handles {};
+
+
+
+
+ template<typename DataType>
+ struct lazy_list_node
+ {
+ typedef shared_ptr< lazy_list_node<DataType> > ptr_t;
+
+ lazy_list_node(const DataType& data) :
+ m_reversed(false),
+ m_data(data),
+ m_has_data(true)
+ {}
+
+ lazy_list_node(ptr_t left_child, ptr_t right_child) :
+ m_reversed(false),
+ m_has_data(false),
+ m_left_child(left_child),
+ m_right_child(right_child)
+ {}
+
+ bool m_reversed;
+ DataType m_data;
+ bool m_has_data;
+ shared_ptr<lazy_list_node> m_left_child;
+ shared_ptr<lazy_list_node> m_right_child;
+ };
+
+
+
+ template <typename StoreOldHandlesPolicy, typename Vertex, typename Edge>
+ struct old_handles_storage;
+
+ template <typename Vertex, typename Edge>
+ struct old_handles_storage<store_old_handles, Vertex, Edge>
+ {
+ Vertex first_vertex;
+ Vertex second_vertex;
+ Edge first_edge;
+ Edge second_edge;
+ };
+
+ template <typename Vertex, typename Edge>
+ struct old_handles_storage<no_old_handles, Vertex, Edge>
+ {};
+
+
+
+
+
+
+ template <typename StoreEmbeddingPolicy, typename Edge>
+ struct edge_list_storage;
+
+
+
+
+
+ template <typename Edge>
+ struct edge_list_storage<no_embedding, Edge>
+ {
+ typedef void type;
+
+ void push_back(Edge) {}
+ void push_front(Edge) {}
+ void reverse() {}
+ void concat_front(edge_list_storage<no_embedding,Edge>) {}
+ void concat_back(edge_list_storage<no_embedding,Edge>) {}
+ template <typename OutputIterator>
+ void get_list(OutputIterator) {}
+ };
+
+
+
+
+
+ template <typename Edge>
+ struct edge_list_storage<recursive_lazy_list, Edge>
+ {
+ typedef lazy_list_node<Edge> node_type;
+ typedef shared_ptr< node_type > type;
+ type value;
+
+ void push_back(Edge e)
+ {
+ type new_node(new node_type(e));
+ value = type(new node_type(value, new_node));
+ }
+
+ void push_front(Edge e)
+ {
+ type new_node(new node_type(e));
+ value = type(new node_type(new_node, value));
+ }
+
+ void reverse()
+ {
+ value->m_reversed = !value->m_reversed;
+ }
+
+ void concat_front(edge_list_storage<recursive_lazy_list, Edge> other)
+ {
+ value = type(new node_type(other.value, value));
+ }
+
+ void concat_back(edge_list_storage<recursive_lazy_list, Edge> other)
+ {
+ value = type(new node_type(value, other.value));
+ }
+
+ template <typename OutputIterator>
+ void get_list(OutputIterator out)
+ {
+ get_list_helper(out, value);
+ }
+
+ private:
+
+ template <typename OutputIterator>
+ void get_list_helper(OutputIterator o_itr,
+ type root,
+ bool flipped = false
+ )
+ {
+ if (!root)
+ return;
+
+ if (root->m_has_data)
+ *o_itr = root->m_data;
+
+ if ((flipped && !root->m_reversed) ||
+ (!flipped && root->m_reversed)
+ )
+ {
+ get_list_helper(o_itr, root->m_right_child, true);
+ get_list_helper(o_itr, root->m_left_child, true);
+ }
+ else
+ {
+ get_list_helper(o_itr, root->m_left_child, false);
+ get_list_helper(o_itr, root->m_right_child, false);
+ }
+
+ }
+
+ };
+
+
+
+
+
+ template <typename Edge>
+ struct edge_list_storage<std_list, Edge>
+ {
+ typedef std::list<Edge> type;
+ type value;
+
+ void push_back(Edge e)
+ {
+ value.push_back(e);
+ }
+
+ void push_front(Edge e)
+ {
+ value.push_front(e);
+ }
+
+ void reverse()
+ {
+ value.reverse();
+ }
+
+ void concat_front(edge_list_storage<std_list,Edge> other)
+ {
+ value.splice(value.begin(), other.value);
+ }
+
+ void concat_back(edge_list_storage<std_list, Edge> other)
+ {
+ value.splice(value.end(), other.value);
+ }
+
+ template <typename OutputIterator>
+ void get_list(OutputIterator out)
+ {
+ std::copy(value.begin(), value.end(), out);
+ }
+
+ };
+
+
+
+
+
+
+
+ template<typename Graph,
+ typename StoreOldHandlesPolicy,
+ typename StoreEmbeddingPolicy
+ >
+ struct face_handle_impl
+ {
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename edge_list_storage<StoreEmbeddingPolicy, edge_t>::type
+ edge_list_storage_t;
+
+
+ face_handle_impl() :
+ cached_first_vertex(graph_traits<Graph>::null_vertex()),
+ cached_second_vertex(graph_traits<Graph>::null_vertex()),
+ true_first_vertex(graph_traits<Graph>::null_vertex()),
+ true_second_vertex(graph_traits<Graph>::null_vertex()),
+ anchor(graph_traits<Graph>::null_vertex())
+ {
+ initialize_old_vertices_dispatch(StoreOldHandlesPolicy());
+ }
+
+ void initialize_old_vertices_dispatch(store_old_handles)
+ {
+ old_handles.first_vertex = graph_traits<Graph>::null_vertex();
+ old_handles.second_vertex = graph_traits<Graph>::null_vertex();
+ }
+
+ void initialize_old_vertices_dispatch(no_old_handles) {}
+
+ vertex_t cached_first_vertex;
+ vertex_t cached_second_vertex;
+ vertex_t true_first_vertex;
+ vertex_t true_second_vertex;
+ vertex_t anchor;
+ edge_t cached_first_edge;
+ edge_t cached_second_edge;
+
+ edge_list_storage<StoreEmbeddingPolicy, edge_t> edge_list;
+ old_handles_storage<StoreOldHandlesPolicy, vertex_t, edge_t> old_handles;
+
+ };
+
+
+
+
+
+
+
+
+
+
+
+ template <typename Graph,
+ typename StoreOldHandlesPolicy = store_old_handles,
+ typename StoreEmbeddingPolicy = recursive_lazy_list
+ >
+ class face_handle
+ {
+ public:
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef face_handle_impl
+ <Graph, StoreOldHandlesPolicy, StoreEmbeddingPolicy> impl_t;
+ typedef face_handle
+ <Graph, StoreOldHandlesPolicy, StoreEmbeddingPolicy> self_t;
+
+ face_handle(vertex_t anchor = graph_traits<Graph>::null_vertex()) :
+ pimpl(new impl_t())
+ {
+ pimpl->anchor = anchor;
+ }
+
+ face_handle(vertex_t anchor, edge_t initial_edge, const Graph& g) :
+ pimpl(new impl_t())
+ {
+ vertex_t s(source(initial_edge,g));
+ vertex_t t(target(initial_edge,g));
+ vertex_t other_vertex = s == anchor ? t : s;
+ pimpl->anchor = anchor;
+ pimpl->cached_first_edge = initial_edge;
+ pimpl->cached_second_edge = initial_edge;
+ pimpl->cached_first_vertex = other_vertex;
+ pimpl->cached_second_vertex = other_vertex;
+ pimpl->true_first_vertex = other_vertex;
+ pimpl->true_second_vertex = other_vertex;
+
+ pimpl->edge_list.push_back(initial_edge);
+ store_old_face_handles_dispatch(StoreOldHandlesPolicy());
+ }
+
+ //default copy construction, assignment okay.
+
+ void push_first(edge_t e, const Graph& g)
+ {
+ pimpl->edge_list.push_front(e);
+ pimpl->cached_first_vertex = pimpl->true_first_vertex =
+ source(e, g) == pimpl->anchor ? target(e,g) : source(e,g);
+ pimpl->cached_first_edge = e;
+ }
+
+ void push_second(edge_t e, const Graph& g)
+ {
+ pimpl->edge_list.push_back(e);
+ pimpl->cached_second_vertex = pimpl->true_second_vertex =
+ source(e, g) == pimpl->anchor ? target(e,g) : source(e,g);
+ pimpl->cached_second_edge = e;
+ }
+
+ inline void store_old_face_handles()
+ {
+ store_old_face_handles_dispatch(StoreOldHandlesPolicy());
+ }
+
+ inline vertex_t first_vertex() const
+ {
+ return pimpl->cached_first_vertex;
+ }
+
+ inline vertex_t second_vertex() const
+ {
+ return pimpl->cached_second_vertex;
+ }
+
+ inline vertex_t true_first_vertex() const
+ {
+ return pimpl->true_first_vertex;
+ }
+
+ inline vertex_t true_second_vertex() const
+ {
+ return pimpl->true_second_vertex;
+ }
+
+ inline vertex_t old_first_vertex() const
+ {
+ return pimpl->old_handles.first_vertex;
+ }
+
+ inline vertex_t old_second_vertex() const
+ {
+ return pimpl->old_handles.second_vertex;
+ }
+
+ inline edge_t old_first_edge() const
+ {
+ return pimpl->old_handles.first_edge;
+ }
+
+ inline edge_t old_second_edge() const
+ {
+ return pimpl->old_handles.second_edge;
+ }
+
+ inline edge_t first_edge() const
+ {
+ return pimpl->cached_first_edge;
+ }
+
+ inline edge_t second_edge() const
+ {
+ return pimpl->cached_second_edge;
+ }
+
+ inline vertex_t get_anchor() const
+ {
+ return pimpl->anchor;
+ }
+
+ void glue_first_to_second
+ (face_handle<Graph,StoreOldHandlesPolicy,StoreEmbeddingPolicy>& bottom)
+ {
+ pimpl->edge_list.concat_front(bottom.pimpl->edge_list);
+ pimpl->true_first_vertex = bottom.pimpl->true_first_vertex;
+ pimpl->cached_first_vertex = bottom.pimpl->cached_first_vertex;
+ pimpl->cached_first_edge = bottom.pimpl->cached_first_edge;
+ }
+
+ void glue_second_to_first
+ (face_handle<Graph,StoreOldHandlesPolicy,StoreEmbeddingPolicy>& bottom)
+ {
+ pimpl->edge_list.concat_back(bottom.pimpl->edge_list);
+ pimpl->true_second_vertex = bottom.pimpl->true_second_vertex;
+ pimpl->cached_second_vertex = bottom.pimpl->cached_second_vertex;
+ pimpl->cached_second_edge = bottom.pimpl->cached_second_edge;
+ }
+
+ void flip()
+ {
+ pimpl->edge_list.reverse();
+ std::swap(pimpl->true_first_vertex, pimpl->true_second_vertex);
+ std::swap(pimpl->cached_first_vertex, pimpl->cached_second_vertex);
+ std::swap(pimpl->cached_first_edge, pimpl->cached_second_edge);
+ }
+
+ template <typename OutputIterator>
+ void get_list(OutputIterator o_itr)
+ {
+ pimpl->edge_list.get_list(o_itr);
+ }
+
+ void reset_vertex_cache()
+ {
+ pimpl->cached_first_vertex = pimpl->true_first_vertex;
+ pimpl->cached_second_vertex = pimpl->true_second_vertex;
+ }
+
+ inline void set_first_vertex(vertex_t v)
+ {
+ pimpl->cached_first_vertex = v;
+ }
+
+ inline void set_second_vertex(vertex_t v)
+ {
+ pimpl->cached_second_vertex = v;
+ }
+
+ private:
+
+ void store_old_face_handles_dispatch(store_old_handles)
+ {
+ pimpl->old_handles.first_vertex = pimpl->true_first_vertex;
+ pimpl->old_handles.second_vertex = pimpl->true_second_vertex;
+ pimpl->old_handles.first_edge = pimpl->cached_first_edge;
+ pimpl->old_handles.second_edge = pimpl->cached_second_edge;
+ }
+
+ void store_old_face_handles_dispatch(no_old_handles) {}
+
+
+
+ boost::shared_ptr<impl_t> pimpl;
+
+ };
+
+
+} /* namespace detail */ } /* namespace graph */ } /* namespace boost */
+
+
+#endif //__FACE_HANDLES_HPP__

Added: trunk/boost/graph/planar_detail/face_iterators.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/planar_detail/face_iterators.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,376 @@
+//=======================================================================
+// Copyright (c) Aaron Windsor 2007
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#ifndef __FACE_ITERATORS_HPP__
+#define __FACE_ITERATORS_HPP__
+
+#include <boost/iterator/iterator_facade.hpp>
+#include <boost/graph/graph_traits.hpp>
+
+namespace boost
+{
+
+ //tags for defining traversal properties
+
+ //VisitorType
+ struct lead_visitor {};
+ struct follow_visitor {};
+
+ //TraversalType
+ struct single_side {};
+ struct both_sides {};
+
+ //TraversalSubType
+ struct first_side {}; //for single_side
+ struct second_side {}; //for single_side
+ struct alternating {}; //for both_sides
+
+ //Time
+ struct current_iteration {};
+ struct previous_iteration {};
+
+ // Why TraversalType AND TraversalSubType? TraversalSubType is a function
+ // template parameter passed in to the constructor of the face iterator,
+ // whereas TraversalType is a class template parameter. This lets us decide
+ // at runtime whether to move along the first or second side of a bicomp (by
+ // assigning a face_iterator that has been constructed with TraversalSubType
+ // = first_side or second_side to a face_iterator variable) without any of
+ // the virtual function overhead that comes with implementing this
+ // functionality as a more structured form of type erasure. It also allows
+ // a single face_iterator to be the end iterator of two iterators traversing
+ // both sides of a bicomp.
+
+ //ValueType is either graph_traits<Graph>::vertex_descriptor
+ //or graph_traits<Graph>::edge_descriptor
+
+
+ //forward declaration (defining defaults)
+ template <typename Graph,
+ typename FaceHandlesMap,
+ typename ValueType,
+ typename BicompSideToTraverse = single_side,
+ typename VisitorType = lead_visitor,
+ typename Time = current_iteration
+ >
+ class face_iterator;
+
+
+
+ template <typename Graph, typename ValueType>
+ struct edge_storage;
+
+ template <typename Graph>
+ struct edge_storage <Graph, typename graph_traits<Graph>::edge_descriptor>
+ {
+ typename graph_traits<Graph>::edge_descriptor value;
+ };
+
+ template <typename Graph>
+ struct edge_storage <Graph, typename graph_traits<Graph>::vertex_descriptor>
+ {};
+
+
+
+ //specialization for TraversalType = traverse_vertices
+ template <typename Graph,
+ typename FaceHandlesMap,
+ typename ValueType,
+ typename TraversalType,
+ typename VisitorType,
+ typename Time
+ >
+
+ class face_iterator
+ : public boost::iterator_facade < face_iterator<Graph,
+ FaceHandlesMap,
+ ValueType,
+ TraversalType,
+ VisitorType,
+ Time
+ >,
+ ValueType,
+ boost::forward_traversal_tag,
+ ValueType
+ >
+ {
+ public:
+
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef face_iterator
+ <Graph,FaceHandlesMap,ValueType,TraversalType,VisitorType,Time> self;
+ typedef typename FaceHandlesMap::value_type face_handle_t;
+
+ face_iterator() :
+ m_lead(graph_traits<Graph>::null_vertex()),
+ m_follow(graph_traits<Graph>::null_vertex())
+ {}
+
+ template <typename TraversalSubType>
+ face_iterator(face_handle_t anchor_handle,
+ FaceHandlesMap face_handles,
+ TraversalSubType traversal_type):
+ m_follow(anchor_handle.get_anchor()),
+ m_face_handles(face_handles)
+ {
+ set_lead_dispatch(anchor_handle, traversal_type);
+ }
+
+ template <typename TraversalSubType>
+ face_iterator(vertex_t anchor,
+ FaceHandlesMap face_handles,
+ TraversalSubType traversal_type):
+ m_follow(anchor),
+ m_face_handles(face_handles)
+ {
+ set_lead_dispatch(m_face_handles[anchor], traversal_type);
+ }
+
+ private:
+
+ friend class boost::iterator_core_access;
+
+
+
+
+ inline vertex_t get_first_vertex(face_handle_t anchor_handle,
+ current_iteration
+ )
+ {
+ return anchor_handle.first_vertex();
+ }
+
+ inline vertex_t get_second_vertex(face_handle_t anchor_handle,
+ current_iteration
+ )
+ {
+ return anchor_handle.second_vertex();
+ }
+
+ inline vertex_t get_first_vertex(face_handle_t anchor_handle,
+ previous_iteration
+ )
+ {
+ return anchor_handle.old_first_vertex();
+ }
+
+ inline vertex_t get_second_vertex(face_handle_t anchor_handle,
+ previous_iteration
+ )
+ {
+ return anchor_handle.old_second_vertex();
+ }
+
+
+
+
+
+ inline void set_lead_dispatch(face_handle_t anchor_handle, first_side)
+ {
+ m_lead = get_first_vertex(anchor_handle, Time());
+ set_edge_to_first_dispatch(anchor_handle, ValueType(), Time());
+ }
+
+ inline void set_lead_dispatch(face_handle_t anchor_handle, second_side)
+ {
+ m_lead = get_second_vertex(anchor_handle, Time());
+ set_edge_to_second_dispatch(anchor_handle, ValueType(), Time());
+ }
+
+
+
+
+
+ inline void set_edge_to_first_dispatch(face_handle_t anchor_handle,
+ edge_t,
+ current_iteration
+ )
+ {
+ m_edge.value = anchor_handle.first_edge();
+ }
+
+ inline void set_edge_to_second_dispatch(face_handle_t anchor_handle,
+ edge_t,
+ current_iteration
+ )
+ {
+ m_edge.value = anchor_handle.second_edge();
+ }
+
+ inline void set_edge_to_first_dispatch(face_handle_t anchor_handle,
+ edge_t,
+ previous_iteration
+ )
+ {
+ m_edge.value = anchor_handle.old_first_edge();
+ }
+
+ inline void set_edge_to_second_dispatch(face_handle_t anchor_handle,
+ edge_t,
+ previous_iteration
+ )
+ {
+ m_edge.value = anchor_handle.old_second_edge();
+ }
+
+ template<typename T>
+ inline void set_edge_to_first_dispatch(face_handle_t, vertex_t, T)
+ {}
+
+ template<typename T>
+ inline void set_edge_to_second_dispatch(face_handle_t, vertex_t, T)
+ {}
+
+ void increment()
+ {
+ face_handle_t curr_face_handle(m_face_handles[m_lead]);
+ vertex_t first = get_first_vertex(curr_face_handle, Time());
+ vertex_t second = get_second_vertex(curr_face_handle, Time());
+ if (first == m_follow)
+ {
+ m_follow = m_lead;
+ set_edge_to_second_dispatch(curr_face_handle, ValueType(), Time());
+ m_lead = second;
+ }
+ else if (second == m_follow)
+ {
+ m_follow = m_lead;
+ set_edge_to_first_dispatch(curr_face_handle, ValueType(), Time());
+ m_lead = first;
+ }
+ else
+ m_lead = m_follow = graph_traits<Graph>::null_vertex();
+ }
+
+ bool equal(self const& other) const
+ {
+ return m_lead == other.m_lead && m_follow == other.m_follow;
+ }
+
+ ValueType dereference() const
+ {
+ return dereference_dispatch(VisitorType(), ValueType());
+ }
+
+ inline ValueType dereference_dispatch(lead_visitor, vertex_t) const
+ { return m_lead; }
+
+ inline ValueType dereference_dispatch(follow_visitor, vertex_t) const
+ { return m_follow; }
+
+ inline ValueType dereference_dispatch(lead_visitor, edge_t) const
+ { return m_edge.value; }
+
+ inline ValueType dereference_dispatch(follow_visitor, edge_t) const
+ { return m_edge.value; }
+
+ vertex_t m_lead;
+ vertex_t m_follow;
+ edge_storage<Graph, ValueType> m_edge;
+ FaceHandlesMap m_face_handles;
+ };
+
+
+
+
+
+
+
+
+
+ template <typename Graph,
+ typename FaceHandlesMap,
+ typename ValueType,
+ typename VisitorType,
+ typename Time
+ >
+ class face_iterator
+ <Graph, FaceHandlesMap, ValueType, both_sides, VisitorType, Time>
+ : public boost::iterator_facade< face_iterator<Graph,
+ FaceHandlesMap,
+ ValueType,
+ both_sides,
+ VisitorType,
+ Time>,
+ ValueType,
+ boost::forward_traversal_tag,
+ ValueType >
+ {
+ public:
+
+ typedef face_iterator
+ <Graph,FaceHandlesMap,ValueType,both_sides,VisitorType,Time> self;
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename FaceHandlesMap::value_type face_handle_t;
+
+ face_iterator() {}
+
+ face_iterator(face_handle_t anchor_handle, FaceHandlesMap face_handles):
+ first_itr(anchor_handle, face_handles, first_side()),
+ second_itr(anchor_handle, face_handles, second_side()),
+ first_is_active(true),
+ first_increment(true)
+ {}
+
+ face_iterator(vertex_t anchor, FaceHandlesMap face_handles):
+ first_itr(face_handles[anchor], face_handles, first_side()),
+ second_itr(face_handles[anchor], face_handles, second_side()),
+ first_is_active(true),
+ first_increment(true)
+ {}
+
+ private:
+
+ friend class boost::iterator_core_access;
+
+ typedef face_iterator
+ <Graph, FaceHandlesMap, ValueType, single_side, follow_visitor, Time>
+ inner_itr_t;
+
+ void increment()
+ {
+ if (first_increment)
+ {
+ ++first_itr;
+ ++second_itr;
+ first_increment = false;
+ }
+ else if (first_is_active)
+ ++first_itr;
+ else
+ ++second_itr;
+ first_is_active = !first_is_active;
+ }
+
+ bool equal(self const& other) const
+ {
+ //Want this iterator to be equal to the "end" iterator when at least
+ //one of the iterators has reached the root of the current bicomp.
+ //This isn't ideal, but it works.
+
+ return (first_itr == other.first_itr || second_itr == other.second_itr);
+ }
+
+ ValueType dereference() const
+ {
+ return first_is_active ? *first_itr : *second_itr;
+ }
+
+ inner_itr_t first_itr;
+ inner_itr_t second_itr;
+ inner_itr_t face_end;
+ bool first_is_active;
+ bool first_increment;
+
+ };
+
+
+} /* namespace boost */
+
+
+#endif //__FACE_ITERATORS_HPP__

Added: trunk/boost/graph/planar_face_traversal.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/graph/planar_face_traversal.hpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,210 @@
+//=======================================================================
+// Copyright (c) Aaron Windsor 2007
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#ifndef __PLANAR_FACE_TRAVERSAL_HPP__
+#define __PLANAR_FACE_TRAVERSAL_HPP__
+
+#include <vector>
+#include <boost/utility.hpp> //for next and prior
+#include <boost/graph/graph_traits.hpp>
+
+
+namespace boost
+{
+
+
+
+
+ struct planar_face_traversal_visitor
+ {
+ void begin_traversal()
+ {}
+
+ void begin_face()
+ {}
+
+ template <typename Edge>
+ void next_edge(Edge e)
+ {}
+
+ template <typename Vertex>
+ void next_vertex(Vertex v)
+ {}
+
+ void end_face()
+ {}
+
+ void end_traversal()
+ {}
+
+ };
+
+
+
+
+
+ template<typename Graph,
+ typename PlanarEmbedding,
+ typename Visitor,
+ typename EdgeIndexMap>
+ void planar_face_traversal(const Graph& g,
+ PlanarEmbedding embedding,
+ Visitor& visitor, EdgeIndexMap em
+ )
+ {
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_t;
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::edge_iterator edge_iterator_t;
+ typedef typename
+ property_traits<PlanarEmbedding>::value_type embedding_value_t;
+ typedef typename embedding_value_t::const_iterator embedding_iterator_t;
+
+ typedef typename
+ std::vector< std::set<vertex_t> > distinguished_edge_storage_t;
+ typedef typename
+ std::vector< std::map<vertex_t, edge_t> >
+ distinguished_edge_to_edge_storage_t;
+
+ typedef typename
+ boost::iterator_property_map
+ <typename distinguished_edge_storage_t::iterator, EdgeIndexMap>
+ distinguished_edge_map_t;
+
+ typedef typename
+ boost::iterator_property_map
+ <typename distinguished_edge_to_edge_storage_t::iterator, EdgeIndexMap>
+ distinguished_edge_to_edge_map_t;
+
+ distinguished_edge_storage_t visited_vector(num_edges(g));
+ distinguished_edge_to_edge_storage_t next_edge_vector(num_edges(g));
+
+ distinguished_edge_map_t visited(visited_vector.begin(), em);
+ distinguished_edge_to_edge_map_t next_edge(next_edge_vector.begin(), em);
+
+ vertex_iterator_t vi, vi_end;
+ typename std::vector<edge_t>::iterator ei, ei_end;
+ edge_iterator_t fi, fi_end;
+ embedding_iterator_t pi, pi_begin, pi_end;
+
+ visitor.begin_traversal();
+
+ // Initialize the next_edge property map. This map is initialized from the
+ // PlanarEmbedding so that get(next_edge, e)[v] is the edge that comes
+ // after e in the clockwise embedding around vertex v.
+
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ vertex_t v(*vi);
+ pi_begin = embedding[v].begin();
+ pi_end = embedding[v].end();
+ for(pi = pi_begin; pi != pi_end; ++pi)
+ {
+ edge_t e(*pi);
+ std::map<vertex_t, edge_t> m = get(next_edge, e);
+ m[v] = next(pi) == pi_end ? *pi_begin : *next(pi);
+ put(next_edge, e, m);
+ }
+ }
+
+ // Take a copy of the edges in the graph here, since we want to accomodate
+ // face traversals that add edges to the graph (for triangulation, in
+ // particular) and don't want to use invalidated edge iterators.
+ // Also, while iterating over all edges in the graph, we single out
+ // any self-loops, which need some special treatment in the face traversal.
+
+ std::vector<edge_t> self_loops;
+ std::vector<edge_t> edges_cache;
+ std::vector<vertex_t> vertices_in_edge;
+
+ for(tie(fi,fi_end) = edges(g); fi != fi_end; ++fi)
+ {
+ edge_t e(*fi);
+ edges_cache.push_back(e);
+ if (source(e,g) == target(e,g))
+ self_loops.push_back(e);
+ }
+
+
+ // Iterate over all edges in the graph
+ ei_end = edges_cache.end();
+ for(ei = edges_cache.begin(); ei != ei_end; ++ei)
+ {
+
+ edge_t e(*ei);
+ vertices_in_edge.clear();
+ vertices_in_edge.push_back(source(e,g));
+ vertices_in_edge.push_back(target(e,g));
+
+ typename std::vector<vertex_t>::iterator vi, vi_end;
+ vi_end = vertices_in_edge.end();
+
+ //Iterate over both vertices in the current edge
+ for(vi = vertices_in_edge.begin(); vi != vi_end; ++vi)
+ {
+
+ vertex_t v(*vi);
+ std::set<vertex_t> e_visited = get(visited, e);
+ typename std::set<vertex_t>::iterator e_visited_found
+ = e_visited.find(v);
+
+ if (e_visited_found == e_visited.end())
+ visitor.begin_face();
+
+ while (e_visited.find(v) == e_visited.end())
+ {
+ visitor.next_vertex(v);
+ visitor.next_edge(e);
+ e_visited.insert(v);
+ put(visited, e, e_visited);
+ v = source(e,g) == v ? target(e,g) : source(e,g);
+ e = get(next_edge, e)[v];
+ e_visited = get(visited, e);
+ }
+
+ if (e_visited_found == e_visited.end())
+ visitor.end_face();
+
+ }
+
+ }
+
+ // Iterate over all self-loops, visiting them once separately
+ // (they've already been visited once, this visitation is for
+ // the "inside" of the self-loop)
+
+ ei_end = self_loops.end();
+ for(ei = self_loops.begin(); ei != ei_end; ++ei)
+ {
+ visitor.begin_face();
+ visitor.next_edge(*ei);
+ visitor.next_vertex(source(*ei,g));
+ visitor.end_face();
+ }
+
+ visitor.end_traversal();
+
+ }
+
+
+
+ template<typename Graph, typename PlanarEmbedding, typename Visitor>
+ inline void planar_face_traversal(const Graph& g,
+ PlanarEmbedding embedding,
+ Visitor& visitor
+ )
+ {
+ planar_face_traversal(g, embedding, visitor, get(edge_index, g));
+ }
+
+
+
+
+} //namespace boost
+
+#endif //__PLANAR_FACE_TRAVERSAL_HPP__

Added: trunk/libs/graph/doc/AddEdgeVisitor.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/AddEdgeVisitor.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,130 @@
+<html>
+<head>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<title>AddEdgeVisitor Concept</title>
+</head>
+<body alink="#ff0000"
+ bgcolor="#ffffff"
+ link="#0000ee"
+ text="#000000"
+ vlink="#551a8b">
+
+<img src="../../../boost.png" alt="C++ Boost" height="86" width="277">
+
+<br clear="">
+
+<h1>AddEdgeVisitor Concept</h1>
+
+The AddEdgeVisitor concept exists to allow for some indirection in algorithms
+that modify graphs by adding edges. In such algorithms, it may be convenient
+to perform additional operations (such as updating an edge index map) at
+points in the algorithm where an edge addition occurs. Replacing calls to
+to <tt>add_edge</tt> with calls to <tt>AddEdgeVisitor::visit_vertex_pair</tt>
+allows for such operations to be defined independently from the algorithm.
+
+<h3>Notation</h3>
+
+<table>
+<tbody>
+
+<tr>
+<td> <tt>Visitor</tt> </td>
+<td> is a type that models the AddEdgeVisitor concept </td>
+</tr>
+
+<tr>
+<td> <tt>vis</tt> </td>
+<td> is an object of type Visitor </td>
+</tr>
+
+<tr>
+<td> <tt>Graph</tt> </td>
+<td> is the type of a graph </td>
+</tr>
+
+<tr>
+<td> <tt>u,v</tt> </td>
+<td> are objects of type <tt>graph_traits&lt;Graph&gt;::vertex_descriptor</tt>
+</td>
+</tr>
+
+<tr>
+<td> <tt>e</tt> </td>
+<td> is an object of type <tt>graph_traits&lt;Graph&gt;::edge_descriptor</tt>
+</td>
+</tr>
+
+<tr>
+<td> <tt>v</tt> </td>
+<td> is an object of type <tt>graph_traits&lt;Graph&gt;::vertex_descriptor</tt>
+</td>
+
+</tr><tr>
+<td>
+
+</td></tr></tbody></table>
+
+
+<h3>Associated Types</h3>
+
+None
+
+<h3>Valid Expressions</h3>
+
+<p>
+
+<table border="1">
+
+<tbody><tr><th>Name</th><th>Expression</th><th>Return Type</th>
+<th>Description</th>
+
+</tr><tr>
+<td> Add an Edge </td>
+<td> <tt>vis.visit_vertex_pair(u, v, g)</tt> </td>
+<td> <tt>void</tt></td>
+<td> Invoked every time an edge between vertices <tt>u</tt> and <tt>v</tt>
+ should be added to the graph <tt>g</tt>.
+</td></tr>
+
+</tbody></table>
+
+</p><h3>Models</h3>
+
+Two models of this concept are defined in the file
+<a href="../../../boost/graph/planar_detail/add_edge_visitors.hpp">
+<tt>add_edge_visitors.hpp</tt></a>:
+
+<ul>
+<li><tt>default_add_edge_visitor</tt>: The constructor of this class takes
+no arguments.<tt>visit_vertex_pair(u, v, g)</tt> is just a dispatch to
+<tt>add_edge(u, v, g)</tt>.
+<li><tt>edge_index_update_visitor</tt>: The constructor of this class takes
+two arguments: the first, an EdgeIndexMap,
+is a <a href="../../property_map/ReadWritePropertyMap.html">
+ReadWritePropertyMap</a> that maps each edge in the associated graph
+<tt>g</tt> to a distinct integer in the range <tt>[0, num_edges(g))</tt>.
+The second argument is the number of edges in the underlying graph, which
+serves as the "next available index" counter within the visitor.
+For example, in the case the graph used has an initialized interior
+edge index, the <tt>edge_index_update_visitor</tt> constructor should be
+called with <tt>get(edge_index, g)</tt> as the edge index and
+<tt>num_edges(g)</tt> as the next available index. When
+<tt>visit_vertex_pair(u, v, g)</tt> is called, the
+<tt>edge_index_update_visitor</tt> will add the edge <i>(u,v)</i> to the graph
+and update the edge index for the newly created edge.
+</ul>
+
+<p>
+
+<br>
+</p><hr>
+Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+
+</body></html>
\ No newline at end of file

Added: trunk/libs/graph/doc/PlanarEmbedding.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/PlanarEmbedding.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,178 @@
+<html><head><!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<title>Planar Embedding Concept</title>
+</head>
+<body alink="#ff0000"
+ bgcolor="#ffffff"
+ link="#0000ee"
+ text="#000000"
+ vlink="#551a8b">
+<img src="../../../boost.png" alt="C++ Boost" height="86" width="277">
+
+<br clear="">
+
+<h1>Planar Embedding Concept</h1>
+
+
+A planar embedding is an important intermediate representation of a drawing
+of a planar graph. Instead of specifying the absolute positions of the vertices
+and edges in the plane, a planar embedding specifies their positions relative
+to one another. A planar embedding consists of a sequence, for each vertex in
+the graph, of all of the edges incident on that vertex in the order in which
+they are to be drawn around that vertex.
+<p>
+A planar embedding is a refinement of
+LValuePropertyMap that
+places additional restrictions the <tt>value_type</tt> used in the property
+map.
+
+</p><h3>Notation</h3>
+
+<table>
+<tbody>
+
+<tr>
+<td> <tt>Embedding</tt> </td>
+<td> is a type that models the Planar Embedding concept.</td>
+</tr>
+
+<tr>
+<td> <tt>embedding</tt> </td>
+<td> is an object of type <tt>Embedding</tt>. </td>
+</tr>
+
+<tr>
+<td> <tt>Graph</tt> </td>
+<td> is the type of the underlying graph.</td>
+</tr>
+
+<tr>
+<td> <tt>e</tt> </td>
+<td> is an object of type <tt>graph_traits&lt;Graph&gt;::edge_descriptor</tt>.
+</td>
+</tr>
+
+<tr>
+<td> <tt>v</tt> </td>
+<td> is an object of type <tt>graph_traits&lt;Graph&gt;::vertex_descriptor
+</tt>.</td>
+
+</tr><tr>
+<td>
+
+</td></tr></tbody></table>
+
+
+<h3>Associated Types</h3>
+
+<table border="1">
+
+<tbody><tr>
+<td> Const Iterator </td>
+<td> <tt>boost::property_traits&lt;Embedding&gt;::value_type::const_iterator
+</tt>
+</td>
+<td> The iterator type used to iterate over the ordering of the edges in the
+planar embedding of a particular vertex
+</td>
+</tr>
+
+</tbody></table>
+
+<h3>Valid Expressions</h3>
+
+<p>
+
+<table border="1">
+
+<tbody><tr><th>Expression</th><th>Return Type</th><th>Description</th>
+
+</tr><tr>
+<td> <tt>embedding[v].begin()</tt> </td>
+<td> <tt>boost::property_traits&lt;Embedding&gt;::value_type::const_iterator
+ </tt></td>
+<td> Returns an iterator to the beginning of the range of edges in the
+ embedding around vertex v</td>
+</tr>
+
+<tr>
+<td> <tt>embedding[v].end()</tt> </td>
+<td> <tt>boost::property_traits&lt;Embedding&gt;::value_type::const_iterator
+ </tt></td>
+<td> Returns an iterator to the end of the range of edges in the
+ embedding around vertex v</td>
+</tr>
+
+<tr>
+<td> <tt>embedding[v].clear()</tt> </td>
+<td> <tt>void</tt></td>
+<td> Clears all edges in the embedding around a vertex <tt>v</tt></td>
+</tr>
+
+<tr>
+<td> <tt>embedding[v].push_back(e)</tt> </td>
+<td> <tt>void</tt></td>
+<td> Adds an edge <tt>e</tt> to the end of the sequence of embedded edges
+ around the vertex <tt>v</tt> </td>
+</tr>
+
+</tbody></table>
+
+</p><h3>Complexity Guarantees</h3>
+
+Starting with an empty embedding, any mixed sequence of <i>n</i> calls to a
+particular vertex's <tt>push_back</tt> and <tt>clear</tt> should take
+<i>O(n)</i> time.
+
+<h3>Models</h3>
+
+Any LValue property map that maps vertices to a <tt>std::vector</tt>,
+<tt>std::list</tt>, or <tt>std::deque</tt> models this
+concept. Below is an example of using this approach to create a model of
+PlanarEmbedding:
+
+<pre>
+#include &lt;boost/property_map.hpp&gt;
+#include &lt;vector&gt;
+
+...
+
+// Assume a graph type "Graph" defined somewhere above and
+// an instance of Graph in a variable g.
+
+// A typedef for the storage - a vector of vectors of edge descriptors
+typedef
+ std::vector&lt; std::vector&lt; graph_traits&lt;Graph&gt;::edge_descriptor &gt; &gt;
+ planar_embedding_storage_t;
+
+// A typedef for the iterator property map, assuming the graph has
+// an interior vertex index map
+typedef
+ boost::iterator_property_map&lt; planar_embedding_storage_t::iterator,
+ property_map&lt;Graph, vertex_index_t&gt;::type
+ &gt;
+ planar_embedding_t;
+
+// Create an instance of the storage and the property map
+planar_embedding_storage_t planar_embedding_storage(num_vertices(g));
+planar_embedding_t planar_embedding(planar_embedding_storage.begin(),
+ get(vertex_index, g)
+ );
+
+// planar_embedding can now be passed to any function expecting a model
+// of PlanarEmbedding.
+</pre>
+
+<p>
+
+<br>
+</p><hr>
+Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+
+</body></html>
\ No newline at end of file

Added: trunk/libs/graph/doc/PlanarFaceVisitor.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/PlanarFaceVisitor.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,148 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<HEAD>
+<TITLE>Planar Face Visitor Concept</TITLE>
+</HEAD>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1>Planar Face Visitor Concept</H1>
+
+This concept defines the visitor interface for
+planar_face_traversal.
+Users can define a class with the Planar Face Visitor interface and pass an
+object of the class to <tt>planar_face_traversal</tt>, thereby augmenting the
+actions taken during the traversal. Note that objects passed to
+<tt>planar_face_traversal</tt> are passed by reference.
+
+<h3>Notation</h3>
+
+<table>
+<tbody><tr>
+<td><tt>V</tt></td>
+<td>A type that is a model of Planar Face Visitor.</td>
+</tr>
+
+<tr>
+<td><tt>vis</tt></td>
+<td>An object of type <tt>V</tt>.</td>
+</tr>
+
+<tr>
+<td><tt>G</tt></td>
+<td>A type that is a model of Graph.</td>
+</tr>
+
+<tr>
+<td><tt>e</tt></td>
+<td>An object of type <tt>boost::graph_traits&lt;G&gt;::edge_descriptor</tt>.
+</td>
+</tr>
+
+<tr>
+<td><tt>v</tt></td>
+<td>An object of type <tt>boost::graph_traits&lt;G&gt;::vertex_descriptor</tt>.
+</td>
+</tr>
+
+</tbody></table>
+
+
+<h3>Valid Expressions</h3>
+
+<table border="1">
+<tbody><tr>
+<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
+</tr>
+
+<tr>
+<td>Begin Traversal</td>
+<td><tt>vis.begin_traversal()</tt></td>
+<td><tt>void</tt></td>
+<td>
+This is invoked once per traversal, before the traversal begins.
+</td>
+</tr>
+
+<tr>
+<td>Begin Face</td>
+<td><tt>vis.begin_face()</tt></td>
+<td><tt>void</tt></td>
+<td>
+This is invoked once for each face, before any vertices or edges on the face
+are visited.
+</td>
+</tr>
+
+<tr>
+<td>Next Vertex</td>
+<td><tt>vis.next_vertex(v)</tt></td>
+<td><tt>void</tt></td>
+<td>
+This is invoked when a vertex is encountered while traversing a face.
+</td>
+</tr>
+
+
+<tr>
+<td>Next Edge</td>
+<td><tt>vis.next_edge(e)</tt></td>
+<td><tt>void</tt></td>
+<td>
+This is invoked when an edge is encountered while traversing a face.
+</td>
+</tr>
+
+<tr>
+<td>End Face</td>
+<td><tt>vis.end_face()</tt></td>
+<td><tt>void</tt></td>
+<td>
+This is invoked once for each face, after all vertices and edges on the face
+are visited.
+</td>
+</tr>
+
+
+<tr>
+<td>End Traversal</td>
+<td><tt>vis.end_traversal()</tt></td>
+<td><tt>void</tt></td>
+<td>
+This is invoked once per traversal, after the traversal ends.
+</td>
+</tr>
+
+</tbody></table>
+
+<h3>Models</h3>
+
+<ul>
+ <li> The file <a href="../../../boost/graph/planar_face_traversal.hpp">
+<tt>planar_face_traversal.hpp</tt></a> contains a class
+<tt>planar_face_traversal_visitor</tt> that implements empty actions for
+all event points of a Planar Face Visitor. In the case where only a few of the
+event points of Planar Face Visitor need to be implemented, one can derive from
+<tt>planar_face_traversal_visitor</tt> and only implement the necessary event
+points. <li> The implementation of <a href="./make_maximal_planar.html">
+<tt>make_maximal_planar</tt></a> uses a <tt>triangulation_visitor</tt> that is
+a model of Planar Face Visitor.
+</li>
+</ul>
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Modified: trunk/libs/graph/doc/bibliography.html
==============================================================================
--- trunk/libs/graph/doc/bibliography.html (original)
+++ trunk/libs/graph/doc/bibliography.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -414,6 +414,28 @@
   <dd>Yuri Boykov and Vladimir Kolmogorov<br>
     <em>An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision</em><br>
     In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 9, pp. 1124-1137, Sept. 2004.
+
+<p></p><dt><a name="boyermyrvold04">70</a>
+<dd>John M. Boyer and Wendy J. Myrvold<br>
+<em><a href="http://www.emis.de/journals/JGAA/accepted/2004/BoyerMyrvold2004.8.3.pdf">
+On the Cutting Edge: Simplified O(n) Planarity by Edge Addition</a>
+</em><br>
+Journal of Graph Algorithms and Applications, 8(2): 241-273, 2004.
+
+<p></p><dt><a name="chrobakpayne95">71</a>
+<dd>M. Chrobak, T. Payne<br>
+<em>
+A Linear-time Algorithm for Drawing a Planar Graph on the Grid
+</em><br>
+Information Processing Letters 54: 241-246, 1995.
+
+<p></p><dt><a name="defraysseixpachpollack90">72</a>
+<dd>H. de Fraysseix, J. Pach, R. Pollack<br>
+<em>
+How to Draw a Planar Graph on a Grid
+</em><br>
+Combinatorica 10: 41-51, 1990.
+
 </dl>
   
 <br>

Added: trunk/libs/graph/doc/boyer_myrvold.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/boyer_myrvold.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,259 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<Head>
+<Title>Boost Graph Library: Boyer-Myrvold Planarity Testing/Embedding</Title>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1>Boyer-Myrvold Planarity Testing/Embedding</H1>
+
+<p>
+A graph is planar if it can
+be drawn in two-dimensional space without any of its edges crossing. Such a
+drawing of a planar graph is called a
+plane drawing. Each
+plane drawing belongs to an equivalence class called a <i>planar embedding</i>
+[1] that is defined by the clockwise ordering of adjacent
+edges around each vertex in the graph. A planar embedding is a convenient
+intermediate representation of an actual drawing of a planar graph, and many
+planar graph drawing algorithms are formulated as functions mapping a planar
+embedding to a plane drawing.
+<br>
+<br>
+<table align="center" class="image">
+<caption align="bottom"><h5>A planar graph (top left), along with a planar
+embedding of that graph (bottom left) can be used to create a plane drawing
+(right) by embedding edges around each vertex in the order in which they
+appear in the planar embedding.
+</h5></caption>
+<tr><td>
+<img src="./figs/embedding_illustration.png">
+</td></tr>
+<tr></tr>
+<tr></tr>
+</table>
+<br>
+<p>
+The function <tt>boyer_myrvold_planarity_test</tt> implements the planarity
+testing/embedding algorithm of Boyer and Myrvold
+[70].
+<tt>boyer_myrvold_planarity_test</tt> returns <tt>true</tt> if the input graph
+is planar and <tt>false</tt> otherwise. As a side-effect of this test, a planar
+embedding can be constructed if the graph is planar or a minimal set of edges
+that form a <a href = "./planar_graphs.html#kuratowskisubgraphs">Kuratowski
+subgraph</a> can be found if the graph is not planar.
+<tt>boyer_myrvold_planarity_test</tt> uses named parameter arguments (courtesy
+of the Boost.Parameter
+library) to specify what the function actually does. Some examples are:
+
+<ul>
+<li>Testing whether or not a graph is planar:
+<pre>
+bool is_planar = boyer_myrvold_planarity_test(g);
+</pre>
+
+<li>Computing a planar embedding for a graph if it is planar, otherwise finding
+a set of edges that forms an obstructing Kuratowski subgraph:
+<pre>
+if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding = embedding_pmap,
+ boyer_myrvold_params::kuratowski_subgraph = out_itr
+ )
+ )
+{
+ //do something with the embedding in embedding_pmap
+}
+else
+{
+ //do something with the kuratowski subgraph output to out_itr
+}
+</pre>
+</ul>
+
+<p>
+The parameters passed to <tt>boyer_myrvold_planarity_test</tt> in the examples
+above do more than just carry the data structures used for input and output -
+the algorithm is optimized at compile time based on which parameters are
+present. A complete list of parameters accepted and their interactions are
+described below.
+<p>
+<tt>boyer_myrvold_planarity_test</tt> accepts as input any undirected graph,
+even those with self-loops and multiple edges.
+However, many planar graph drawing algorithms make additional restrictions
+on the structure of the input graph - for example, requiring that the input
+graph is connected, biconnected, or even maximal planar (triangulated.)
+Fortunately, any planar graph on <i>n</i> vertices that lacks one of these
+properties can be augmented with additional edges so that it satisfies that
+property in <i>O(n)</i> time - the functions
+<tt>make_connected</tt>,
+<tt>make_biconnected_planar</tt>,
+and <tt>make_maximal_planar</tt>
+exist for this purpose. If the graph drawing algorithm you're using requires,
+say, a biconnected graph, then you must make your input graph biconnected
+<i>before</i> passing it into <tt>boyer_myrvold_planarity_test</tt> so that the
+computed planar embedding includes these additional edges. This may require
+more than one call to <tt>boyer_myrvold_planarity_test</tt> depending on the
+structure of the graph you begin with, since both
+<tt>make_biconnected_planar</tt> and <tt>make_maximal_planar</tt> require a
+planar embedding of the existing graph as an input parameter.
+
+<p><p>
+The named parameters accepted by <tt>boyer_myrvold_planarity_test</tt> are:
+
+<ul>
+<li><b><tt>graph</tt></b> : The input graph - this is the only required
+parameter.
+<li><b><tt>vertex_index_map</tt></b> : A mapping from vertices of the input
+graph to indexes in the range <tt>[0..num_vertices(g))</tt>. If this parameter
+is not provided, the vertex index map is assumed to be available as an interior
+property of the graph, accessible by calling <tt>get(vertex_index, g)</tt>.
+<li><b><tt>edge_index_map</tt></b>: A mapping from the edges of the input graph
+to indexes in the range <tt>[0..num_edges(g))</tt>. This parameter is only
+needed if the <tt>kuratowski_subgraph</tt> argument is provided. If the
+<tt>kuratowski_subgraph</tt> argument is provided and this parameter is not
+provided, the EdgeIndexMap is assumed to be available as an interior property
+accessible by calling <tt>get(edge_index, g)</tt>.
+<li><b><tt>embedding</tt></b> : If the graph is planar, this will be populated
+with a mapping from vertices to the clockwise order of neighbors in the planar
+embedding.
+<li><b><tt>kuratowski_subgraph</tt></b> : If the graph is not planar, a minimal
+set of edges that form the obstructing Kuratowski subgraph will be written to
+this iterator.
+</ul>
+
+These named parameters all belong to the namespace
+<tt>boyer_myrvold_params</tt>. See below for more information on the concepts
+required for these arguments.
+
+<H3>Verifying the output</H3>
+
+Whether or not the input graph is planar, <tt>boyer_myrvold_planarity_test</tt>
+can produce a certificate that can be automatically checked to verify that the
+function is working properly.
+<p>
+If the graph is planar, a planar embedding can be produced. The
+planar embedding can be verified by passing it to a plane drawing routine
+(such as <tt><a href="straight_line_drawing.html">
+chrobak_payne_straight_line_drawing</a></tt>) and using the function
+<tt>is_straight_line_drawing</tt>
+to verify that the resulting graph is planar.
+<p>
+If the graph is not planar, a set of edges that forms a Kuratowski subgraph in
+the original graph can be produced. This set of edges can be passed to the
+function <tt>is_kuratowski_subgraph
+</tt> to verify that they can be contracted into a <i>K<sub>5</sub></i> or
+<i>K<sub>3,3</sub></i>. <tt>boyer_myrvold_planarity_test</tt> chooses the set
+of edges forming the Kuratowski subgraph in such a way that the contraction to
+a <i>K<sub>5</sub></i> or <i>K<sub>3,3</sub></i> can be done by a simple
+deterministic process which is described in the documentation to
+<tt>is_kuratowski_subgraph</tt>.
+
+<H3>Where Defined</H3>
+
+<P>
+<a href="../../../boost/graph/boyer_myrvold_planar_test.hpp">
+<TT>boost/graph/boyer_myrvold_planar_test.hpp</TT>
+</a>
+
+<H3>Parameters</H3>
+
+IN: <tt>Graph&amp; g</tt>
+
+<blockquote>
+Any undirected graph. The graph type must be a model of
+VertexAndEdgeListGraph and
+IncidenceGraph.
+</blockquote>
+
+OUT <tt>PlanarEmbedding embedding</tt>
+
+<blockquote>
+Must model the PlanarEmbedding concept.
+</blockquote>
+
+IN <tt>OutputIterator kuratowski_subgraph</tt>
+
+<blockquote>
+An OutputIterator which accepts values of the type
+<tt>graph_traits&lt;Graph&gt;::edge_descriptor</tt>
+</blockquote>
+
+IN <tt>VertexIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps vertices from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_vertices(g) )</tt><br>
+<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
+</blockquote>
+
+IN <tt>EdgeIndexMap em</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps edges from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_edges(g) )</tt><br>
+<b>Default</b>: <tt>get(edge_index,g)</tt>, but this parameter is only used if
+the <tt>kuratowski_subgraph_iterator</tt> is provided.<br>
+</blockquote>
+
+<H3>Complexity</H3>
+
+Assuming that both the vertex index and edge index supplied take time
+<i>O(1)</i> to return an index and there are <i>O(n)</i>
+total self-loops and parallel edges in the graph, most combinations of
+arguments given to
+<tt>boyer_myrvold_planarity_test</tt> result in an algorithm that runs in time
+<i>O(n)</i> for a graph with <i>n</i> vertices and <i>m</i> edges. The only
+exception is when Kuratowski subgraph isolation is requested for a dense graph
+(a graph with <i>n = o(m)</i>) - the running time will be <i>O(n+m)</i>
+<a href = "#2">[2]</a>.
+
+<H3>Examples</H3>
+
+<P>
+<ul>
+<li>A simple planarity test
+<li><a href="../example/kuratowski_subgraph.cpp">Isolating a Kuratowski
+Subgraph</a>
+<li><a href="../example/straight_line_drawing.cpp">Using a planar embedding to
+create a straight line drawing</a>
+</ul>
+
+<h3>See Also</h3>
+
+Planar Graphs in the Boost Graph Library
+
+
+<h3>Notes</h3>
+
+<p><a name="1">[1] A planar embedding is also called a <i>combinatorial
+embedding</i>.
+
+<p><a name="2">[2] The algorithm can still be made to run in time <i>O(n)</i>
+for this case, if needed. <a href="planar_graphs.html#EulersFormula">Euler's
+formula</a> implies that a planar graph with <i>n</i> vertices can have no more
+than <i>3n - 6</i> edges, which means that any non-planar graph on <i>n</i>
+vertices has a subgraph of only <i>3n - 5</i> edges that contains a Kuratowski
+subgraph. So, if you need to find a Kuratowski subgraph of a graph with more
+than <i>3n - 5</i> edges in time <i>O(n)</i>, you can create a subgraph of the
+original graph consisting of any arbitrary <i>3n - 5</i> edges and pass that
+graph to <tt>boyer_myrvold_planarity_test</tt>.
+
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Added: trunk/libs/graph/doc/figs/canonical_ordering.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/graph/doc/figs/embedding_illustration.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/graph/doc/figs/face_illustration.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/graph/doc/figs/face_traversal_example.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/graph/doc/figs/k_5_and_k_3_3.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/graph/doc/figs/planar_plane_straight_line.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/graph/doc/figs/straight_line_drawing.png
==============================================================================
Binary file. No diff available.

Modified: trunk/libs/graph/doc/history.html
==============================================================================
--- trunk/libs/graph/doc/history.html (original)
+++ trunk/libs/graph/doc/history.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -86,11 +86,13 @@
       <li>read_dimacs_max_flow and write_dimacs_max_flow for max-flow problems, from Stephan Diederich.</li>
       <li>read_graphml and write_graphml for GraphML input/output, from Tiago de Paula Peixoto.</li>
       <li>minimum_cycle_ratio and maximum_cycle_ratio, from Dmitry Bufistov and Andrey Parfenov.</li>
+ <li>boyer_myrvold_planarity_test, along with a suite of algorithms for planar graphs, from Aaron Windsor.</li>
     </ul><br><b>Enhancements</b><br>
     <ul>
       <li>LEDA Adaptor improvements, from Jens M&uuml;ller.</li>
     </ul>
   </li><br>
+
   <a name="1.34.0"></a><li>Version 1.34.0<br><b>New algorithms and components</b>
     <ul>
       <li>edmonds_maximum_cardinality_matching, from Aaron Windsor.</li>

Added: trunk/libs/graph/doc/is_kuratowski_subgraph.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/is_kuratowski_subgraph.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,126 @@
+<html><head><!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<title>Boost Graph Library: is_kuratowski_subgraph</title>
+</head>
+<body alink="#ff0000"
+ bgcolor="#ffffff"
+ link="#0000ee"
+ text="#000000"
+ vlink="#551a8b">
+<img src="../../../boost.png" alt="C++ Boost" height="86" width="277">
+
+<br clear="">
+
+<h1><tt>is_kuratowski_subgraph</tt></h1>
+
+<pre>template &lt;typename Graph, typename ForwardIterator, typename VertexIndexMap&gt;
+bool is_kuratowski_subgraph(const Graph&amp; g, ForwardIterator begin, ForwardIterator end, VertexIndexMap vm)
+</pre>
+
+<p>
+
+<tt>is_kuratowski_subgraph(g, begin, end)</tt> returns <tt>true</tt> exactly
+when the sequence of edges defined by the range <tt>[begin, end)</tt> forms a
+ Kuratowski subgraph in
+the graph <tt>g</tt>. If you need to verify that an arbitrary graph has a
+<i>K<sub>5</sub></i> or <i>K<sub>3,3</sub></i> minor, you should use the
+function <tt>boyer_myrvold_planarity_test</tt>
+to isolate such a minor instead of this function. <tt>is_kuratowski_subgraph
+</tt> exists to aid in testing and verification of the function
+<tt>boyer_myrvold_planarity_test</tt>, and for that reason, it expects its
+input to be a restricted set of edges forming a Kuratowski subgraph, as
+described in detail below.
+<p>
+<tt>is_kuratowski_subgraph</tt> creates a temporary graph out of the sequence
+of edges given and repeatedly contracts edges until it ends up with a graph
+with either all edges of degree 3 or all edges of degree 4. The final
+contracted graph is then checked against <i>K<sub>5</sub></i> or
+<i>K<sub>3,3</sub></i> using the Boost Graph Library's
+isomorphism
+function. The contraction process starts by choosing edges adjacent to a vertex
+of degree 1 and contracting those. When none are left, it moves on to edges
+adjacent to a vertex of degree 2. If only degree 3 vertices are left after this
+stage, the graph is checked against <i>K<sub>3,3</sub></i>. Otherwise, if
+there's at least one degree 4 vertex, edges adjacent to degree 3 vertices are
+contracted as neeeded and the final graph is compared to <i>K<sub>5</sub></i>.
+<p>
+In order for this process to be deterministic, we make the following two
+restrictions on the input graph given to <tt>is_kuratowski_subgraph</tt>:
+<ol>
+<li>No edge contraction needed to produce a kuratowski subgraph results in
+multiple edges between the same pair of vertices (No edge <i>{a,b}</i> will be
+contracted at any point in the contraction process if <i>a</i> and <i>b</i>
+share a common neighbor.)
+</li><li>If the graph contracts to a <i>K<sub>5</sub></i>, once the graph has
+been contracted to only vertices of degree at least 3, no cycles exist that
+contain solely degree 3 vertices.
+</li></ol>
+The second restriction is needed both to discriminate between targeting a
+<i>K<sub>5</sub></i> or a <i>K<sub>3,3</sub></i> and to determinstically
+contract the vertices of degree 4 once the <i>K<sub>5</sub></i> has been
+targeted. The Kuratowski subgraph output by the function <tt>
+boyer_myrvold_planarity_test</tt> is
+guaranteed to meet both of the above requirements.
+
+
+<h3>Complexity</h3>
+
+On a graph with <i>n</i> vertices, this function runs in time <i>O(n)</i>.
+
+<h3>Where Defined</h3>
+
+<p>
+<a href="../../../boost/graph/is_kuratowski_subgraph.hpp">
+<tt>boost/graph/is_kuratowski_subgraph.hpp</tt>
+</a>
+
+</p><h3>Parameters</h3>
+
+IN: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph with no self-loops or parallel edges. The graph type must
+be a model of Vertex List Graph.
+</blockquote>
+
+IN: <tt>ForwardIterator</tt>
+
+<blockquote>
+A ForwardIterator with value_type
+<tt>graph_traits&lt;Graph&gt;::edge_descriptor</tt>.
+</blockquote>
+
+IN: <tt>VertexIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps vertices from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_vertices(g) )</tt><br>
+<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
+</blockquote>
+
+
+<h3>Example</h3>
+
+<p>
+<a href="../example/kuratowski_subgraph.cpp">
+<tt>examples/kuratowski_subgraph.cpp</tt>
+</a>
+
+</p><h3>See Also</h3>
+
+<p>
+Planar Graphs in the Boost Graph Library
+
+
+<br>
+</p><hr>
+Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+
+</body></html>
\ No newline at end of file

Added: trunk/libs/graph/doc/is_straight_line_drawing.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/is_straight_line_drawing.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,93 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<Head>
+<Title>Boost Graph Library: is_straight_line_drawing</Title>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1><tt>is_straight_line_drawing</tt></H1>
+
+<p>
+<pre>
+template &lt;typename Graph, typename GridPositionMap, typename VertexIndexMap&gt;
+bool is_straight_line_drawing(const Graph& g, GridPositionMap drawing, VertexIndexMap vm);
+</pre>
+
+<p>
+If <tt>drawing</tt> is a property map modeling the PositionMap
+concept, <tt>is_straight_line_drawing</tt> returns true exactly when no two of
+the line segments induced by edges in the graph under <tt>drawing</tt>
+intersect. This function works correctly in the presence of self-loops and
+parallel edges, and can be used to verify the output of the function
+<tt>
+chrobak_payne_straight_line_embedding.
+</tt>
+
+<p>
+
+<h3>Complexity</h3>
+
+Runs in time <i>O(n log n)</i> on a planar graph with <i>n</i> vertices.
+
+<H3>Where Defined</H3>
+
+<P>
+boost/graph/is_straight_line_drawing.hpp
+
+<h3>Parameters</h3>
+
+IN: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph. The graph type must be a model of <a
+href="EdgeListGraph.html">Edge List Graph</a>
+</blockquote>
+
+IN: <tt>PositionMap</tt>
+
+<blockquote>
+A <a href="../../property_map/LvaluePropertyMap.html">Readable LValue Property
+Map</a> that models the Position Map concept. The Position Map concept requires
+that the value mapped to be an object that has members <tt>x</tt> and
+<tt>y</tt>. For example, if <tt>p</tt> models PositionMap and <tt>v</tt>
+is a vertex in the graph, <tt>p[v].x</tt> and <tt>p[v].y</tt> are valid
+expressions. The type of <tt>x</tt> and <tt>y</tt> must be implicitly
+convertable to <tt>std::size_t</tt>.
+</blockquote>
+
+IN: <tt>VertexIndexMap vm</tt>
+
+<blockquote>
+A Readable Property Map that maps vertices from <tt>g</tt> to distinct integers in the range <tt>[0, num_vertices(g) )</tt><br>
+<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
+</blockquote>
+
+<H3>Example</H3>
+
+<P>
+examples/straight_line_drawing.cpp
+
+<h3>See Also</h3>
+
+<p>
+<ul>
+<li>Planar Graphs in the Boost Graph Library
+<li><a href="straight_line_drawing.html">
+<tt>chrobak_payne_straight_line_drawing</tt></a>
+</ul>
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Added: trunk/libs/graph/doc/make_biconnected_planar.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/make_biconnected_planar.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,117 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<Head>
+<Title>Boost Graph Library: make_biconnected_planar</Title>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1><tt>make_biconnected_planar</tt></H1>
+
+<p>
+
+<pre>
+template &lt;typename Graph, typename PlanarEmbedding, typename EdgeIndexMap, typename AddEdgeVisitor&gt;
+void make_biconnected_planar(Graph& g, PlanarEmbedding embedding, EdgeIndexMap em, AddEdgeVisitor& vis);
+</pre>
+
+<p>
+
+A graph <i>G</i> is biconnected if, for every pair of vertices <i>u,v</i> in
+<i>G</i>, there is a cycle containing both <i>u</i> and <i>v</i>.
+Alternatively, a graph is biconnected if it is connected and cannot be made
+disconnected by removing any single vertex. <tt>make_biconnected_planar</tt>
+takes a connected
+planar graph <tt>g</tt> as input and adds zero
+or more edges to make <tt>g</tt> biconnected while preserving planarity.
+<p>
+The default behavior of <tt>make_biconnected_planar</tt> is to modify the
+graph <tt>g</tt> by calling <tt>add_edge(u,v,g)</tt> for every pair of
+vertices <i>(u,v)</i> where an edge needs to be added to make <tt>g</tt>
+biconnected. This behavior can be overriden by providing a vistor as the
+<tt>AddEdgeVisitor</tt> parameter. The only requirement for an
+<tt>AddEdgeVisitor</tt> is that it define a member function with the
+following signature:
+<pre>
+template &lt;typename Graph, typename Vertex&gt;
+void visit_vertex_pair(Vertex u, Vertex v, Graph& g);
+</pre>
+This event point can also be used as a hook to update the underlying edge
+index map automatically as edges are added. See the
+documentation for the AddEdgeVisitor
+concept for more information.
+
+<H3>Where Defined</H3>
+
+<P>
+<a href="../../../boost/graph/make_biconnected_planar.hpp">
+<TT>boost/graph/make_biconnected_planar.hpp</TT>
+</a>
+
+<h3>Parameters</h3>
+
+IN/OUT: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph. The graph type must be a model of <a
+href="VertexListGraph.html">Vertex List Graph</a>, <a
+href="IncidenceGraph.html">Incidence Graph</a>, and
+a Mutable Graph<br>
+</blockquote>
+
+IN: <tt>PlanarEmbedding embedding</tt>
+
+<blockquote>
+A model of PlanarEmbedding.
+</blockquote>
+
+IN: <tt>EdgeIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps edges from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_edges(g) )</tt><br>
+<b>Default</b>: <tt>get(edge_index,g)</tt><br>
+</blockquote>
+
+IN: <tt>AddEdgeVisitor</tt>
+
+<blockquote>
+A model of <a href="AddEdgeVisitor.html">AddEdgeVisitor
+</a>.<br>
+<b>Default</b>: <tt>default_add_edge_visitor</tt>, a class defines
+<tt>visit_vertex_pair</tt> to dispatch its calls to <tt>add_edge</tt>.
+</blockquote>
+
+
+<h3>Complexity</h3>
+
+On a planar graph with <i>n</i> vertices, <tt>make_biconnected_planar</tt>
+runs in time <i>O(n)</i>
+
+<H3>Example</H3>
+
+<P>
+<a href="../example/make_biconnected_planar.cpp">
+<TT>examples/make_biconnected_planar.cpp</TT>
+</a>
+
+<h3>See Also</h3>
+
+Planar Graphs in the Boost Graph Library
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Added: trunk/libs/graph/doc/make_connected.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/make_connected.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,116 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<Head>
+<Title>Boost Graph Library: make_connected</Title>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1><tt>make_connected</tt></H1>
+
+<p>
+
+<pre>
+template &lt;typename Graph, typename VertexIndexMap, typename AddEdgeVisitor&gt;
+make_connected(Graph& g, VertexIndexMap vm, AddEdgeVisitor& vis);
+</pre>
+
+<p>
+
+A undirected graph <i>G</i> is connected if, for every pair of vertices
+<i>u,v</i> in <i>G</i>, there is a path from <i>u</i> to <i>v</i>.
+<tt>make_connected</tt> adds the minimum number of edges needed to make the
+input graph connected. The algorithm first identifies all of the
+connected components in the graph,
+then adds edges to connect those components together in a path. For example, if
+a graph contains three connected components <i>A</i>, <i>B</i>, and <i>C</i>,
+<tt>make_connected</tt> will add two edges. The two edges added might consist
+of one connecting a vertex in <i>A</i> with a vertex in <i>B</i> and one
+connecting a vertex in <i>B</i> with a vertex in <i>C</i>.
+<p>
+The default behavior of <tt>make_connected</tt> is to modify the graph
+<tt>g</tt> by calling <tt>add_edge(u,v,g)</tt> for every pair of vertices
+<i>(u,v)</i> where an edge needs to be added to connect <tt>g</tt>. This
+behavior can be overriden by providing a vistor as the <tt>AddEdgeVisitor</tt>
+parameter. The only requirement for an <tt>AddEdgeVisitor</tt> is that it
+define a member function with the following signature:
+<pre>
+template &lt;typename Graph, typename Vertex&gt;
+void visit_vertex_pair(Vertex u, Vertex v, Graph& g);
+</pre>
+This event point can also be used as a hook to update the underlying edge
+index map automatically as edges are added. See the
+documentation for the AddEdgeVisitor
+concept for more information.
+
+
+<H3>Where Defined</H3>
+
+<P>
+<a href="../../../boost/graph/make_connected.hpp">
+<TT>boost/graph/make_connected.hpp</TT>
+</a>
+
+<h3>Parameters</h3>
+
+IN/OUT: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph. The graph type must be a model of <a
+href="VertexListGraph.html">Vertex List Graph</a>, <a
+href="IncidenceGraph.html">Incidence Graph</a>, and
+a Mutable Graph<br>
+</blockquote>
+
+IN: <tt>VertexIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps vertices from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_vertices(g) )</tt><br>
+<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
+</blockquote>
+
+IN: <tt>AddEdgeVisitor</tt>
+
+<blockquote>
+A model of <a href="AddEdgeVisitor.html">AddEdgeVisitor
+</a>.<br>
+<b>Default</b>: <tt>default_add_edge_visitor</tt>, a class defines
+<tt>visit_vertex_pair</tt> to dispatch
+its calls to <tt>add_edge</tt>.
+</blockquote>
+
+
+
+<h3>Complexity</h3>
+
+On a graph with <i>n</i> vertices and <i>m</i> edges, <tt>make_connected</tt>
+runs in time <i>O(n + m)</i>
+
+<H3>Example</H3>
+
+<P>
+<a href="../example/make_connected.cpp">
+<TT>../example/make_connected.cpp</TT>
+</a>
+
+<h3>See Also</h3>
+
+Planar Graphs in the Boost Graph Library
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Added: trunk/libs/graph/doc/make_maximal_planar.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/make_maximal_planar.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,128 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<Head>
+<Title>Boost Graph Library: make_maximal_planar</Title>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1><tt>make_maximal_planar</tt></H1>
+
+<p>
+
+<pre>
+template &lt;typename Graph, typename PlanarEmbedding, typename VertexIndexMap, typename EdgeIndexMap, typename AddEdgeVisitor&gt;
+void make_maximal_planar(Graph& g, PlanarEmbedding embedding, VertexIndexMap vm, EdgeIndexMap em, AddEdgeVisitor vis);
+</pre>
+
+<p>
+A planar graph <i>G</i> is
+<i>maximal planar</i> if no additional edges (except parallel edges and
+self-loops) can be added to <i>G</i> without creating a non-planar graph. By
+Euler's formula, a maximal
+planar graph on <i>n</i> vertices (<i>n > 2</i>) always has <i>3n - 6</i> edges
+ and
+<i>2n - 4</i> faces. The input graph to <tt>make_maximal_planar</tt> must be a
+biconnected planar graph with at
+least 3 vertices.
+<p>
+The default behavior of <tt>make_maximal_planar</tt> is to modify the graph
+<tt>g</tt> by calling <tt>add_edge(u,v,g)</tt> for every pair of vertices
+<i>(u,v)</i> where an edge needs to be added to make <tt>g</tt> maximal planar.
+This behavior can be overriden by providing a vistor as the
+<tt>AddEdgeVisitor</tt> parameter. The only requirement for an
+<tt>AddEdgeVisitor</tt> is that it define a member function with the following
+signature:
+<pre>
+template &lt;typename Graph, typename Vertex&gt;
+void visit_vertex_pair(Vertex u, Vertex v, Graph& g);
+</pre>
+This event point can also be used as a hook to update the underlying edge
+index map automatically as edges are added. See the
+documentation for the AddEdgeVisitor
+concept for more information.
+
+<H3>Where Defined</H3>
+
+<P>
+<a href="../../../boost/graph/make_maximal_planar.hpp">
+<TT>boost/graph/make_maximal_planar.hpp</TT>
+</a>
+
+<h3>Parameters</h3>
+
+IN/OUT: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph. The graph type must be a model of <a
+href="VertexListGraph.html">Vertex List Graph</a>, <a
+href="IncidenceGraph.html">Incidence Graph</a>, and
+a Mutable Graph<br>
+</blockquote>
+
+IN: <tt>PlanarEmbedding embedding</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that models the PlanarEmbedding
+concept.
+</blockquote>
+
+IN: <tt>VertexIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps vertices from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_vertices(g) )</tt><br>
+<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
+</blockquote>
+
+IN: <tt>EdgeIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps edges from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_edges(g) )</tt><br>
+<b>Default</b>: <tt>get(edge_index,g)</tt><br>
+</blockquote>
+
+IN: <tt>AddEdgeVisitor vis</tt>
+
+<blockquote>
+A model of AddEdgeVisitor.<br>
+<b>Default</b>: <tt>default_add_edge_visitor</tt>, a class defines
+<tt>visit_vertex_pair</tt> to dispatch its calls to <tt>add_edge</tt>.
+</blockquote>
+
+
+<h3>Complexity</h3>
+
+On a graph with <i>n</i> vertices and <i>m</i> edges,
+<tt>make_maximal_planar</tt> runs in time <i>O(n + m)</i>
+
+<H3>Example</H3>
+
+<P>
+<a href="../example/make_maximal_planar.cpp">
+<TT>examples/make_maximal_planar.cpp</TT>
+</a>
+
+<h3>See Also</h3>
+
+Planar Graphs in the Boost Graph Library
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Added: trunk/libs/graph/doc/planar_canonical_ordering.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/planar_canonical_ordering.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,126 @@
+<html><head><!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ --><title>Boost Graph Library: Planar Canonical Ordering</title>
+</head>
+<body alink="#ff0000"
+ bgcolor="#ffffff"
+ link="#0000ee"
+ text="#000000"
+ vlink="#551a8b">
+<img src="../../../boost.png" alt="C++ Boost" height="86" width="277">
+
+<br clear="">
+
+<h1>Planar Canonical Ordering</h1>
+
+<pre>template &lt;typename Graph, typename PlanarEmbedding, typename OutputIterator, typename VertexIndexMap&gt;
+void planar_canonical_ordering(const Graph&amp; g, PlanarEmbedding embedding, OutputIterator ordering, VertexIndexMap vm);
+</pre>
+
+<p>
+A <i>planar canonical ordering</i> is an ordering <i>v<sub>1</sub>,
+v<sub>2</sub>, ..., v<sub>n</sub></i> of the vertices of a
+maximal
+planar graph having the property that, for
+each <i>k</i>, <i>3 &lt;= k &lt; n</i>, the graph induced by
+<i>v<sub>1</sub>, v<sub>2</sub>, ..., v<sub>k</sub></i>
+</p><ul>
+<li>is biconnected and contains the edge <i>{v<sub>1</sub>, v<sub>2</sub>}</i>
+on its outer face.
+</li><li>has any vertices in the range <i>v<sub>1</sub>, v<sub>2</sub>, ...,
+v<sub>k</sub></i> that are adjacent to <i>v<sub>(k+1)</sub></i> on its outer
+face, and these vertices form a path along the outer face.
+</li></ul>
+
+Let <i>G<sub>k</sub></i> be the graph induced by the first <i>k</i> vertices in
+the canonical ordering, along with all edges between any of the first <i>k</i>
+vertices. After <i>G<sub>k</sub></i> has been drawn, the <i>(k+1)</i>st vertex
+can be drawn easily without edge crossings, since it's adjacent only to a
+consecutive sequence of vertices on the outer face of <i>G<sub>k</sub></i>.
+<p>
+</p><blockquote>
+<center>
+<img src="./figs/canonical_ordering.png">
+</center>
+</blockquote>
+
+A planar canonical ordering exists for every maximal planar graph with at
+least 2 vertices. <tt>planar_canonical_ordering</tt> expects the input graph
+to have at least 2 vertices.
+<p>
+
+The planar canonical ordering is used as an input in some planar graph drawing
+algorithms, particularly those that create a straight line embedding.
+de Fraysseix, Pach, and Pollack
+[72]
+first proved the
+existence of such an ordering and showed how to compute one in time
+<i>O(n)</i> on a maximal planar graph with <i>n</i> vertices.
+
+
+<h3>Complexity</h3>
+If the vertex index map provides constant-time access to indices, this
+function takes time <i>O(n + m)</i> for a planar graph with <i>n</i> vertices
+and <i>m</i> edges. Note that
+in a simple planar graph with <i>f</i> faces, <i>m</i> edges, and <i>n</i>
+vertices, both <i>f</i> and <i>m</i> are <i>O(n)</i>.
+
+<h3>Where Defined</h3>
+
+<p>
+<a href="../../../boost/graph/planar_canonical_ordering.hpp">
+<tt>boost/graph/planar_canonical_ordering.hpp</tt></a>
+
+</p><h3>Parameters</h3>
+
+IN: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph. The graph type must be a model of
+VertexAndEdgeListGraph.
+</blockquote>
+
+IN: <tt>PlanarEmbedding</tt>
+
+<blockquote>
+A model of PlanarEmbedding.
+</blockquote>
+
+IN: <tt>OutputIterator</tt>
+
+<blockquote>
+An OutputIterator with <tt>value_type</tt> equal to
+<tt>graph_traits&lt;Graph&gt;::vertex_descriptor</tt>. The canonical ordering
+will be written to this iterator.
+</blockquote>
+
+IN: <tt>VertexIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps vertices from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_vertices(g) )</tt><br>
+<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
+</blockquote>
+
+<h3>Example</h3>
+
+<p>
+<a href="../example/canonical_ordering.cpp">
+<tt>examples/canonical_ordering.cpp</tt></a>
+
+</p><h3>See Also</h3>
+
+<p>
+Planar Graphs in the Boost Graph Library
+
+<br>
+</p><hr>
+Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+
+</body></html>
\ No newline at end of file

Added: trunk/libs/graph/doc/planar_face_traversal.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/planar_face_traversal.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,202 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<Head>
+<Title>Boost Graph Library: Planar Face Traversal</Title>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1>Planar Face Traversal</H1>
+
+<pre>
+template&lt;typename Graph, typename PlanarEmbedding, typename PlanarFaceVisitor, typename EdgeIndexMap&gt;
+void planar_face_traversal(const Graph& g, PlanarEmbedding embedding, PlanarFaceVisitor& visitor, EdgeIndexMap em);
+</pre>
+
+<p>
+A graph is <i>planar</i> if it can be drawn in two-dimensional space with no
+two of its edges crossing. Any embedding of a planar graph separates the plane
+into distinct regions that are bounded by sequences of edges in the graph.
+These regions are called <i>faces</i>.
+
+<br>
+<br>
+<table align="center" class="image">
+<caption align="bottom">
+<h5>A plane drawing of a graph (left), and the 8 faces defined by the planar
+embedding (right.) Each connected blue region in the image on the right is a
+face. The large blue region surrounding the graph is the <i>outer face</i>.
+</h5>
+</caption>
+<tr>
+<td>
+<img src="./figs/face_illustration.png">
+</td>
+</tr>
+<tr></tr>
+</table>
+<br>
+
+
+A traversal of the faces of a planar graph involves iterating through all faces
+of the graph, and on each face, iterating through all vertices and edges of the
+face. The iteration through all vertices and edges of each face follows a
+path around the border of the face.
+<p>
+In a biconnected graph, like the one shown above, each face is bounded by a
+cycle and each edge belongs to exactly two faces. For this reason, when
+<tt>planar_face_traversal</tt> is called on a biconnected graph, each edge will
+be visited exactly twice: once on each of two distinct faces, and no vertex
+will be visited more than once on a particular face. The output of
+<tt>planar_face_traversal</tt> on non-biconnected graphs is less intuitive -
+for example, if the graph
+consists solely of a path of vertices (and therefore a single face),
+<tt>planar_face_traversal</tt> will iterate <i>around</i> the path, visiting
+each edge twice and visiting some vertices more than once.
+<tt>planar_face_traversal</tt> does not visit isolated vertices.
+<p>
+Like other graph traversal algorithms in the Boost Graph Library, the planar
+face traversal is a generic traversal that can be customized by the
+redefinition of certain visitor event points. By defining an appropriate
+visitor, this traversal can be
+used to enumerate the faces of a planar graph, triangulate a planar graph, or
+even construct a dual of a planar graph.
+
+<br>
+<center>
+<img src="./figs/face_traversal_example.png">
+</center>
+<br>
+
+For example, on the above graph, an instance <tt>my_visitor</tt> of the
+following visitor:
+<pre>
+ struct output_visitor: public planar_face_traversal_visitor
+ {
+ void begin_face() { std::cout << "New face: "; }
+ template &lt;typename Vertex&gt; void next_vertex(Vertex v) { std::cout << v << " "; }
+ void finish_face() { std::cout << std::endl; }
+ };
+</pre>
+can be passed to the <tt>planar_face_traversal</tt> function:
+<pre>
+ output_visitor my_visitor;
+ planar_face_traversal(g, embed, my_visitor); //embed is a planar embedding of g
+</pre>
+and might produce the output
+<pre>
+ New face: 1 2 5 4
+ New face: 2 3 4 5
+ New face: 3 0 1 4
+ New face: 2 3 0 1
+</pre>
+
+<h3>Visitor Event Points</h3>
+
+<ul>
+<li><tt>visitor.begin_traversal()</tt>: called once before any faces are
+visited.
+<li><tt>visitor.begin_face()</tt>: called once, for each face, before any
+vertex or edge on that face has been visited.
+<li><tt>visitor.end_face()</tt>: called once, for each face, after all vertices
+and all edges on that face have been visited.
+<li><tt>visitor.next_vertex(Vertex v)</tt>: called once on each vertex in the
+current face (the start and end of which are designated by calls to
+<tt>begin_face()</tt> and <tt>end_face()</tt>, respectively) in order
+according to the order established by the planar embedding.
+<li><tt>visitor.next_edge(Edge e)</tt>: called once on each edge in the current
+face (the start and end of which are designated by calls to
+<tt>begin_face()</tt> and <tt>end_face()</tt>, respectively) in order
+according to the order established by the planar embedding.
+<li><tt>visitor.end_traversal()</tt>: called once after all faces have been
+visited.
+</ul>
+
+Although <tt>next_vertex</tt> is guaranteed to be called in sequence for each
+vertex as the traversal moves around a face and <tt>next_edge</tt> is
+guaranteed to be called in sequence for each edge as the traversal moves
+around a face, there's no guarantee about the order in which
+<tt>next_vertex</tt> and <tt>next_edge</tt> are called with respect to each
+other in between calls to <tt>begin_face</tt> and <tt>end_face</tt>. These
+calls may be interleaved, all vertex visits may precede all edge visits, or
+vise-versa.
+<p>
+<tt>planar_face_traversal</tt> iterates over a copy of the edges of the input
+graph, so it is safe to add edges to the graph during visitor event points.
+
+
+<h3>Complexity</h3>
+
+If all of the visitor event points run in constant time, the traversal takes
+time <i>O(n + m)</i> for a planar graph with <i>n</i> vertices and <i>m</i>
+edges. Note that
+in a simple planar graph with <i>f</i> faces, <i>m</i> edges, and <i>n</i>
+vertices, both <i>f</i> and <i>m</i> are <i>O(n)</i>.
+
+<H3>Where Defined</H3>
+
+<P>
+<a href="../../../boost/graph/planar_face_traversal.hpp">
+<TT>boost/graph/planar_face_traversal.hpp</TT>
+</a>
+
+<h3>Parameters</h3>
+
+IN: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph. The graph type must
+be a model of VertexAndEdgeListGraph
+</blockquote>
+
+IN: <tt>PlanarEmbedding</tt>
+
+<blockquote>
+A model of PlanarEmbedding.
+</blockquote>
+
+IN: <tt>PlanarFaceVisitor</tt>
+
+<blockquote>
+A model of PlanarFaceVisitor.
+</blockquote>
+
+IN: <tt>EdgeIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps edges from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_edges(g) )</tt><br>
+<b>Default</b>: <tt>get(edge_index,g)</tt><br>
+</blockquote>
+
+
+<H3>Example</H3>
+
+<P>
+<a href="../example/planar_face_traversal.cpp">
+<TT>examples/planar_face_traversal.cpp</TT></a>
+
+<h3>See Also</h3>
+
+<p>
+<ul>
+<li>Planar Graphs in the Boost Graph Library
+<li>PlanarFaceVisitor concept.
+</ul>
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Added: trunk/libs/graph/doc/planar_graphs.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/planar_graphs.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,276 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<HEAD>
+<TITLE>Boost Graph Library: Planar Graphs</TITLE>
+</HEAD>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1>Planar Graphs</H1>
+
+<p>
+A graph is <a name="planar"><i>planar</i></a> if it can be drawn in
+two-dimensional space with no two of its edges crossing. Such a drawing of a
+planar graph is called a <a name="plane_drawing"><i>plane drawing</i></a>.
+Every planar graph also admits a <i>straight-line drawing</i>, which is a
+plane drawing where each edge is represented by a line segment.
+
+<br>
+<br>
+<table class="image" align="center">
+<caption align="bottom">
+<h5>A planar graph (left), a plane drawing (center), and a straight line
+drawing (right), all of the same graph</h5>
+</caption>
+<tr>
+<td>
+<img src="./figs/planar_plane_straight_line.png">
+</td>
+</tr>
+<tr></tr>
+<table>
+<br>
+
+Two examples of non-planar graphs are K<sub>5</sub>, the complete graph on
+five vertices, and K<sub>3,3</sub>, the complete bipartite graph on six
+vertices with three vertices in each bipartition. No matter how the vertices
+of either graph are arranged in the plane, at least two edges are forced to
+cross.
+
+<a name = "kuratowskisubgraphs">
+<br>
+<br>
+<table class="image" align="center">
+<caption align="bottom"><h5>K<sub>5</sub> (left) and K<sub>3,3</sub> (right) -
+the two Kuratowski subgraphs</h5>
+</caption>
+<tr>
+<td>
+<img src="./figs/k_5_and_k_3_3.png">
+</td>
+</tr>
+</table>
+<br>
+
+The above graphs are both minimal examples of non-planarity within
+their class of graphs; delete any edge or vertex from either one and the
+resulting graph is planar. A theorem of Kuratowski singles these two graphs
+out as fundamental obstructions to planarity within any graph:
+<blockquote>
+<i>
+A graph is planar if and only if it does not contain a subgraph that is an
+expansion[1] of either K<sub>5</sub> or K<sub>3,3</sub>
+</i>
+</blockquote>
+
+<p>
+A subgraph that is an expansion of K<sub>5</sub> or K<sub>3,3</sub> is called
+a <a name = "kuratowski_subgraph"><i>Kuratowski subgraph</i></a>. Because of
+the above theorem, given any graph, one can produce either a plane drawing of
+a graph, which will certify that the graph is planar, or a minimal set of edges
+that forms a Kuratowski subgraph, which will certify that the graph is
+non-planar - in both cases, the certificate of planarity or non-planarity is
+easy to check.
+<p>
+Any plane drawing separates the plane into distinct regions bordered by graph
+edges called <i>faces</i>. As a simple example, any embedding of a triangle
+into the plane separates it into two faces: the region inside the triangle and
+the (unbounded) region outside the triangle. The unbounded region outside the
+graph's embedding is called the <i>outer face</i>. Every embedding yields
+one outer face and zero or more inner faces. A famous result called
+<a name="EulersFormula">Euler's formula</a> states that for any
+planar graph with <i>n</i> vertices, <i>e</i> edges, <i>f</i> faces, and
+<i>c</i> connected components,
+<a name="EulersFormula">
+<blockquote>
+<i>n + f = e + c + 1</i>
+</blockquote>
+</a>
+This formula implies that any planar graph with no self-loops or parallel edges
+has at most <i>3n - 6</i> edges and <i>2n- 4</i> faces. Because of these
+bounds, algorithms on planar graphs can run in time <i>O(n)</i> or space
+<i>O(n)</i> on an <i>n</i> vertex graph even if they have to traverse all
+edges or faces of the graph.
+<p>
+A convenient way to separate the actual planarity test from algorithms that
+accept a planar graph as input is through an intermediate structure called a
+<i>planar embedding</i>. Instead of specifying the absolute positions of the
+vertices and edges in the plane as a plane drawing would, a planar embedding
+specifies their positions relative to one another. A planar embedding consists
+of a sequence, for each vertex in the graph, of all of the edges incident on
+that vertex in the order in which they are to be drawn around that vertex.
+The orderings defined by this sequence
+can either represent a clockwise or counter-clockwise iteration through the
+neighbors of each vertex, but the orientation must be
+consistent across the entire embedding.
+<p>
+In the Boost Graph Library, a planar embedding is a model of the
+PlanarEmbedding concept. A type that
+models PlanarEmbedding can be passed into the planarity test and populated if
+the input graph is planar. All other "back end" planar graph algorithms accept
+this populated PlanarEmbedding as an input. Conceptually, a type that models
+PlanarEmbedding is a <a href="../../property_map/property_map.html">property
+map</a> that maps each vertex to a sequence of edges,
+where the sequence of edges has a similar interface to a standard C++
+container. The sequence of edges each vertex maps to represents the ordering
+of edges adjacent to that vertex. This interface is flexible enough to allow
+storage of the planar embedding independent from the graph in, say, a
+<tt>std::vector</tt> of <tt>std::vector</tt>s, or to allow for graph
+implementations that actually store lists of adjacent edges/vertices to
+internally re-arrange their storage to represent the planar embedding.
+Currently, only the former approach is supported when using the native graph
+types (<tt>adjacency_list</tt>, <tt>adjacency_matrix</tt>, etc.)
+of the Boost Graph Library.
+
+<H3>Tools for working with planar graphs in the Boost Graph Library</h3>
+
+The Boost Graph Library planar graph algorithms all work on undirected graphs.
+Some algorithms require certain degrees of connectivity of the input graph,
+but all algorithms work on graphs with self-loops and parallel edges.
+<p>
+The function <tt><a href = "boyer_myrvold.html">boyer_myrvold_planarity_test
+</a></tt> can be used to test whether or not a graph is planar, but it can also
+produce two important side-effects: in the case the graph is not planar, it can
+isolate a Kuratowski subgraph, and in the case the graph is planar, it can
+compute a planar embedding. The Boyer-Myrvold algorithm works on any undirected
+ graph.
+<p>
+An undirected graph is <i>connected</i> if, for any two vertices <i>u</i> and
+<i>v</i>, there's a path from <i>u</i> to <i>v</i>. An undirected graph is
+<i>biconnected</i> if it is connected and it remains connected even if any
+single vertex is removed. Finally, a planar graph is
+<i>maximal planar</i> (also called
+<i>triangulated</i>) if no additional edge (with the exception of self-loops
+and parallel edges) can be added to it without creating
+a non-planar graph. Any maximal planar simple graph on <i>n > 2</i> vertices
+has exactly <i>3n - 6</i> edges and <i>2n - 4</i> faces, a consequence of
+Euler's formula. If a planar graph isn't connected, isn't biconnected, or isn't
+maximal planar, there is some set of edges that can be added to the graph to
+make it satisfy any of those three properties while preserving planarity. Many
+planar graph drawing algorithms make at least one of these three assumptions
+about the input graph, so there are functions in the Boost Graph Library that
+can help:
+<ul>
+<li><tt>make_connected</tt> adds a minimal
+set of edges to an undirected graph to make it connected.
+<li><tt>make_biconnected_planar</tt>
+adds a set of edges to a connected, undirected planar graph to make it
+biconnected while preserving planarity.
+<li><tt>make_maximal_planar</tt> adds a
+set of edges to a biconnected, undirected planar graph to make it maximal
+planar.
+</ul>
+<p>
+Some algorithms involve a traversal of the faces of the graph, and the Boost
+Graph Library has the generic traversal function
+<tt>planar_face_traversal</tt> for
+this purpose. This traversal, like other traversals in the Boost Graph Library,
+can be customized by overriding event points in an appropriately defined
+visitor class.
+<p>
+An intermediate step in some drawing algorithms for planar graphs is the
+creation of
+a <i>canonical ordering</i> of the vertices. A canonical ordering is a
+permutation of the vertices of a maximal planar graph. It orders the vertices
+in a way that makes it straightforward to draw the <i>i</i>th vertex once the
+first <i>(i-1)</i> vertices have been drawn - the only edges connecting the
+<i>i</i>th vertex to vertices already drawn will be adjacent to a consecutive
+sequence of vertices along the outer face of the partially embedded graph. The
+function
+<tt>planar_canonical_ordering</tt>
+will create such an ordering, given a maximal planar graph and a planar
+embedding of that graph.
+<p>
+A straight line drawing can be created using the function
+<tt>
+chrobak_payne_straight_line_drawing,
+</tt> which takes a maximal planar graph, a planar embedding of that
+graph, and a canonical ordering as input. The resulting drawing maps all of the
+vertices from a graph with <i>n</i> vertices to integer coordinates on a
+<i>(2n-4) x (n-2)</i> grid such that when the edges of the graph are drawn
+as line segments connecting vertices, no two edges cross. Self-loops and
+parallel edges are ignored by this algorithm.
+<p>
+Finally, there are two functions that can be used to verify the results of the
+<tt>boyer_myrvold_planarity_test</tt> and
+<tt>chrobak_payne_straight_line_drawing</tt> functions:
+<ul>
+<li><tt>is_kuratowski_subgraph</tt>
+takes the output of <tt>boyer_myrvold_planarity_test</tt> on a nonplanar graph
+and verifies that it can be contracted into a graph isomorphic to a Kuratowski
+subgraph.
+<li><tt>is_straight_line_drawing
+</tt> takes the output of <tt>chrobak_payne_straight_line_drawing</tt> and uses
+a planar sweep algorithm to verify that none of the embedded edges intersect.
+</ul>
+
+<h3>Complexity</h3>
+
+Most of the algorithms in the Boost Graph Library that deal with planar graphs
+run in time <i>O(n)</i> on an input graph with <i>n</i> vertices. This achieves
+a theoretically optimal bound (you must at least iterate over all <i>n</i>
+vertices in order to embed a graph in the plane.) However, some of the work
+that goes into achieving these theoretically optimal time bounds may come at
+the expense of practical performance. For example, since any comparison-based
+sorting algorithm uses at least on the order of <i>n log n</i> comparisons in
+the worst case, any time an algorithm dealing with planar graphs needs to sort,
+a bucket sort is used to sort in <i>O(n)</i> time. Also, computing a planar
+embedding of a graph involves maintaining an ordered list of edges around a
+vertex, and this list of edges needs to support an arbitrary sequence of
+concatenations and reversals. A <tt>std::list</tt> can only guarantee
+<i>O(n<sup>2</sup>)</i> for a mixed sequence of <i>n</i> concatenations and
+reversals (since <tt>reverse</tt> is an <i>O(n)</i> operation.) However, our
+implementation achieves <i>O(n)</i> for these operations by using a list data
+structure that implements mixed sequences of concatenations and reversals
+lazily.
+<p>
+In both of the above cases, it may be preferable to sacrifice the nice
+theoretical upper bound for performance by using the C++ STL. The bucket sort
+allocates and populates a vector of vectors; because of the overhead in
+doing so, <tt>std::stable_sort</tt> may actually be faster in some cases.
+The custom list also uses more space than <tt>std::list</tt>, and it's not
+clear that anything other than carefully constructed pathological examples
+could force a <tt>std::list</tt> to use <i>n<sup>2</sup></i> operations within
+the planar embedding algorithm. For these reasons, the macro
+<tt>BOOST_GRAPH_PREFER_STD_LIB</tt> exists, which, when defined, will force
+the planar graph algorithms to use <tt>std::stable_sort</tt> and
+<tt>std::list</tt> in the examples above.
+<p>
+See the documentation on individual algorithms for more information about
+complexity guarantees.
+
+
+<h3>Examples</h3>
+
+<ol>
+<li><a href="../example/simple_planarity_test.cpp">Testing whether or not a
+graph is planar.</a>
+<li><a href="../example/straight_line_drawing.cpp">Creating a straight line
+drawing of a graph in the plane.</a>
+</ol>
+
+<h3>Notes</h3>
+
+<p><a name="1">[1]</a> A graph <i>G'</i> is an expansion of a graph <i>G</i> if
+<i>G'</i> can be created from <i>G</i> by a series of zero or more <i>edge
+subdivisions</i>: take any edge <i>{x,y}</i> in the graph, remove it, add a new
+vertex <i>z</i>, and add the two edges <i>{x,z}</i> and <i>{z,y}</i> to the
+graph. For example, a path of any length is an expansion of a single edge and
+a cycle of any length is an expansion of a triangle.
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Added: trunk/libs/graph/doc/straight_line_drawing.html
==============================================================================
--- (empty file)
+++ trunk/libs/graph/doc/straight_line_drawing.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,154 @@
+<HTML>
+<!-- Copyright 2007 Aaron Windsor
+ --
+ -- Distributed under the Boost Software License, Version 1.0.
+ -- (See accompanying file LICENSE_1_0.txt or copy at
+ -- http://www.boost.org/LICENSE_1_0.txt)
+ --
+ -->
+<Head>
+<Title>Boost Graph Library: Chrobak-Payne Straight Line Drawing</Title>
+<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
+ ALINK="#ff0000">
+<IMG SRC="../../../boost.png"
+ ALT="C++ Boost" width="277" height="86">
+
+<BR Clear>
+
+<H1>Chrobak-Payne Straight Line Drawing</H1>
+
+<p>
+<pre>
+template&lt;typename Graph,
+ typename PlanarEmbedding,
+ typename ForwardIterator,
+ typename PositionMap,
+ typename VertexIndexMap&gt;
+void chrobak_payne_straight_line_drawing(const Graph& g,
+ PlanarEmbedding perm,
+ ForwardIterator ordering_begin,
+ ForwardIterator ordering_end,
+ PositionMap drawing,
+ VertexIndexMap vm
+ );
+</pre>
+
+<br>
+<p>
+A <i>straight line drawing</i> of a <a href="./planar_graphs.html#planar">
+planar graph</a> is a <a href="./planar_graphs.html#plane_drawing">plane
+drawing</a> where each edge is drawn using a straight line segment. Since all
+edges are line segments, the drawing is completely determined by the placement
+of vertices in the plane. <tt>chrobak_payne_straight_line_drawing</tt> uses an
+algorithm of Chrobak and Payne
+[<a href = "./bibliography.html#chrobakpayne95">71</a>]
+to form a straight
+line drawing of a planar graph by mapping all <i>n</i> vertices in a planar
+graph to integer coordinates in a <i>(2n - 4) x (n - 2)</i> grid.
+
+<center>
+<img src="./figs/straight_line_drawing.png">
+</center>
+
+<p>
+The input graph passed to <tt>chrobak_payne_straight_line_drawing</tt> must
+be a maximal planar graph with at least
+3 vertices. Self-loops and parallel edges are ignored by this function. Note
+that the restriction that the graph be maximal planar does not
+mean that this function can only draw maximal planar graphs (the graph pictured
+above is not maximal planar, for example). If you want to
+draw a graph <i>g</i>, you can create a copy <i>g'</i> of <i>g</i>, store a
+mapping <i>m</i> of vertices in <i>g'</i> to vertices in <i>g</i>,
+triangulate <i>g'</i>, and then send
+<i>g'</i> in as the input to <tt>chrobak_payne_straight_line_drawing</tt>. The
+drawing returned can then be applied to <i>g</i> using <i>m</i> to translate
+vertices from one graph to another, since <i>g</i> contains a subset of the
+edges in <i>g'</i>.
+
+
+
+<h3>Complexity</h3>
+
+If the vertex index map provides constant-time access to indices, this
+function takes time <i>O(n + m)</i> for a planar graph with <i>n</i> vertices
+and <i>m</i> edges. Note that
+in a simple planar graph with <i>f</i> faces, <i>m</i> edges, and <i>n</i>
+vertices, both <i>f</i> and <i>m</i> are <i>O(n)</i>.
+
+<H3>Where Defined</H3>
+
+<P>
+<a href="../../../boost/graph/chrobak_payne_drawing.hpp">
+<TT>boost/graph/chrobak_payne_drawing.hpp</TT>
+</a>
+
+
+<h3>Parameters</h3>
+
+IN: <tt>Graph&amp; g</tt>
+
+<blockquote>
+An undirected graph. The graph type must be a model of <a
+href="VertexListGraph.html">Vertex List Graph</a>
+</blockquote>
+
+IN <tt>PlanarEmbedding embedding</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that models the PlanarEmbedding
+concept.
+</blockquote>
+
+IN <tt>ForwardIterator</tt>
+
+<blockquote>
+A ForwardIterator that has <tt>value_type</tt> equal to
+<tt>graph_traits&lt;Graph&gt;::vertex_descriptor</tt>.
+</blockquote>
+
+OUT: <tt>PositionMap</tt>
+
+<blockquote>
+A <a href="../../property_map/LvaluePropertyMap.html">Writable LValue Property
+Map</a> that models the Position Map concept. The Position Map concept requires
+that the value mapped to be an object that has members <tt>x</tt> and
+<tt>y</tt>. For example, if <tt>p</tt> models PositionMap and <tt>v</tt>
+is a vertex in the graph, <tt>p[v].x</tt> and <tt>p[v].y</tt> are valid
+expressions. The type of <tt>x</tt> and <tt>y</tt> must be implicitly
+convertable to <tt>std::size_t</tt>.
+</blockquote>
+
+IN: <tt>VertexIndexMap vm</tt>
+
+<blockquote>
+A <a href="../../property_map/ReadablePropertyMap.html">Readable Property Map
+</a> that maps vertices from <tt>g</tt> to distinct integers in the range
+<tt>[0, num_vertices(g) )</tt><br>
+<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
+</blockquote>
+
+
+
+<H3>Example</H3>
+
+<P>
+<a href="../example/straight_line_drawing.cpp">
+<TT>examples/straight_line_drawing.cpp</TT>
+</a>
+
+<h3>See Also</h3>
+
+<p>
+<ul>
+<li> Planar Graphs in the Boost Graph Library
+<li> <a href="is_straight_line_drawing.html"><tt>is_straight_line_drawing</tt>
+</a>
+</ul>
+
+<br>
+<HR>
+Copyright &copy 2007 Aaron Windsor (<a href="mailto:aaron.windsor_at_[hidden]">
+aaron.windsor_at_[hidden]</a>)
+</BODY>
+</HTML>

Modified: trunk/libs/graph/doc/table_of_contents.html
==============================================================================
--- trunk/libs/graph/doc/table_of_contents.html (original)
+++ trunk/libs/graph/doc/table_of_contents.html 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -76,6 +76,7 @@
             <LI>Bellman Ford Visitor
             <LI>A* Visitor</LI>
             <LI>Event Visitor
+ <LI>Planar Face Visitor
           </OL>
         <li>EventVisitorList Adaptors
           <OL>
@@ -216,6 +217,28 @@
                 <li>astar_search</li>
                 <li>lengauer_tarjan_dominator_tree</li>
                 <li>minimum_cycle_ratio and maximum_cycle_ratio</li>
+ <li>Planar Graph Algorithms
+ <ol>
+ <li><a href="boyer_myrvold.html">
+ <tt>boyer_myrvold_planarity_test</tt></a>
+ <li><a href="planar_face_traversal.html">
+ <tt>planar_face_traversal</tt></a>
+ <li><a href="planar_canonical_ordering.html">
+ <tt>planar_canonical_ordering</tt></a>
+ <li><a href="straight_line_drawing.html">
+ <tt>chrobak_payne_straight_line_drawing</tt></a>
+ <li><a href="is_straight_line_drawing.html">
+ <tt>is_straight_line_drawing</tt></a>
+ <li><a href="is_kuratowski_subgraph.html">
+ <tt>is_kuratowski_subgraph</tt></a>
+ <li><a href="make_connected.html">
+ <tt>make_connected</tt></a>
+ <li><a href="make_biconnected_planar.html">
+ <tt>make_biconnected_planar</tt></a>
+ <li><a href="make_maximal_planar.html">
+ <tt>make_maximal_planar</tt></a>
+ </ol>
+
             </OL>
          </OL>
 

Added: trunk/libs/graph/example/canonical_ordering.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/canonical_ordering.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,88 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+#include <boost/ref.hpp>
+#include <vector>
+
+#include <boost/graph/planar_canonical_ordering.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+
+
+using namespace boost;
+
+
+int main(int argc, char** argv)
+{
+
+ typedef adjacency_list
+ < vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ graph;
+
+ // Create a maximal planar graph on 6 vertices
+ graph g(6);
+
+ add_edge(0,1,g);
+ add_edge(1,2,g);
+ add_edge(2,3,g);
+ add_edge(3,4,g);
+ add_edge(4,5,g);
+ add_edge(5,0,g);
+
+ add_edge(0,2,g);
+ add_edge(0,3,g);
+ add_edge(0,4,g);
+
+ add_edge(1,3,g);
+ add_edge(1,4,g);
+ add_edge(1,5,g);
+
+ // Initialize the interior edge index
+ property_map<graph, edge_index_t>::type e_index = get(edge_index, g);
+ graph_traits<graph>::edges_size_type edge_count = 0;
+ graph_traits<graph>::edge_iterator ei, ei_end;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+
+ // Test for planarity - we know it is planar, we just want to
+ // compute the planar embedding as a side-effect
+ typedef std::vector< graph_traits<graph>::edge_descriptor > vec_t;
+ std::vector<vec_t> embedding(num_vertices(g));
+ if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ &embedding[0]
+ )
+ )
+ std::cout << "Input graph is planar" << std::endl;
+ else
+ std::cout << "Input graph is not planar" << std::endl;
+
+ typedef std::vector<graph_traits<graph>::vertex_descriptor>
+ ordering_storage_t;
+
+ ordering_storage_t ordering;
+ planar_canonical_ordering(g, &embedding[0], std::back_inserter(ordering));
+
+ ordering_storage_t::iterator oi, oi_end;
+ oi_end = ordering.end();
+ std::cout << "The planar canonical ordering is: ";
+ for(oi = ordering.begin(); oi != oi_end; ++oi)
+ std::cout << *oi << " ";
+ std::cout << std::endl;
+
+ return 0;
+}

Added: trunk/libs/graph/example/kuratowski_subgraph.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/kuratowski_subgraph.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,96 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+#include <boost/ref.hpp>
+#include <vector>
+
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+#include <boost/graph/is_kuratowski_subgraph.hpp>
+
+using namespace boost;
+
+
+int main(int argc, char** argv)
+{
+
+ typedef adjacency_list
+ < vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ graph;
+
+ // Create a K_6 (complete graph on 6 vertices), which
+ // contains both Kuratowski subgraphs as minors.
+ graph g(6);
+ add_edge(0,1,g);
+ add_edge(0,2,g);
+ add_edge(0,3,g);
+ add_edge(0,4,g);
+ add_edge(0,5,g);
+ add_edge(1,2,g);
+ add_edge(1,3,g);
+ add_edge(1,4,g);
+ add_edge(1,5,g);
+ add_edge(2,3,g);
+ add_edge(2,4,g);
+ add_edge(2,5,g);
+ add_edge(3,4,g);
+ add_edge(3,5,g);
+ add_edge(4,5,g);
+
+
+ // Initialize the interior edge index
+ property_map<graph, edge_index_t>::type e_index = get(edge_index, g);
+ graph_traits<graph>::edges_size_type edge_count = 0;
+ graph_traits<graph>::edge_iterator ei, ei_end;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+
+ // Test for planarity - we know it is not planar, we just want to
+ // compute the kuratowski subgraph as a side-effect
+ typedef std::vector< graph_traits<graph>::edge_descriptor >
+ kuratowski_edges_t;
+ kuratowski_edges_t kuratowski_edges;
+ if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::kuratowski_subgraph =
+ std::back_inserter(kuratowski_edges)
+ )
+ )
+ std::cout << "Input graph is planar" << std::endl;
+ else
+ {
+ std::cout << "Input graph is not planar" << std::endl;
+
+ std::cout << "Edges in the Kuratowski subgraph: ";
+ kuratowski_edges_t::iterator ki, ki_end;
+ ki_end = kuratowski_edges.end();
+ for(ki = kuratowski_edges.begin(); ki != ki_end; ++ki)
+ {
+ std::cout << *ki << " ";
+ }
+ std::cout << std::endl;
+
+ std::cout << "Is a kuratowski subgraph? ";
+ if (is_kuratowski_subgraph
+ (g, kuratowski_edges.begin(), kuratowski_edges.end())
+ )
+ std::cout << "Yes." << std::endl;
+ else
+ std::cout << "No." << std::endl;
+ }
+
+ return 0;
+}

Added: trunk/libs/graph/example/make_biconnected_planar.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/make_biconnected_planar.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,108 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+#include <boost/ref.hpp>
+#include <vector>
+
+#include <boost/graph/biconnected_components.hpp>
+#include <boost/graph/make_biconnected_planar.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+
+
+using namespace boost;
+
+int main(int argc, char** argv)
+{
+
+ typedef adjacency_list
+ < vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ graph;
+
+ graph g(11);
+ add_edge(0,1,g);
+ add_edge(2,3,g);
+ add_edge(3,0,g);
+ add_edge(3,4,g);
+ add_edge(4,5,g);
+ add_edge(5,3,g);
+ add_edge(5,6,g);
+ add_edge(6,7,g);
+ add_edge(7,8,g);
+ add_edge(8,5,g);
+ add_edge(8,9,g);
+ add_edge(0,10,g);
+
+
+ //Initialize the interior edge index
+ property_map<graph, edge_index_t>::type e_index = get(edge_index, g);
+ graph_traits<graph>::edges_size_type edge_count = 0;
+ graph_traits<graph>::edge_iterator ei, ei_end;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+
+ //Test for planarity; compute the planar embedding as a side-effect
+ typedef std::vector< graph_traits<graph>::edge_descriptor > vec_t;
+ std::vector<vec_t> embedding(num_vertices(g));
+ if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ &embedding[0]
+ )
+ )
+ std::cout << "Input graph is planar" << std::endl;
+ else
+ std::cout << "Input graph is not planar" << std::endl;
+
+ typedef std::vector< graph_traits<graph>::edges_size_type >
+ component_storage_t;
+ typedef iterator_property_map
+ < component_storage_t::iterator,
+ property_map<graph, edge_index_t>::type
+ >
+ component_map_t;
+
+ component_storage_t component_storage(num_edges(g));
+ component_map_t component(component_storage.begin(), get(edge_index, g));
+
+ std::cout << "Before calling make_biconnected_planar, the graph has "
+ << biconnected_components(g, component)
+ << " biconnected components" << std::endl;
+
+ make_biconnected_planar(g, &embedding[0]);
+
+ // Re-initialize the edge index, since we just added a few edges
+ edge_count = 0;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+ // Re-size the storage for the biconnected components, since we
+ // just added a few edges
+
+ component_storage.resize(num_edges(g));
+ component = component_map_t(component_storage.begin(), get(edge_index,g));
+
+ std::cout << "After calling make_biconnected_planar, the graph has "
+ << biconnected_components(g, component)
+ << " biconnected components" << std::endl;
+
+ if (boyer_myrvold_planarity_test(g))
+ std::cout << "Also, the graph is still planar." << std::endl;
+ else
+ std::cout << "But the graph is not still planar." << std::endl;
+
+ return 0;
+}

Added: trunk/libs/graph/example/make_connected.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/make_connected.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,57 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+#include <vector>
+
+#include <boost/graph/connected_components.hpp>
+#include <boost/graph/make_connected.hpp>
+
+
+
+using namespace boost;
+
+int main(int argc, char** argv)
+{
+
+ typedef adjacency_list
+ < vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>
+ >
+ graph;
+
+ graph g(11);
+ add_edge(0,1,g);
+ add_edge(2,3,g);
+ add_edge(3,4,g);
+ add_edge(5,6,g);
+ add_edge(6,7,g);
+ add_edge(8,9,g);
+ add_edge(9,10,g);
+ add_edge(10,8,g);
+
+ std::vector< graph_traits<graph>::vertices_size_type >
+ component(num_vertices(g));
+
+ std::cout << "Before calling make_connected, the graph has "
+ << connected_components(g, &component[0])
+ << " connected components" << std::endl;
+
+ make_connected(g);
+
+ std::cout << "After calling make_connected, the graph has "
+ << connected_components(g, &component[0])
+ << " connected components" << std::endl;
+
+ return 0;
+}

Added: trunk/libs/graph/example/make_maximal_planar.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/make_maximal_planar.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,143 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+#include <boost/ref.hpp>
+#include <vector>
+
+#include <boost/graph/make_biconnected_planar.hpp>
+#include <boost/graph/make_maximal_planar.hpp>
+#include <boost/graph/planar_face_traversal.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+
+
+
+// This example shows how to start with a connected planar graph
+// and add edges to make the graph maximal planar (triangulated.)
+// Any maximal planar simple graph on n vertices has 3n - 6 edges and
+// 2n - 4 faces, a consequence of Euler's formula.
+
+
+
+using namespace boost;
+
+
+// This visitor is passed to planar_face_traversal to count the
+// number of faces.
+struct face_counter : public planar_face_traversal_visitor
+{
+ face_counter() : count(0) {}
+ void begin_face() { ++count; }
+ int count;
+};
+
+
+int main(int argc, char** argv)
+{
+
+ typedef adjacency_list
+ < vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ graph;
+
+ // Create the graph - a straight line
+ graph g(10);
+ add_edge(0,1,g);
+ add_edge(1,2,g);
+ add_edge(2,3,g);
+ add_edge(3,4,g);
+ add_edge(4,5,g);
+ add_edge(5,6,g);
+ add_edge(6,7,g);
+ add_edge(7,8,g);
+ add_edge(8,9,g);
+
+ std::cout << "Since the input graph is planar with " << num_vertices(g)
+ << " vertices," << std::endl
+ << "The output graph should be planar with "
+ << 3*num_vertices(g) - 6 << " edges and "
+ << 2*num_vertices(g) - 4 << " faces." << std::endl;
+
+ //Initialize the interior edge index
+ property_map<graph, edge_index_t>::type e_index = get(edge_index, g);
+ graph_traits<graph>::edges_size_type edge_count = 0;
+ graph_traits<graph>::edge_iterator ei, ei_end;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+
+ //Test for planarity; compute the planar embedding as a side-effect
+ typedef std::vector< graph_traits<graph>::edge_descriptor > vec_t;
+ std::vector<vec_t> embedding(num_vertices(g));
+ if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ &embedding[0]
+ )
+ )
+ std::cout << "Input graph is planar" << std::endl;
+ else
+ std::cout << "Input graph is not planar" << std::endl;
+
+ make_biconnected_planar(g, &embedding[0]);
+
+ // Re-initialize the edge index, since we just added a few edges
+ edge_count = 0;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+
+ //Test for planarity again; compute the planar embedding as a side-effect
+ if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ &embedding[0]
+ )
+ )
+ std::cout << "After calling make_biconnected, the graph is still planar"
+ << std::endl;
+ else
+ std::cout << "After calling make_biconnected, the graph is not planar"
+ << std::endl;
+
+ make_maximal_planar(g, &embedding[0]);
+
+
+
+ // Re-initialize the edge index, since we just added a few edges
+ edge_count = 0;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+ // Test for planarity one final time; compute the planar embedding as a
+ // side-effect
+ std::cout << "After calling make_maximal_planar, the final graph ";
+ if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ &embedding[0]
+ )
+ )
+ std::cout << "is planar." << std::endl;
+ else
+ std::cout << "is not planar." << std::endl;
+
+ std::cout << "The final graph has " << num_edges(g)
+ << " edges." << std::endl;
+
+ face_counter count_visitor;
+ planar_face_traversal(g, &embedding[0], count_visitor);
+ std::cout << "The final graph has " << count_visitor.count << " faces."
+ << std::endl;
+
+ return 0;
+}

Added: trunk/libs/graph/example/planar_face_traversal.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/planar_face_traversal.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,124 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+#include <boost/ref.hpp>
+#include <vector>
+
+#include <boost/graph/planar_face_traversal.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+
+
+using namespace boost;
+
+
+
+// Some planar face traversal visitors that will
+// print the vertices and edges on the faces
+
+struct output_visitor : public planar_face_traversal_visitor
+{
+ void begin_face() { std::cout << "New face: "; }
+ void end_face() { std::cout << std::endl; }
+};
+
+
+
+struct vertex_output_visitor : public output_visitor
+{
+ template <typename Vertex>
+ void next_vertex(Vertex v)
+ {
+ std::cout << v << " ";
+ }
+};
+
+
+
+struct edge_output_visitor : public output_visitor
+{
+ template <typename Edge>
+ void next_edge(Edge e)
+ {
+ std::cout << e << " ";
+ }
+};
+
+
+int main(int argc, char** argv)
+{
+
+ typedef adjacency_list
+ < vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ graph;
+
+ // Create a graph - this is a biconnected, 3 x 3 grid.
+ // It should have four small (four vertex/four edge) faces and
+ // one large face that contains all but the interior vertex
+ graph g(9);
+
+ add_edge(0,1,g);
+ add_edge(1,2,g);
+
+ add_edge(3,4,g);
+ add_edge(4,5,g);
+
+ add_edge(6,7,g);
+ add_edge(7,8,g);
+
+
+ add_edge(0,3,g);
+ add_edge(3,6,g);
+
+ add_edge(1,4,g);
+ add_edge(4,7,g);
+
+ add_edge(2,5,g);
+ add_edge(5,8,g);
+
+
+ // Initialize the interior edge index
+ property_map<graph, edge_index_t>::type e_index = get(edge_index, g);
+ graph_traits<graph>::edges_size_type edge_count = 0;
+ graph_traits<graph>::edge_iterator ei, ei_end;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+
+ // Test for planarity - we know it is planar, we just want to
+ // compute the planar embedding as a side-effect
+ typedef std::vector< graph_traits<graph>::edge_descriptor > vec_t;
+ std::vector<vec_t> embedding(num_vertices(g));
+ if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ &embedding[0]
+ )
+ )
+ std::cout << "Input graph is planar" << std::endl;
+ else
+ std::cout << "Input graph is not planar" << std::endl;
+
+
+ std::cout << std::endl << "Vertices on the faces: " << std::endl;
+ vertex_output_visitor v_vis;
+ planar_face_traversal(g, &embedding[0], v_vis);
+
+ std::cout << std::endl << "Edges on the faces: " << std::endl;
+ edge_output_visitor e_vis;
+ planar_face_traversal(g, &embedding[0], e_vis);
+
+ return 0;
+}

Added: trunk/libs/graph/example/simple_planarity_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/simple_planarity_test.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,70 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+
+
+int main(int argc, char** argv)
+{
+
+ // This program illustrates a simple use of boyer_myrvold_planar_embedding
+ // as a simple yes/no test for planarity.
+
+ using namespace boost;
+
+ typedef adjacency_list<vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>
+ > graph;
+
+ graph K_4(4);
+ add_edge(0, 1, K_4);
+ add_edge(0, 2, K_4);
+ add_edge(0, 3, K_4);
+ add_edge(1, 2, K_4);
+ add_edge(1, 3, K_4);
+ add_edge(2, 3, K_4);
+
+ if (boyer_myrvold_planarity_test(K_4))
+ std::cout << "K_4 is planar." << std::endl;
+ else
+ std::cout << "ERROR! K_4 should have been recognized as planar!"
+ << std::endl;
+
+ graph K_5(5);
+ add_edge(0, 1, K_5);
+ add_edge(0, 2, K_5);
+ add_edge(0, 3, K_5);
+ add_edge(0, 4, K_5);
+ add_edge(1, 2, K_5);
+ add_edge(1, 3, K_5);
+ add_edge(1, 4, K_5);
+ add_edge(2, 3, K_5);
+ add_edge(2, 4, K_5);
+
+ // We've almost created a K_5 - it's missing one edge - so it should still
+ // be planar at this point.
+
+ if (boyer_myrvold_planarity_test(K_5))
+ std::cout << "K_5 (minus an edge) is planar." << std::endl;
+ else
+ std::cout << "ERROR! K_5 with one edge missing should"
+ << " have been recognized as planar!" << std::endl;
+
+ // Now add the final edge...
+ add_edge(3, 4, K_5);
+
+ if (boyer_myrvold_planarity_test(K_5))
+ std::cout << "ERROR! K_5 was recognized as planar!" << std::endl;
+ else
+ std::cout << "K_5 is not planar." << std::endl;
+
+ return 0;
+}

Added: trunk/libs/graph/example/straight_line_drawing.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/straight_line_drawing.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,139 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <iostream>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/property_map.hpp>
+#include <vector>
+
+#include <boost/graph/planar_canonical_ordering.hpp>
+#include <boost/graph/is_straight_line_drawing.hpp>
+#include <boost/graph/chrobak_payne_drawing.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+
+
+
+using namespace boost;
+
+//a class to hold the coordinates of the straight line embedding
+struct coord_t
+{
+ std::size_t x;
+ std::size_t y;
+};
+
+
+int main(int argc, char** argv)
+{
+ typedef adjacency_list
+ < vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>
+ > graph;
+
+
+
+ //Define the storage type for the planar embedding
+ typedef std::vector< std::vector< graph_traits<graph>::edge_descriptor > >
+ embedding_storage_t;
+ typedef boost::iterator_property_map
+ < embedding_storage_t::iterator,
+ property_map<graph, vertex_index_t>::type
+ >
+ embedding_t;
+
+
+
+ // Create the graph - a maximal planar graph on 7 vertices. The functions
+ // planar_canonical_ordering and chrobak_payne_straight_line_drawing both
+ // require a maximal planar graph. If you start with a graph that isn't
+ // maximal planar (or you're not sure), you can use the functions
+ // make_connected, make_biconnected_planar, and make_maximal planar in
+ // sequence to add a set of edges to any undirected planar graph to make
+ // it maximal planar.
+
+ graph g(7);
+ add_edge(0,1,g);
+ add_edge(1,2,g);
+ add_edge(2,3,g);
+ add_edge(3,0,g);
+ add_edge(3,4,g);
+ add_edge(4,5,g);
+ add_edge(5,6,g);
+ add_edge(6,3,g);
+ add_edge(0,4,g);
+ add_edge(1,3,g);
+ add_edge(3,5,g);
+ add_edge(2,6,g);
+ add_edge(1,4,g);
+ add_edge(1,5,g);
+ add_edge(1,6,g);
+
+
+
+ // Create the planar embedding
+ embedding_storage_t embedding_storage(num_vertices(g));
+ embedding_t embedding(embedding_storage.begin(), get(vertex_index,g));
+
+ boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding = embedding
+ );
+
+
+
+ // Find a canonical ordering
+ std::vector<graph_traits<graph>::vertex_descriptor> ordering;
+ planar_canonical_ordering(g, embedding, std::back_inserter(ordering));
+
+
+ //Set up a property map to hold the mapping from vertices to coord_t's
+ typedef std::vector< coord_t > straight_line_drawing_storage_t;
+ typedef boost::iterator_property_map
+ < straight_line_drawing_storage_t::iterator,
+ property_map<graph, vertex_index_t>::type
+ >
+ straight_line_drawing_t;
+
+ straight_line_drawing_storage_t straight_line_drawing_storage
+ (num_vertices(g));
+ straight_line_drawing_t straight_line_drawing
+ (straight_line_drawing_storage.begin(),
+ get(vertex_index,g)
+ );
+
+
+
+ // Compute the straight line drawing
+ chrobak_payne_straight_line_drawing(g,
+ embedding,
+ ordering.begin(),
+ ordering.end(),
+ straight_line_drawing
+ );
+
+
+
+ std::cout << "The straight line drawing is: " << std::endl;
+ graph_traits<graph>::vertex_iterator vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ coord_t coord(get(straight_line_drawing,*vi));
+ std::cout << *vi << " -> (" << coord.x << ", " << coord.y << ")"
+ << std::endl;
+ }
+
+ // Verify that the drawing is actually a plane drawing
+ if (is_straight_line_drawing(g, straight_line_drawing))
+ std::cout << "Is a plane drawing." << std::endl;
+ else
+ std::cout << "Is not a plane drawing." << std::endl;
+
+ return 0;
+}

Modified: trunk/libs/graph/test/Jamfile.v2
==============================================================================
--- trunk/libs/graph/test/Jamfile.v2 (original)
+++ trunk/libs/graph/test/Jamfile.v2 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -5,6 +5,8 @@
 
 local optional_tests ;
 
+path-constant PLANAR_INPUT_FILES : ./planar_input_graphs ;
+
 if [ modules.peek : EXPAT_INCLUDE ] && [ modules.peek : EXPAT_LIBPATH ]
 {
   optional_tests += [ run graphml_test.cpp ../build//boost_graph ] ;
@@ -105,6 +107,24 @@
 
     [ run cycle_ratio_tests.cpp ../build//boost_graph ]
 
+ [ run basic_planarity_test.cpp ]
+
+ [ run make_connected_test.cpp ]
+
+ [ run make_biconnected_planar_test.cpp ]
+
+ [ run make_maximal_planar_test.cpp ]
+
+ [ run all_planar_input_files_test.cpp
+ ../../filesystem/build
+ ../../system/build
+ : $(PLANAR_INPUT_FILES) ]
+
+ [ run parallel_edges_loops_test.cpp
+ ../../filesystem/build
+ ../../system/build
+ : $(PLANAR_INPUT_FILES) ]
+
     $(optional_tests)
     ;
 

Added: trunk/libs/graph/test/all_planar_input_files_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/all_planar_input_files_test.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,287 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+/*
+
+This test looks in the directory "planar_input_graphs" for any files
+of the form *.dimacs. Each such file is used to create an input graph
+and test the input graph for planarity. If the graph is planar, a
+straight line drawing is generated and verified. If the graph isn't
+planar, a kuratowski subgraph is isolated and verified.
+
+This test needs to be linked against Boost.Filesystem.
+
+*/
+
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include <string>
+#include <utility>
+
+
+#include <boost/property_map.hpp>
+#include <boost/lexical_cast.hpp>
+#include <boost/tuple/tuple.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/algorithm/string.hpp>
+#include <boost/test/minimal.hpp>
+
+
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/depth_first_search.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/planar_canonical_ordering.hpp>
+#include <boost/graph/make_connected.hpp>
+#include <boost/graph/make_biconnected_planar.hpp>
+#include <boost/graph/make_maximal_planar.hpp>
+#include <boost/graph/is_straight_line_drawing.hpp>
+#include <boost/graph/is_kuratowski_subgraph.hpp>
+#include <boost/graph/chrobak_payne_drawing.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+#include <boost/graph/planar_detail/add_edge_visitors.hpp>
+
+
+
+
+
+
+using namespace boost;
+
+struct coord_t
+{
+ std::size_t x;
+ std::size_t y;
+};
+
+
+
+template <typename Graph>
+void read_dimacs(Graph& g, const std::string& filename)
+{
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ std::vector<vertex_t> vertices_by_index;
+
+ std::ifstream in(filename.c_str());
+
+ while (!in.eof())
+ {
+ char buffer[256];
+ in.getline(buffer, 256);
+ std::string s(buffer);
+
+ if (s.size() == 0)
+ continue;
+
+ std::vector<std::string> v;
+ split(v, buffer, is_any_of(" \t\n"));
+
+ if (v[0] == "p")
+ {
+ //v[1] == "edge"
+ g = Graph(boost::lexical_cast<std::size_t>(v[2].c_str()));
+ std::copy(vertices(g).first,
+ vertices(g).second,
+ std::back_inserter(vertices_by_index)
+ );
+ }
+ else if (v[0] == "e")
+ {
+ add_edge(vertices_by_index
+ [boost::lexical_cast<std::size_t>(v[1].c_str())],
+ vertices_by_index
+ [boost::lexical_cast<std::size_t>(v[2].c_str())],
+ g);
+ }
+ }
+}
+
+
+
+
+
+
+int test_graph(const std::string& dimacs_filename)
+{
+
+ typedef adjacency_list<listS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int> > graph;
+
+ typedef graph_traits<graph>::edge_descriptor edge_t;
+ typedef graph_traits<graph>::edge_iterator edge_iterator_t;
+ typedef graph_traits<graph>::vertex_iterator vertex_iterator_t;
+ typedef graph_traits<graph>::edges_size_type e_size_t;
+ typedef graph_traits<graph>::vertices_size_type v_size_t;
+ typedef graph_traits<graph>::vertex_descriptor vertex_t;
+ typedef std::pair<vertex_t, vertex_t> vertex_pair_t;
+ typedef edge_index_update_visitor<property_map<graph, edge_index_t>::type>
+ edge_visitor_t;
+
+ vertex_iterator_t vi, vi_end;
+ edge_iterator_t ei, ei_end;
+
+ graph g;
+ read_dimacs(g, dimacs_filename);
+
+ // Initialize the interior edge index
+ property_map<graph, edge_index_t>::type e_index = get(edge_index, g);
+ e_size_t edge_count = 0;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+ // Initialize the interior vertex index - not needed if the vertices
+ // are stored with a vecS
+ /*
+ property_map<graph, vertex_index_t>::type v_index = get(vertex_index, g);
+ v_size_t vertex_count = 0;
+ for(tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ put(v_index, *vi, vertex_count++);
+ */
+
+ // This edge_updater will automatically update the interior edge
+ // index of the graph as edges are created.
+ edge_visitor_t edge_updater(get(edge_index, g), num_edges(g));
+
+ // The input graph may not be maximal planar, but the Chrobak-Payne straight
+ // line drawing needs a maximal planar graph as input. So, we make a copy of
+ // the original graph here, then add edges to the graph to make it maximal
+ // planar. When we're done creating a drawing of the maximal planar graph,
+ // we can use the same mapping of vertices to points on the grid to embed the
+ // original, non-maximal graph.
+ graph g_copy(g);
+
+ // Add edges to make g connected, if it isn't already
+ make_connected(g, get(vertex_index, g), edge_updater);
+
+ std::vector<graph_traits<graph>::edge_descriptor> kuratowski_edges;
+
+ typedef std::vector< std::vector<edge_t> > edge_permutation_storage_t;
+ typedef boost::iterator_property_map
+ < edge_permutation_storage_t::iterator,
+ property_map<graph, vertex_index_t>::type
+ >
+ edge_permutation_t;
+
+ edge_permutation_storage_t edge_permutation_storage(num_vertices(g));
+ edge_permutation_t perm(edge_permutation_storage.begin(),
+ get(vertex_index,g)
+ );
+
+ // Test for planarity, computing the planar embedding or the kuratowski
+ // subgraph.
+ if (!boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding = perm,
+ boyer_myrvold_params::kuratowski_subgraph
+ = std::back_inserter(kuratowski_edges)
+ )
+ )
+ {
+ std::cout << "Not planar. ";
+ BOOST_REQUIRE(is_kuratowski_subgraph(g,
+ kuratowski_edges.begin(),
+ kuratowski_edges.end()
+ )
+ );
+
+ return 0;
+ }
+
+ // If we get this far, we have a connected planar graph.
+ make_biconnected_planar(g, perm, get(edge_index, g), edge_updater);
+
+ // Compute the planar embedding of the (now) biconnected planar graph
+ BOOST_CHECK (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ perm
+ )
+ );
+
+ // If we get this far, we have a biconnected planar graph
+ make_maximal_planar(g, perm, get(vertex_index,g), get(edge_index,g),
+ edge_updater
+ );
+
+ // Now the graph is triangulated - we can compute the final planar embedding
+ BOOST_CHECK (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding =
+ perm
+ )
+ );
+
+ // Compute a planar canonical ordering of the vertices
+ std::vector<vertex_t> ordering;
+ planar_canonical_ordering(g, perm, std::back_inserter(ordering));
+
+ BOOST_CHECK(ordering.size() == num_vertices(g));
+
+ typedef std::vector< coord_t > drawing_storage_t;
+ typedef boost::iterator_property_map
+ < drawing_storage_t::iterator, property_map<graph, vertex_index_t>::type >
+ drawing_map_t;
+
+ drawing_storage_t drawing_vector(num_vertices(g));
+ drawing_map_t drawing(drawing_vector.begin(), get(vertex_index,g));
+
+ // Compute a straight line drawing
+ chrobak_payne_straight_line_drawing(g,
+ perm,
+ ordering.begin(),
+ ordering.end(),
+ drawing
+ );
+
+ std::cout << "Planar. ";
+ BOOST_REQUIRE (is_straight_line_drawing(g, drawing));
+
+ return 0;
+}
+
+
+
+
+
+
+
+int test_main(int argc, char* argv[])
+{
+
+ std::string input_directory_str = "planar_input_graphs";
+ if (argc > 1)
+ {
+ input_directory_str = std::string(argv[1]);
+ }
+
+ std::cout << "Reading planar input files from " << input_directory_str
+ << std::endl;
+
+ filesystem::path input_directory =
+ filesystem::system_complete
+ (filesystem::path(input_directory_str, filesystem::native));
+ const std::string dimacs_suffix = ".dimacs";
+
+ filesystem::directory_iterator dir_end;
+ for( filesystem::directory_iterator dir_itr(input_directory);
+ dir_itr != dir_end; ++dir_itr)
+ {
+
+ if (!ends_with(dir_itr->string(), dimacs_suffix))
+ continue;
+
+ std::cout << "Testing " << dir_itr->path().leaf() << "... ";
+ BOOST_REQUIRE (test_graph(dir_itr->string()) == 0);
+
+ std::cout << std::endl;
+ }
+
+ return 0;
+
+}

Added: trunk/libs/graph/test/basic_planarity_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/basic_planarity_test.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,259 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+#include <boost/property_map.hpp>
+#include <boost/vector_property_map.hpp>
+#include <boost/test/minimal.hpp>
+
+
+using namespace boost;
+
+
+struct VertexIndexUpdater
+{
+ template <typename Graph>
+ void reset(Graph& g)
+ {
+ typename property_map<Graph, vertex_index_t>::type index = get(vertex_index, g);
+ typename graph_traits<Graph>::vertex_iterator vi, vi_end;
+ typename graph_traits<Graph>::vertices_size_type cnt = 0;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ put(index, *vi, cnt++);
+ }
+};
+
+struct NoVertexIndexUpdater
+{
+ template <typename Graph> void reset(Graph& g) {}
+};
+
+
+
+template <typename Graph, typename VertexIndexUpdater>
+void test_K_5(VertexIndexUpdater vertex_index)
+{
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+
+ Graph g;
+ vertex_t v1 = add_vertex(g);
+ vertex_t v2 = add_vertex(g);
+ vertex_t v3 = add_vertex(g);
+ vertex_t v4 = add_vertex(g);
+ vertex_t v5 = add_vertex(g);
+ vertex_index.reset(g);
+
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v1, v2, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v1, v3, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v1, v4, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v1, v5, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v2, v3, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v2, v4, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v2, v5, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v3, v4, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v3, v5, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+
+ //This edge should make the graph non-planar
+ add_edge(v4, v5, g);
+ BOOST_CHECK(!boyer_myrvold_planarity_test(g));
+
+}
+
+
+
+
+
+template <typename Graph, typename VertexIndexUpdater>
+void test_K_3_3(VertexIndexUpdater vertex_index)
+{
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+
+ Graph g;
+ vertex_t v1 = add_vertex(g);
+ vertex_t v2 = add_vertex(g);
+ vertex_t v3 = add_vertex(g);
+ vertex_t v4 = add_vertex(g);
+ vertex_t v5 = add_vertex(g);
+ vertex_t v6 = add_vertex(g);
+ vertex_index.reset(g);
+
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v1, v4, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v1, v5, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v1, v6, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v2, v4, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v2, v5, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v2, v6, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v3, v4, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ add_edge(v3, v5, g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+
+ //This edge should make the graph non-planar
+ add_edge(v3, v6, g);
+ BOOST_CHECK(!boyer_myrvold_planarity_test(g));
+
+}
+
+
+
+
+
+// This test creates a maximal planar graph on num_vertices vertices,
+// then, if num_vertices is at least 5, adds an additional edge to
+// create a non-planar graph.
+
+template <typename Graph, typename VertexIndexUpdater>
+void test_maximal_planar(VertexIndexUpdater vertex_index, std::size_t num_vertices)
+{
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+
+ Graph g;
+ std::vector<vertex_t> vmap;
+ for(std::size_t i = 0; i < num_vertices; ++i)
+ vmap.push_back(add_vertex(g));
+
+ vertex_index.reset(g);
+
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ //create a cycle
+ for(std::size_t i = 0; i < num_vertices; ++i)
+ {
+ add_edge(vmap[i], vmap[(i+1) % num_vertices], g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ }
+
+ //triangulate the interior of the cycle.
+ for(std::size_t i = 2; i < num_vertices - 1; ++i)
+ {
+ add_edge(vmap[0], vmap[i], g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ }
+
+ //triangulate the exterior of the cycle.
+ for(std::size_t i = 3; i < num_vertices; ++i)
+ {
+ add_edge(vmap[1], vmap[i], g);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ }
+
+ //Now add an additional edge, forcing the graph to be non-planar.
+ if (num_vertices > 4)
+ {
+ add_edge(vmap[2], vmap[4], g);
+ BOOST_CHECK(!boyer_myrvold_planarity_test(g));
+ }
+
+}
+
+
+
+
+
+int test_main(int, char* [])
+{
+ typedef adjacency_list
+ <vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>
+ >
+ VVgraph_t;
+
+ typedef adjacency_list
+ <vecS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>
+ >
+ VLgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>
+ >
+ LVgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>
+ >
+ LLgraph_t;
+
+ typedef adjacency_list
+ <setS,
+ setS,
+ undirectedS,
+ property<vertex_index_t, int>
+ >
+ SSgraph_t;
+
+ test_K_5<VVgraph_t>(NoVertexIndexUpdater());
+ test_K_3_3<VVgraph_t>(NoVertexIndexUpdater());
+ test_maximal_planar<VVgraph_t>(NoVertexIndexUpdater(), 3);
+ test_maximal_planar<VVgraph_t>(NoVertexIndexUpdater(), 6);
+ test_maximal_planar<VVgraph_t>(NoVertexIndexUpdater(), 10);
+ test_maximal_planar<VVgraph_t>(NoVertexIndexUpdater(), 20);
+ test_maximal_planar<VVgraph_t>(NoVertexIndexUpdater(), 50);
+
+ test_K_5<VLgraph_t>(VertexIndexUpdater());
+ test_K_3_3<VLgraph_t>(VertexIndexUpdater());
+ test_maximal_planar<VLgraph_t>(VertexIndexUpdater(), 3);
+ test_maximal_planar<VLgraph_t>(VertexIndexUpdater(), 6);
+ test_maximal_planar<VLgraph_t>(VertexIndexUpdater(), 10);
+ test_maximal_planar<VLgraph_t>(VertexIndexUpdater(), 20);
+ test_maximal_planar<VLgraph_t>(VertexIndexUpdater(), 50);
+
+ test_K_5<LVgraph_t>(NoVertexIndexUpdater());
+ test_K_3_3<LVgraph_t>(NoVertexIndexUpdater());
+ test_maximal_planar<LVgraph_t>(NoVertexIndexUpdater(), 3);
+ test_maximal_planar<LVgraph_t>(NoVertexIndexUpdater(), 6);
+ test_maximal_planar<LVgraph_t>(NoVertexIndexUpdater(), 10);
+ test_maximal_planar<LVgraph_t>(NoVertexIndexUpdater(), 20);
+ test_maximal_planar<LVgraph_t>(NoVertexIndexUpdater(), 50);
+
+ test_K_5<LLgraph_t>(VertexIndexUpdater());
+ test_K_3_3<LLgraph_t>(VertexIndexUpdater());
+ test_maximal_planar<LLgraph_t>(VertexIndexUpdater(), 3);
+ test_maximal_planar<LLgraph_t>(VertexIndexUpdater(), 6);
+ test_maximal_planar<LLgraph_t>(VertexIndexUpdater(), 10);
+ test_maximal_planar<LLgraph_t>(VertexIndexUpdater(), 20);
+ test_maximal_planar<LLgraph_t>(VertexIndexUpdater(), 50);
+
+ test_K_5<SSgraph_t>(VertexIndexUpdater());
+ test_K_3_3<SSgraph_t>(VertexIndexUpdater());
+ test_maximal_planar<SSgraph_t>(VertexIndexUpdater(), 3);
+ test_maximal_planar<SSgraph_t>(VertexIndexUpdater(), 6);
+ test_maximal_planar<SSgraph_t>(VertexIndexUpdater(), 10);
+ test_maximal_planar<SSgraph_t>(VertexIndexUpdater(), 20);
+ test_maximal_planar<SSgraph_t>(VertexIndexUpdater(), 50);
+
+ return 0;
+}

Added: trunk/libs/graph/test/make_biconnected_planar_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/make_biconnected_planar_test.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,169 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/make_biconnected_planar.hpp>
+#include <boost/graph/biconnected_components.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+#include <boost/property_map.hpp>
+#include <boost/vector_property_map.hpp>
+#include <boost/test/minimal.hpp>
+
+
+using namespace boost;
+
+
+template <typename Graph>
+void reset_edge_index(Graph& g)
+{
+ typename property_map<Graph, edge_index_t>::type index = get(edge_index, g);
+ typename graph_traits<Graph>::edge_iterator ei, ei_end;
+ typename graph_traits<Graph>::edges_size_type cnt = 0;
+ for(tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ put(index, *ei, cnt++);
+}
+
+
+template <typename Graph>
+void make_line_graph(Graph& g, int size)
+{
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+
+ vertex_t prev_vertex = add_vertex(g);
+
+ for(int i = 1; i < size; ++i)
+ {
+ vertex_t curr_vertex = add_vertex(g);
+ add_edge(curr_vertex, prev_vertex, g);
+ prev_vertex = curr_vertex;
+ }
+}
+
+
+struct UpdateVertexIndex
+{
+ template <typename Graph>
+ void update(Graph& g)
+ {
+ typename property_map<Graph, vertex_index_t>::type index = get(vertex_index, g);
+ typename graph_traits<Graph>::vertex_iterator vi, vi_end;
+ typename graph_traits<Graph>::vertices_size_type cnt = 0;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ put(index, *vi, cnt++);
+ }
+};
+
+
+struct NoVertexIndexUpdater
+{
+ template <typename Graph> void update(Graph& g) {}
+};
+
+
+
+template <typename Graph, typename VertexIndexUpdater>
+void test_line_graph(VertexIndexUpdater vertex_index_updater, int size)
+{
+
+ Graph g;
+ make_line_graph(g, size);
+ vertex_index_updater.update(g);
+ reset_edge_index(g);
+
+ typedef std::vector< typename graph_traits<Graph>::edge_descriptor > edge_vector_t;
+ typedef std::vector< edge_vector_t > embedding_storage_t;
+ typedef iterator_property_map
+ < typename embedding_storage_t::iterator,
+ typename property_map<Graph, vertex_index_t>::type
+ > embedding_t;
+
+ embedding_storage_t embedding_storage(num_vertices(g));
+ embedding_t embedding(embedding_storage.begin(), get(vertex_index, g));
+
+ typename graph_traits<Graph>::vertex_iterator vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ std::copy(out_edges(*vi,g).first, out_edges(*vi,g).second, std::back_inserter(embedding[*vi]));
+
+ BOOST_CHECK(biconnected_components(g, make_vector_property_map<int>(get(edge_index,g))) > 1);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ make_biconnected_planar(g, embedding);
+ reset_edge_index(g);
+ BOOST_CHECK(biconnected_components(g, make_vector_property_map<int>(get(edge_index,g))) == 1);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+
+}
+
+
+
+
+
+int test_main(int, char* [])
+{
+ typedef adjacency_list
+ <vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ VVgraph_t;
+
+ typedef adjacency_list
+ <vecS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ VLgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ LVgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ LLgraph_t;
+
+ typedef adjacency_list
+ <setS,
+ setS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ SSgraph_t;
+
+ test_line_graph<VVgraph_t>(NoVertexIndexUpdater(), 10);
+ test_line_graph<VVgraph_t>(NoVertexIndexUpdater(), 50);
+
+ test_line_graph<VLgraph_t>(UpdateVertexIndex(), 3);
+ test_line_graph<VLgraph_t>(UpdateVertexIndex(), 30);
+
+ test_line_graph<LVgraph_t>(NoVertexIndexUpdater(), 15);
+ test_line_graph<LVgraph_t>(NoVertexIndexUpdater(), 45);
+
+ test_line_graph<LLgraph_t>(UpdateVertexIndex(), 8);
+ test_line_graph<LLgraph_t>(UpdateVertexIndex(), 19);
+
+ test_line_graph<SSgraph_t>(UpdateVertexIndex(), 13);
+ test_line_graph<SSgraph_t>(UpdateVertexIndex(), 20);
+
+ return 0;
+}

Added: trunk/libs/graph/test/make_connected_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/make_connected_test.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,184 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/make_connected.hpp>
+#include <boost/graph/connected_components.hpp>
+#include <boost/property_map.hpp>
+#include <boost/vector_property_map.hpp>
+#include <boost/test/minimal.hpp>
+
+
+using namespace boost;
+
+
+template <typename Graph>
+void reset_edge_index(Graph& g)
+{
+ typename property_map<Graph, edge_index_t>::type index = get(edge_index, g);
+ typename graph_traits<Graph>::edge_iterator ei, ei_end;
+ typename graph_traits<Graph>::edges_size_type cnt = 0;
+ for(tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ put(index, *ei, cnt++);
+}
+
+
+
+template <typename Graph>
+void reset_vertex_index(Graph& g)
+{
+ typename property_map<Graph, vertex_index_t>::type index = get(vertex_index, g);
+ typename graph_traits<Graph>::vertex_iterator vi, vi_end;
+ typename graph_traits<Graph>::vertices_size_type cnt = 0;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ put(index, *vi, cnt++);
+}
+
+
+template <typename Graph>
+void make_disconnected_cycles(Graph& g, int num_cycles, int cycle_size)
+{
+ // This graph will consist of num_cycles cycles, each of which
+ // has cycle_size vertices and edges. The entire graph has
+ // num_cycles * cycle_size vertices and edges, and requires
+ // num_cycles - 1 edges to make it connected
+
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+
+ for(int i = 0; i < num_cycles; ++i)
+ {
+ vertex_t first_vertex = add_vertex(g);
+ vertex_t prev_vertex;
+ vertex_t curr_vertex = first_vertex;
+ for(int j = 1; j < cycle_size; ++j)
+ {
+ prev_vertex = curr_vertex;
+ curr_vertex = add_vertex(g);
+ add_edge(prev_vertex, curr_vertex, g);
+ }
+ add_edge(curr_vertex, first_vertex, g);
+ }
+}
+
+
+
+
+
+int test_main(int, char* [])
+{
+ typedef adjacency_list
+ <vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ VVgraph_t;
+
+ typedef adjacency_list
+ <vecS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ VLgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ LVgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ LLgraph_t;
+
+ VVgraph_t gVV;
+ std::size_t num_cycles = 10;
+ std::size_t cycle_size = 10;
+ make_disconnected_cycles(gVV, num_cycles, cycle_size);
+ reset_edge_index(gVV);
+ std::vector<int> gVV_components(num_vertices(gVV));
+ BOOST_CHECK(connected_components(gVV, &gVV_components[0]) ==
+ static_cast<int>(num_cycles));
+ make_connected(gVV);
+ BOOST_CHECK(connected_components(gVV, &gVV_components[0]) == 1);
+ BOOST_CHECK(num_edges(gVV) == num_cycles * cycle_size + num_cycles - 1);
+
+ LVgraph_t gLV;
+ num_cycles = 20;
+ cycle_size = 20;
+ make_disconnected_cycles(gLV, num_cycles, cycle_size);
+ reset_edge_index(gLV);
+ std::vector<int> gLV_components(num_vertices(gLV));
+ BOOST_CHECK(connected_components(gLV, &gLV_components[0]) ==
+ static_cast<int>(num_cycles));
+ make_connected(gLV);
+ BOOST_CHECK(connected_components(gLV, &gLV_components[0]) == 1);
+ BOOST_CHECK(num_edges(gLV) == num_cycles * cycle_size + num_cycles - 1);
+
+ VLgraph_t gVL;
+ num_cycles = 30;
+ cycle_size = 30;
+ make_disconnected_cycles(gVL, num_cycles, cycle_size);
+ reset_edge_index(gVL);
+ reset_vertex_index(gVL);
+ BOOST_CHECK(connected_components(gVL, make_vector_property_map<int>(get(vertex_index,gVL)))
+ == static_cast<int>(num_cycles)
+ );
+ make_connected(gVL);
+ BOOST_CHECK(connected_components(gVL, make_vector_property_map<int>(get(vertex_index,gVL)))
+ == 1
+ );
+ BOOST_CHECK(num_edges(gVL) == num_cycles * cycle_size + num_cycles - 1);
+
+ LLgraph_t gLL;
+ num_cycles = 40;
+ cycle_size = 40;
+ make_disconnected_cycles(gLL, num_cycles, cycle_size);
+ reset_edge_index(gLL);
+ reset_vertex_index(gLL);
+ BOOST_CHECK(connected_components(gLL, make_vector_property_map<int>(get(vertex_index,gLL)))
+ == static_cast<int>(num_cycles));
+ make_connected(gLL);
+ BOOST_CHECK(connected_components(gLL, make_vector_property_map<int>(get(vertex_index,gLL)))
+ == 1
+ );
+ BOOST_CHECK(num_edges(gLL) == num_cycles * cycle_size + num_cycles - 1);
+
+ // Now make sure that no edges are added to an already connected graph
+ // when you call make_connected again
+
+ graph_traits<VVgraph_t>::edges_size_type VV_num_edges(num_edges(gVV));
+ make_connected(gVV);
+ BOOST_CHECK(num_edges(gVV) == VV_num_edges);
+
+ graph_traits<VLgraph_t>::edges_size_type VL_num_edges(num_edges(gVL));
+ make_connected(gVL);
+ BOOST_CHECK(num_edges(gVL) == VL_num_edges);
+
+ graph_traits<LVgraph_t>::edges_size_type LV_num_edges(num_edges(gLV));
+ make_connected(gLV);
+ BOOST_CHECK(num_edges(gLV) == LV_num_edges);
+
+ graph_traits<LLgraph_t>::edges_size_type LL_num_edges(num_edges(gLL));
+ make_connected(gLL);
+ BOOST_CHECK(num_edges(gLL) == LL_num_edges);
+
+ return 0;
+}

Added: trunk/libs/graph/test/make_maximal_planar_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/make_maximal_planar_test.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,173 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/make_maximal_planar.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+#include <boost/property_map.hpp>
+#include <boost/vector_property_map.hpp>
+#include <boost/test/minimal.hpp>
+
+
+using namespace boost;
+
+
+template <typename Graph>
+void reset_edge_index(Graph& g)
+{
+ typename property_map<Graph, edge_index_t>::type index = get(edge_index, g);
+ typename graph_traits<Graph>::edge_iterator ei, ei_end;
+ typename graph_traits<Graph>::edges_size_type cnt = 0;
+ for(tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ put(index, *ei, cnt++);
+}
+
+
+template <typename Graph>
+void make_cycle(Graph& g, int size)
+{
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+
+ vertex_t first_vertex = add_vertex(g);
+ vertex_t prev_vertex = first_vertex;
+
+ for(int i = 1; i < size; ++i)
+ {
+ vertex_t curr_vertex = add_vertex(g);
+ add_edge(curr_vertex, prev_vertex, g);
+ prev_vertex = curr_vertex;
+ }
+
+ add_edge(first_vertex, prev_vertex, g);
+}
+
+
+struct UpdateVertexIndex
+{
+ template <typename Graph>
+ void update(Graph& g)
+ {
+ typename property_map<Graph, vertex_index_t>::type index = get(vertex_index, g);
+ typename graph_traits<Graph>::vertex_iterator vi, vi_end;
+ typename graph_traits<Graph>::vertices_size_type cnt = 0;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ put(index, *vi, cnt++);
+ }
+};
+
+
+struct NoVertexIndexUpdater
+{
+ template <typename Graph> void update(Graph& g) {}
+};
+
+
+
+template <typename Graph, typename VertexIndexUpdater>
+void test_cycle(VertexIndexUpdater vertex_index_updater, int size)
+{
+
+ Graph g;
+ make_cycle(g, size);
+ vertex_index_updater.update(g);
+ reset_edge_index(g);
+
+ typedef std::vector< typename graph_traits<Graph>::edge_descriptor > edge_vector_t;
+ typedef std::vector< edge_vector_t > embedding_storage_t;
+ typedef iterator_property_map
+ < typename embedding_storage_t::iterator,
+ typename property_map<Graph, vertex_index_t>::type
+ > embedding_t;
+
+ embedding_storage_t embedding_storage(num_vertices(g));
+ embedding_t embedding(embedding_storage.begin(), get(vertex_index, g));
+
+ typename graph_traits<Graph>::vertex_iterator vi, vi_end;
+ for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ std::copy(out_edges(*vi,g).first, out_edges(*vi,g).second, std::back_inserter(embedding[*vi]));
+
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+ make_maximal_planar(g, embedding);
+ reset_edge_index(g);
+
+ // A graph is maximal planar exactly when it's both
+ // planar and has 3 * num_vertices(g) - 6 edges.
+ BOOST_CHECK(num_edges(g) == 3 * num_vertices(g) - 6);
+ BOOST_CHECK(boyer_myrvold_planarity_test(g));
+
+}
+
+
+
+
+
+int test_main(int, char* [])
+{
+ typedef adjacency_list
+ <vecS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ VVgraph_t;
+
+ typedef adjacency_list
+ <vecS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ VLgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ LVgraph_t;
+
+ typedef adjacency_list
+ <listS,
+ listS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ LLgraph_t;
+
+ typedef adjacency_list
+ <setS,
+ setS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int>
+ >
+ SSgraph_t;
+
+ test_cycle<VVgraph_t>(NoVertexIndexUpdater(), 10);
+ test_cycle<VVgraph_t>(NoVertexIndexUpdater(), 50);
+
+ test_cycle<VLgraph_t>(UpdateVertexIndex(), 3);
+ test_cycle<VLgraph_t>(UpdateVertexIndex(), 30);
+
+ test_cycle<LVgraph_t>(NoVertexIndexUpdater(), 15);
+ test_cycle<LVgraph_t>(NoVertexIndexUpdater(), 45);
+
+ test_cycle<LLgraph_t>(UpdateVertexIndex(), 8);
+ test_cycle<LLgraph_t>(UpdateVertexIndex(), 19);
+
+ test_cycle<SSgraph_t>(UpdateVertexIndex(), 13);
+ test_cycle<SSgraph_t>(UpdateVertexIndex(), 20);
+
+ return 0;
+}

Added: trunk/libs/graph/test/parallel_edges_loops_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/parallel_edges_loops_test.cpp 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,363 @@
+//=======================================================================
+// Copyright 2007 Aaron Windsor
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+
+/*
+
+This test is almost identical to all_planar_input_files_test.cpp
+except that parallel edges and loops are added to the graphs as
+they are read in.
+
+This test needs to be linked against Boost.Filesystem.
+
+*/
+
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include <string>
+#include <utility>
+
+
+#include <boost/property_map.hpp>
+#include <boost/lexical_cast.hpp>
+#include <boost/tuple/tuple.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/algorithm/string.hpp>
+#include <boost/test/minimal.hpp>
+
+
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/depth_first_search.hpp>
+#include <boost/graph/properties.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/planar_canonical_ordering.hpp>
+#include <boost/graph/make_connected.hpp>
+#include <boost/graph/make_biconnected_planar.hpp>
+#include <boost/graph/make_maximal_planar.hpp>
+#include <boost/graph/is_straight_line_drawing.hpp>
+#include <boost/graph/is_kuratowski_subgraph.hpp>
+#include <boost/graph/chrobak_payne_drawing.hpp>
+#include <boost/graph/boyer_myrvold_planar_test.hpp>
+#include <boost/graph/planar_detail/add_edge_visitors.hpp>
+
+
+
+
+
+
+using namespace boost;
+
+struct coord_t
+{
+ std::size_t x;
+ std::size_t y;
+};
+
+
+
+template <typename Graph>
+void read_dimacs(Graph& g, const std::string& filename)
+{
+
+ // every <vertex_stride>th vertex has a self-loop
+ int vertex_stride = 5;
+
+ // on vertices with self loops, there are between 1 and
+ // <max_loop_multiplicity> loops
+ int max_loop_multiplicity = 6;
+
+ // every <edge_stride>th edge is a parallel edge
+ int edge_stride = 7;
+
+ // parallel edges come in groups of 2 to <max_edge_multiplicity> + 1
+ int max_edge_multiplicity = 5;
+
+ typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ std::vector<vertex_t> vertices_by_index;
+
+ std::ifstream in(filename.c_str());
+
+ long num_edges_added = 0;
+ long num_parallel_edges = 0;
+
+ while (!in.eof())
+ {
+
+ char buffer[256];
+ in.getline(buffer, 256);
+ std::string s(buffer);
+
+ if (s.size() == 0)
+ continue;
+
+ std::vector<std::string> v;
+ split(v, buffer, is_any_of(" \t\n"));
+
+ if (v[0] == "p")
+ {
+ //v[1] == "edge"
+ long num_vertices = boost::lexical_cast<long>(v[2].c_str());
+ g = Graph(num_vertices);
+
+
+ vertex_iterator_t vi, vi_end;
+ long count = 0;
+ long mult_count = 0;
+ for(tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ {
+ if (count % vertex_stride == 0)
+ {
+ for(int i = 0;
+ i < (mult_count % max_loop_multiplicity) + 1;
+ ++i
+ )
+ {
+ add_edge(*vi, *vi, g);
+ }
+ ++mult_count;
+ }
+ ++count;
+ }
+
+ std::copy(vertices(g).first,
+ vertices(g).second,
+ std::back_inserter(vertices_by_index)
+ );
+ }
+ else if (v[0] == "e")
+ {
+ add_edge(vertices_by_index[boost::lexical_cast<long>(v[1].c_str())],
+ vertices_by_index[boost::lexical_cast<long>(v[2].c_str())],
+ g);
+
+ if (num_edges_added % edge_stride == 0)
+ {
+ for(int i = 0;
+ i < (num_parallel_edges % max_edge_multiplicity) + 1;
+ ++i
+ )
+ {
+ add_edge(vertices_by_index
+ [boost::lexical_cast<long>(v[1].c_str())],
+ vertices_by_index
+ [boost::lexical_cast<long>(v[2].c_str())],
+ g);
+ }
+ ++num_parallel_edges;
+ }
+ ++num_edges_added;
+
+ }
+ }
+}
+
+
+
+
+struct face_counter : planar_face_traversal_visitor
+{
+
+ face_counter() : m_num_faces(0) {}
+
+ void begin_face() { ++m_num_faces; }
+
+ long num_faces() { return m_num_faces; }
+
+private:
+
+ long m_num_faces;
+
+};
+
+
+
+
+
+
+int test_graph(const std::string& dimacs_filename)
+{
+
+ typedef adjacency_list<listS,
+ vecS,
+ undirectedS,
+ property<vertex_index_t, int>,
+ property<edge_index_t, int> > graph;
+
+ typedef graph_traits<graph>::edge_descriptor edge_t;
+ typedef graph_traits<graph>::edge_iterator edge_iterator_t;
+ typedef graph_traits<graph>::vertex_iterator vertex_iterator_t;
+ typedef graph_traits<graph>::edges_size_type e_size_t;
+ typedef graph_traits<graph>::vertices_size_type v_size_t;
+ typedef graph_traits<graph>::vertex_descriptor vertex_t;
+ typedef std::pair<vertex_t, vertex_t> vertex_pair_t;
+ typedef edge_index_update_visitor<property_map<graph, edge_index_t>::type>
+ edge_visitor_t;
+
+ vertex_iterator_t vi, vi_end;
+ edge_iterator_t ei, ei_end;
+
+ graph g;
+ read_dimacs(g, dimacs_filename);
+
+ // Initialize the interior edge index
+ property_map<graph, edge_index_t>::type e_index = get(edge_index, g);
+ e_size_t edge_count = 0;
+ for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ put(e_index, *ei, edge_count++);
+
+ // Initialize the interior vertex index - not needed if the vertices
+ // are stored with a vecS
+ /*
+ property_map<graph, vertex_index_t>::type v_index = get(vertex_index, g);
+ v_size_t vertex_count = 0;
+ for(tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ put(v_index, *vi, vertex_count++);
+ */
+
+ // This edge_updater will automatically update the interior edge
+ // index of the graph as edges are created.
+ edge_visitor_t edge_updater(get(edge_index, g), num_edges(g));
+
+ // The input graph may not be maximal planar, but the Chrobak-Payne straight
+ // line drawing needs a maximal planar graph as input. So, we make a copy of
+ // the original graph here, then add edges to the graph to make it maximal
+ // planar. When we're done creating a drawing of the maximal planar graph,
+ // we can use the same mapping of vertices to points on the grid to embed the
+ // original, non-maximal graph.
+ graph g_copy(g);
+
+ // Add edges to make g connected, if it isn't already
+ make_connected(g, get(vertex_index, g), edge_updater);
+
+ std::vector<graph_traits<graph>::edge_descriptor> kuratowski_edges;
+
+ typedef std::vector< std::vector<edge_t> > edge_permutation_storage_t;
+ typedef boost::iterator_property_map
+ < edge_permutation_storage_t::iterator,
+ property_map<graph, vertex_index_t>::type
+ >
+ edge_permutation_t;
+
+ edge_permutation_storage_t edge_permutation_storage(num_vertices(g));
+ edge_permutation_t perm(edge_permutation_storage.begin(),
+ get(vertex_index,g)
+ );
+
+ // Test for planarity, computing the planar embedding or the kuratowski
+ // subgraph.
+ if (!boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding = perm,
+ boyer_myrvold_params::kuratowski_subgraph
+ = std::back_inserter(kuratowski_edges)
+ )
+ )
+ {
+ std::cerr << "Not planar. ";
+ BOOST_REQUIRE(is_kuratowski_subgraph
+ (g, kuratowski_edges.begin(), kuratowski_edges.end())
+ );
+
+ return 0;
+ }
+
+ // If we get this far, we have a connected planar graph.
+ make_biconnected_planar(g, perm, get(edge_index, g), edge_updater);
+
+ // Compute the planar embedding of the (now) biconnected planar graph
+ BOOST_CHECK (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding
+ = perm
+ )
+ );
+
+ // If we get this far, we have a biconnected planar graph
+ make_maximal_planar(g, perm, get(vertex_index,g), get(edge_index,g),
+ edge_updater);
+
+ // Now the graph is triangulated - we can compute the final planar embedding
+ BOOST_CHECK (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
+ boyer_myrvold_params::embedding
+ = perm
+ )
+ );
+
+ // Make sure Euler's formula holds
+ face_counter vis;
+ planar_face_traversal(g, perm, vis, get(edge_index, g));
+
+ BOOST_CHECK(num_vertices(g) - num_edges(g) + vis.num_faces() == 2);
+
+ // Compute a planar canonical ordering of the vertices
+ std::vector<vertex_t> ordering;
+ planar_canonical_ordering(g, perm, std::back_inserter(ordering));
+
+ BOOST_CHECK(ordering.size() == num_vertices(g));
+
+ typedef std::vector< coord_t > drawing_storage_t;
+ typedef boost::iterator_property_map
+ < drawing_storage_t::iterator, property_map<graph, vertex_index_t>::type >
+ drawing_map_t;
+
+ drawing_storage_t drawing_vector(num_vertices(g));
+ drawing_map_t drawing(drawing_vector.begin(), get(vertex_index,g));
+
+ // Compute a straight line drawing
+ chrobak_payne_straight_line_drawing(g,
+ perm,
+ ordering.begin(),
+ ordering.end(),
+ drawing
+ );
+
+ std::cerr << "Planar. ";
+ BOOST_REQUIRE (is_straight_line_drawing(g, drawing));
+
+ return 0;
+}
+
+
+
+
+
+
+
+int test_main(int argc, char* argv[])
+{
+
+ std::string input_directory_str = "planar_input_graphs";
+ if (argc > 1)
+ {
+ input_directory_str = std::string(argv[1]);
+ }
+
+ std::cout << "Reading planar input files from " << input_directory_str
+ << std::endl;
+
+ filesystem::path input_directory =
+ filesystem::system_complete
+ (filesystem::path(input_directory_str, filesystem::native));
+ const std::string dimacs_suffix = ".dimacs";
+
+ filesystem::directory_iterator dir_end;
+ for( filesystem::directory_iterator dir_itr(input_directory);
+ dir_itr != dir_end; ++dir_itr)
+ {
+
+ if (!ends_with(dir_itr->string(), dimacs_suffix))
+ continue;
+
+ std::cerr << "Testing " << dir_itr->path().leaf() << "... ";
+ BOOST_REQUIRE (test_graph(dir_itr->string()) == 0);
+
+ std::cerr << std::endl;
+ }
+
+ return 0;
+
+}

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,13 @@
+c K_3_3
+
+p edge 6 9
+
+e 0 3
+e 0 4
+e 0 5
+e 1 3
+e 1 4
+e 1 5
+e 2 3
+e 2 4
+e 2 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 4
+e 2 3
+e 2 4
+e 6 3
+e 7 0
+e 7 5
+e 8 5
+e 9 3
+e 10 9
+e 10 1
+e 11 6
+e 11 0
+e 12 4
+e 13 2
+e 13 5
+e 14 8
+e 14 1
+e 15 12
+e 15 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 1 3
+e 1 4
+e 10 3
+e 16 14
+e 16 2
+e 20 6
+e 21 4
+e 27 22
+e 27 5
+e 33 11
+e 33 5
+e 34 31
+e 34 19
+e 35 13
+e 35 9
+e 44 28
+e 45 2
+e 46 37
+e 46 32
+e 47 28
+e 48 32
+e 48 15
+e 50 23
+e 51 22
+e 51 1
+e 52 47
+e 52 25
+e 53 3
+e 54 23
+e 57 49
+e 58 53
+e 58 38
+e 59 8
+e 60 4
+e 61 24
+e 63 7
+e 64 50
+e 65 30
+e 65 17
+e 66 2
+e 67 41
+e 67 29
+e 68 49
+e 68 40
+e 69 66
+e 70 41
+e 71 37
+e 72 42
+e 72 31
+e 73 0
+e 73 5
+e 75 39
+e 75 19
+e 77 44
+e 78 56
+e 78 18
+e 79 57
+e 79 13
+e 80 71
+e 80 29
+e 81 74
+e 81 43
+e 82 64
+e 82 36
+e 83 43
+e 83 14
+e 84 76
+e 84 74
+e 85 17
+e 86 56
+e 86 24
+e 87 45
+e 87 30
+e 88 70
+e 88 61
+e 89 54
+e 89 9
+e 90 85
+e 90 59
+e 91 21
+e 91 18
+e 92 63
+e 92 20
+e 93 26
+e 93 12
+e 94 26
+e 94 7
+e 95 55
+e 95 0
+e 96 69
+e 96 39
+e 97 25
+e 97 8
+e 98 60
+e 98 42
+e 99 77
+e 99 11
+e 100 10
+e 100 6
+e 101 36
+e 101 12
+e 102 62
+e 102 38
+e 103 62
+e 103 55
+e 104 15
+e 104 0
+e 105 76
+e 105 40

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 48 11
+e 58 33
+e 59 29
+e 78 47
+e 85 55
+e 85 13
+e 93 66
+e 109 90
+e 112 75
+e 114 72
+e 116 12
+e 121 80
+e 135 35
+e 140 89
+e 140 43
+e 146 0
+e 152 123
+e 152 35
+e 155 57
+e 156 108
+e 158 87
+e 160 53
+e 163 138
+e 165 73
+e 169 46
+e 169 16
+e 173 159
+e 173 4
+e 176 127
+e 177 129
+e 180 145
+e 186 26
+e 186 14
+e 195 107
+e 195 9
+e 197 172
+e 200 37
+e 203 143
+e 203 42
+e 206 77
+e 207 113
+e 209 178
+e 210 5
+e 217 201
+e 226 196
+e 228 45
+e 234 89
+e 235 76
+e 242 106
+e 246 221
+e 247 179
+e 248 149
+e 248 124
+e 251 219
+e 260 94
+e 260 57
+e 261 219
+e 261 187
+e 265 188
+e 265 1
+e 268 199
+e 270 42
+e 272 196
+e 272 18
+e 273 62
+e 278 106
+e 281 232
+e 289 234
+e 289 133
+e 291 194
+e 291 74
+e 293 268
+e 293 52
+e 297 139
+e 297 95
+e 298 11
+e 299 266
+e 310 74
+e 311 215
+e 311 128
+e 312 244
+e 312 54
+e 318 1
+e 320 126
+e 321 217
+e 321 98
+e 322 167
+e 322 44
+e 324 59
+e 324 46
+e 326 296
+e 326 48
+e 328 147
+e 329 258
+e 334 274
+e 336 185
+e 337 256
+e 337 200
+e 340 150
+e 340 27
+e 342 308
+e 342 237
+e 343 301
+e 344 6
+e 345 309
+e 349 249
+e 349 215
+e 351 319
+e 355 216
+e 356 292
+e 357 102
+e 357 79
+e 360 329
+e 362 325
+e 362 30
+e 363 86
+e 363 9
+e 367 231
+e 368 130
+e 369 160
+e 369 104
+e 372 182
+e 373 109
+e 373 24
+e 374 283
+e 374 254
+e 375 251
+e 375 20
+e 376 139
+e 377 371
+e 377 131
+e 378 332
+e 381 205
+e 382 86
+e 382 45
+e 383 31
+e 384 94
+e 385 136
+e 387 181
+e 388 325
+e 390 90
+e 392 122
+e 392 20
+e 395 5
+e 397 32
+e 398 144
+e 399 212
+e 399 132
+e 400 364
+e 400 71
+e 401 346
+e 401 41
+e 404 97
+e 405 367
+e 405 287
+e 407 238
+e 408 117
+e 410 398
+e 410 84
+e 413 104
+e 415 71
+e 416 21
+e 417 341
+e 417 25
+e 420 403
+e 420 267
+e 424 352
+e 424 178
+e 425 231
+e 425 223
+e 426 32
+e 427 361
+e 428 159
+e 430 25
+e 432 320
+e 433 290
+e 433 257
+e 436 309
+e 437 249
+e 437 75
+e 439 29
+e 441 211
+e 442 277
+e 443 105
+e 443 70
+e 444 136
+e 445 63
+e 447 103
+e 448 130
+e 449 220
+e 449 162
+e 450 354
+e 450 98
+e 451 134
+e 452 253
+e 452 250
+e 453 279
+e 453 50
+e 454 319
+e 456 409
+e 457 397
+e 457 17
+e 459 315
+e 460 332
+e 461 414
+e 462 105
+e 462 40
+e 463 142
+e 463 65
+e 465 355
+e 465 108
+e 467 303
+e 469 281
+e 470 455
+e 471 287
+e 474 236
+e 474 194
+e 477 422
+e 477 252
+e 479 366
+e 480 16
+e 481 274
+e 482 167
+e 484 239
+e 485 390
+e 487 273
+e 488 233
+e 491 414
+e 491 37
+e 492 346
+e 492 294
+e 493 313
+e 493 99
+e 495 81
+e 498 306
+e 498 77
+e 499 423
+e 499 387
+e 500 396
+e 500 120
+e 501 314
+e 501 156
+e 502 365
+e 503 393
+e 503 141
+e 504 269
+e 506 313
+e 506 10
+e 507 271
+e 507 95
+e 508 444
+e 508 214
+e 509 358
+e 510 366
+e 511 143
+e 512 246
+e 512 233
+e 513 298
+e 513 218
+e 514 83
+e 515 290
+e 515 68
+e 516 371
+e 516 49
+e 517 409
+e 517 263
+e 518 34
+e 519 153
+e 519 144
+e 521 191
+e 521 15
+e 522 429
+e 522 22
+e 523 379
+e 523 4
+e 527 422
+e 527 364
+e 531 446
+e 532 146
+e 533 119
+e 535 51
+e 536 421
+e 536 64
+e 537 277
+e 537 39
+e 538 330
+e 538 87
+e 539 243
+e 540 129
+e 542 411
+e 542 206
+e 543 421
+e 543 314
+e 545 269
+e 546 445
+e 547 103
+e 548 327
+e 548 147
+e 549 125
+e 552 466
+e 552 115
+e 553 413
+e 553 393
+e 554 434
+e 554 113
+e 555 127
+e 556 526
+e 557 278
+e 558 396
+e 558 137
+e 559 494
+e 559 22
+e 560 427
+e 561 407
+e 562 354
+e 563 295
+e 563 209
+e 564 60
+e 565 389
+e 568 447
+e 568 66
+e 569 404
+e 570 348
+e 571 307
+e 571 79
+e 572 131
+e 573 148
+e 573 82
+e 574 243
+e 575 402
+e 575 198
+e 579 549
+e 579 546
+e 580 317
+e 581 307
+e 581 192
+e 582 192
+e 583 525
+e 583 61
+e 584 441
+e 585 358
+e 585 119
+e 587 222
+e 587 158
+e 588 5
+e 592 179
+e 594 252
+e 594 31
+e 595 428
+e 595 166
+e 596 316
+e 596 111
+e 597 485
+e 598 361
+e 598 54
+e 599 262
+e 599 6
+e 600 264
+e 600 229
+e 601 19
+e 602 380
+e 604 603
+e 604 577
+e 605 403
+e 605 204
+e 606 180
+e 606 17
+e 607 481
+e 607 250
+e 608 303
+e 608 4
+e 609 544
+e 610 497
+e 610 360
+e 611 208
+e 611 205
+e 612 348
+e 612 221
+e 613 412
+e 615 394
+e 618 570
+e 618 279
+e 619 467
+e 619 276
+e 620 315
+e 620 8
+e 621 438
+e 621 12
+e 622 114
+e 623 334
+e 623 118
+e 624 478
+e 624 2
+e 625 121
+e 626 347
+e 627 267
+e 627 227
+e 628 565
+e 628 285
+e 629 520
+e 629 394
+e 630 282
+e 630 197
+e 631 68
+e 632 454
+e 633 406
+e 633 184
+e 634 461
+e 634 406
+e 635 448
+e 635 341
+e 637 263
+e 638 276
+e 640 426
+e 641 288
+e 643 187
+e 643 142
+e 644 419
+e 645 617
+e 645 350
+e 647 227
+e 650 582
+e 650 50
+e 651 510
+e 651 253
+e 652 562
+e 653 446
+e 653 244
+e 654 640
+e 654 1
+e 655 471
+e 655 149
+e 657 76
+e 658 36
+e 659 386
+e 660 646
+e 660 496
+e 661 572
+e 661 356
+e 662 300
+e 662 97
+e 664 53
+e 665 402
+e 666 489
+e 666 118
+e 667 302
+e 668 138
+e 669 416
+e 670 440
+e 671 591
+e 671 282
+e 672 564
+e 672 283
+e 673 335
+e 674 124
+e 674 36
+e 675 625
+e 676 456
+e 676 154
+e 677 504
+e 677 172
+e 678 352
+e 678 224
+e 679 636
+e 680 161
+e 681 7
+e 684 52
+e 685 529
+e 685 189
+e 686 597
+e 686 336
+e 688 639
+e 688 275
+e 689 617
+e 689 199
+e 690 472
+e 690 44
+e 691 145
+e 692 647
+e 693 578
+e 693 418
+e 694 656
+e 696 464
+e 697 534
+e 697 58
+e 698 524
+e 698 198
+e 699 541
+e 699 216
+e 700 694
+e 700 331
+e 701 338
+e 701 126
+e 702 615
+e 702 308
+e 703 286
+e 703 55
+e 704 183
+e 705 242
+e 706 92
+e 707 622
+e 710 470
+e 710 177
+e 711 10
+e 712 566
+e 712 18
+e 713 347
+e 713 7
+e 715 670
+e 716 483
+e 716 286
+e 717 589
+e 718 525
+e 718 164
+e 719 489
+e 720 490
+e 720 204
+e 721 719
+e 721 208
+e 722 359
+e 722 294
+e 723 280
+e 724 99
+e 725 259
+e 726 592
+e 727 646
+e 727 614
+e 728 490
+e 728 202
+e 729 220
+e 729 168
+e 730 584
+e 730 38
+e 731 708
+e 731 505
+e 732 574
+e 732 535
+e 733 614
+e 734 707
+e 735 534
+e 735 483
+e 736 550
+e 736 468
+e 737 473
+e 737 305
+e 739 609
+e 739 245
+e 740 577
+e 741 245
+e 742 201
+e 742 33
+e 743 601
+e 744 174
+e 744 40
+e 745 228
+e 745 78
+e 746 67
+e 746 0
+e 747 370
+e 747 2
+e 748 659
+e 748 551
+e 749 533
+e 750 333
+e 750 193
+e 753 381
+e 754 687
+e 754 38
+e 755 696
+e 755 292
+e 757 3
+e 758 69
+e 759 590
+e 759 3
+e 761 170
+e 761 82
+e 762 165
+e 763 709
+e 763 442
+e 764 166
+e 766 359
+e 766 34
+e 767 439
+e 767 65
+e 768 663
+e 768 88
+e 769 576
+e 769 539
+e 770 473
+e 770 345
+e 771 687
+e 771 365
+e 772 566
+e 772 494
+e 773 435
+e 773 350
+e 774 636
+e 774 238
+e 775 262
+e 776 528
+e 776 469
+e 778 391
+e 779 528
+e 779 150
+e 780 431
+e 780 51
+e 781 749
+e 782 224
+e 783 432
+e 784 328
+e 785 459
+e 785 30
+e 786 190
+e 786 120
+e 787 134
+e 787 64
+e 788 408
+e 789 39
+e 790 174
+e 790 161
+e 792 756
+e 792 21
+e 793 675
+e 794 656
+e 794 464
+e 795 531
+e 795 275
+e 796 236
+e 798 683
+e 798 590
+e 799 27
+e 800 486
+e 800 241
+e 801 799
+e 801 715
+e 802 495
+e 802 344
+e 803 380
+e 803 378
+e 804 230
+e 804 13
+e 805 183
+e 806 576
+e 806 300
+e 807 304
+e 808 788
+e 808 532
+e 809 288
+e 809 181
+e 810 318
+e 810 133
+e 812 526
+e 813 368
+e 813 2
+e 814 137
+e 815 797
+e 815 8
+e 816 669
+e 816 496
+e 817 714
+e 817 480
+e 818 695
+e 818 306
+e 819 652
+e 819 91
+e 820 641
+e 821 711
+e 822 642
+e 822 616
+e 823 797
+e 823 299
+e 824 765
+e 824 567
+e 825 649
+e 825 258
+e 826 613
+e 826 331
+e 827 81
+e 828 339
+e 828 232
+e 831 637
+e 831 218
+e 833 530
+e 833 107
+e 834 225
+e 834 128
+e 835 475
+e 835 254
+e 836 723
+e 837 241
+e 837 56
+e 838 603
+e 838 15
+e 839 259
+e 840 423
+e 840 225
+e 842 649
+e 842 125
+e 843 679
+e 844 540
+e 844 255
+e 845 235
+e 845 162
+e 846 775
+e 846 631
+e 847 163
+e 847 23
+e 848 545
+e 848 468
+e 849 550
+e 849 440
+e 850 541
+e 850 270
+e 851 791
+e 851 751
+e 852 752
+e 852 296
+e 853 764
+e 853 171
+e 854 478
+e 855 460
+e 855 0
+e 856 175
+e 856 102
+e 857 738
+e 857 135
+e 858 836
+e 858 100
+e 859 379
+e 859 327
+e 860 733
+e 860 475
+e 861 832
+e 862 820
+e 863 782
+e 863 80
+e 864 110
+e 865 783
+e 865 264
+e 866 692
+e 866 370
+e 867 486
+e 867 62
+e 868 547
+e 868 60
+e 869 63
+e 869 23
+e 870 682
+e 870 616
+e 871 338
+e 871 24
+e 872 302
+e 872 202
+e 873 740
+e 873 72
+e 874 684
+e 874 339
+e 875 41
+e 876 632
+e 876 556
+e 877 96
+e 877 47
+e 878 511
+e 878 466
+e 879 524
+e 879 91
+e 880 875
+e 880 351
+e 881 505
+e 881 67
+e 882 148
+e 883 602
+e 883 123
+e 884 760
+e 885 668
+e 885 237
+e 886 743
+e 886 101
+e 887 807
+e 887 210
+e 888 395
+e 888 317
+e 889 415
+e 889 240
+e 890 751
+e 890 168
+e 891 207
+e 891 153
+e 892 760
+e 892 482
+e 893 882
+e 893 518
+e 894 673
+e 894 472
+e 895 706
+e 895 96
+e 896 784
+e 896 429
+e 897 758
+e 897 191
+e 898 811
+e 898 529
+e 899 658
+e 899 487
+e 900 704
+e 900 151
+e 901 502
+e 901 305
+e 902 708
+e 902 520
+e 903 101
+e 903 28
+e 904 864
+e 905 112
+e 905 70
+e 906 591
+e 906 567
+e 907 805
+e 907 555
+e 908 458
+e 908 61
+e 909 154
+e 909 151
+e 910 839
+e 910 648
+e 911 436
+e 911 316
+e 912 280
+e 912 185
+e 913 479
+e 914 383
+e 915 843
+e 915 657
+e 916 476
+e 916 295
+e 917 285
+e 917 247
+e 918 738
+e 918 561
+e 919 310
+e 919 256
+e 920 343
+e 920 222
+e 921 229
+e 921 115
+e 922 323
+e 922 239
+e 923 683
+e 923 557
+e 924 811
+e 924 240
+e 925 757
+e 925 665
+e 926 781
+e 926 431
+e 927 854
+e 927 789
+e 928 638
+e 928 451
+e 929 353
+e 929 83
+e 930 648
+e 930 188
+e 931 497
+e 931 73
+e 932 695
+e 932 544
+e 933 488
+e 933 212
+e 934 484
+e 934 184
+e 935 724
+e 936 386
+e 936 301
+e 937 333
+e 937 271
+e 938 435
+e 938 3
+e 939 514
+e 939 335
+e 940 171
+e 940 43
+e 941 304
+e 941 193
+e 942 284
+e 942 223
+e 943 904
+e 943 266
+e 944 284
+e 944 100
+e 945 376
+e 946 170
+e 946 117
+e 947 765
+e 947 741
+e 948 419
+e 948 389
+e 949 796
+e 950 762
+e 950 110
+e 951 680
+e 951 176
+e 952 593
+e 952 323
+e 953 812
+e 953 19
+e 954 509
+e 954 92
+e 955 778
+e 955 412
+e 956 255
+e 956 132
+e 957 884
+e 957 777
+e 958 935
+e 958 551
+e 959 639
+e 959 49
+e 960 593
+e 960 111
+e 961 793
+e 961 14
+e 962 588
+e 962 372
+e 963 861
+e 963 226
+e 964 663
+e 964 388
+e 965 945
+e 965 214
+e 966 580
+e 967 841
+e 967 56
+e 968 714
+e 968 182
+e 969 175
+e 969 164
+e 970 213
+e 970 84
+e 971 642
+e 971 190
+e 972 530
+e 972 455
+e 973 569
+e 973 141
+e 974 717
+e 974 384
+e 975 841
+e 975 682
+e 976 230
+e 976 88
+e 977 830
+e 977 116
+e 978 586
+e 978 385
+e 979 821
+e 979 28
+e 980 681
+e 980 560
+e 981 664
+e 981 644
+e 982 667
+e 982 411
+e 983 418
+e 983 257
+e 984 756
+e 984 391
+e 985 832
+e 985 589
+e 986 966
+e 986 709
+e 987 829
+e 987 155
+e 988 753
+e 988 330
+e 989 913
+e 989 189
+e 990 791
+e 990 213
+e 991 586
+e 991 157
+e 992 827
+e 992 430
+e 993 705
+e 993 211
+e 994 862
+e 994 814
+e 995 830
+e 995 434
+e 996 691
+e 996 476
+e 997 829
+e 997 578
+e 998 752
+e 998 353
+e 999 914
+e 999 122
+e 1000 626
+e 1000 157
+e 1001 734
+e 1001 458
+e 1002 726
+e 1002 438
+e 1003 949
+e 1003 725
+e 1004 777
+e 1004 69
+e 1005 93
+e 1005 26

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 0 331
+e 2 72
+e 3 489
+e 5 380
+e 6 850
+e 6 998
+e 9 742
+e 11 940
+e 11 93
+e 12 654
+e 12 159
+e 13 558
+e 13 44
+e 14 595
+e 14 857
+e 15 988
+e 17 379
+e 19 197
+e 19 378
+e 23 531
+e 23 218
+e 24 229
+e 27 564
+e 27 457
+e 28 362
+e 29 759
+e 30 222
+e 30 288
+e 31 310
+e 31 414
+e 32 244
+e 32 726
+e 33 122
+e 33 557
+e 34 205
+e 34 806
+e 35 903
+e 35 981
+e 36 469
+e 36 380
+e 38 330
+e 39 644
+e 39 990
+e 42 613
+e 42 460
+e 43 376
+e 43 865
+e 45 588
+e 45 552
+e 46 410
+e 46 304
+e 47 562
+e 47 866
+e 49 213
+e 49 565
+e 50 957
+e 50 201
+e 51 232
+e 51 365
+e 52 54
+e 52 302
+e 53 713
+e 54 923
+e 56 540
+e 57 392
+e 58 409
+e 58 788
+e 59 557
+e 60 252
+e 61 324
+e 62 539
+e 64 56
+e 64 673
+e 65 295
+e 65 170
+e 67 26
+e 68 680
+e 69 980
+e 70 943
+e 71 947
+e 74 308
+e 74 228
+e 75 555
+e 75 610
+e 76 702
+e 76 476
+e 77 259
+e 80 867
+e 80 362
+e 83 437
+e 83 775
+e 84 909
+e 84 716
+e 85 912
+e 85 177
+e 88 629
+e 88 986
+e 89 896
+e 89 551
+e 90 307
+e 91 619
+e 91 235
+e 94 484
+e 96 984
+e 97 750
+e 98 245
+e 98 494
+e 99 208
+e 99 337
+e 101 186
+e 102 588
+e 102 253
+e 103 601
+e 105 449
+e 106 759
+e 107 787
+e 107 730
+e 108 626
+e 111 643
+e 111 109
+e 112 766
+e 112 432
+e 113 270
+e 113 620
+e 114 17
+e 114 311
+e 115 746
+e 115 976
+e 116 660
+e 116 348
+e 118 403
+e 118 629
+e 119 739
+e 123 674
+e 123 48
+e 124 938
+e 124 320
+e 127 762
+e 128 0
+e 129 874
+e 130 627
+e 130 41
+e 133 482
+e 133 713
+e 134 668
+e 136 493
+e 136 212
+e 137 851
+e 137 447
+e 139 729
+e 139 710
+e 140 709
+e 140 87
+e 141 160
+e 141 513
+e 142 492
+e 143 37
+e 144 66
+e 145 523
+e 145 397
+e 146 304
+e 146 202
+e 147 922
+e 148 768
+e 148 562
+e 150 670
+e 150 822
+e 151 751
+e 151 280
+e 153 858
+e 154 976
+e 154 994
+e 155 105
+e 155 172
+e 156 309
+e 156 394
+e 158 596
+e 160 449
+e 161 756
+e 161 396
+e 162 419
+e 162 728
+e 163 382
+e 163 135
+e 164 971
+e 165 586
+e 166 670
+e 166 364
+e 167 168
+e 169 443
+e 171 283
+e 171 353
+e 173 982
+e 173 4
+e 174 413
+e 174 757
+e 176 809
+e 178 306
+e 178 213
+e 181 803
+e 181 864
+e 183 219
+e 184 153
+e 184 292
+e 185 444
+e 185 276
+e 187 24
+e 187 688
+e 188 900
+e 189 914
+e 189 404
+e 190 897
+e 190 546
+e 192 28
+e 192 747
+e 193 838
+e 195 53
+e 195 768
+e 196 646
+e 196 254
+e 198 666
+e 198 825
+e 199 327
+e 199 548
+e 203 506
+e 206 743
+e 206 263
+e 207 774
+e 207 993
+e 208 878
+e 210 247
+e 210 626
+e 211 654
+e 211 359
+e 215 558
+e 215 66
+e 217 305
+e 217 525
+e 220 180
+e 220 874
+e 221 884
+e 221 779
+e 222 472
+e 224 269
+e 224 923
+e 225 18
+e 225 879
+e 226 164
+e 226 200
+e 227 518
+e 229 260
+e 230 715
+e 230 728
+e 233 228
+e 237 895
+e 237 688
+e 239 375
+e 239 425
+e 240 641
+e 240 526
+e 242 82
+e 243 363
+e 243 845
+e 244 452
+e 245 973
+e 249 342
+e 249 203
+e 250 721
+e 251 502
+e 254 439
+e 256 643
+e 256 259
+e 257 417
+e 257 29
+e 261 371
+e 261 845
+e 262 453
+e 262 258
+e 264 253
+e 266 967
+e 266 683
+e 267 583
+e 267 757
+e 268 991
+e 268 809
+e 269 241
+e 272 38
+e 273 4
+e 273 525
+e 274 548
+e 274 870
+e 277 177
+e 277 512
+e 278 892
+e 279 655
+e 279 784
+e 282 138
+e 283 924
+e 284 816
+e 284 616
+e 287 106
+e 287 477
+e 289 252
+e 289 599
+e 290 328
+e 291 385
+e 291 869
+e 292 63
+e 293 169
+e 293 559
+e 295 16
+e 297 623
+e 298 386
+e 298 216
+e 299 502
+e 300 182
+e 300 234
+e 301 183
+e 301 511
+e 303 762
+e 303 93
+e 305 129
+e 309 343
+e 312 873
+e 312 81
+e 313 95
+e 313 810
+e 314 917
+e 314 233
+e 315 393
+e 316 720
+e 316 78
+e 318 885
+e 318 365
+e 322 760
+e 322 16
+e 323 709
+e 323 281
+e 326 592
+e 326 246
+e 327 68
+e 329 565
+e 329 683
+e 330 1
+e 334 508
+e 334 364
+e 335 2
+e 335 96
+e 336 149
+e 336 879
+e 340 640
+e 340 745
+e 342 570
+e 343 898
+e 344 522
+e 344 783
+e 345 953
+e 346 984
+e 348 893
+e 349 936
+e 349 749
+e 350 893
+e 351 975
+e 351 573
+e 352 695
+e 352 823
+e 353 508
+e 354 360
+e 355 270
+e 355 121
+e 356 942
+e 357 302
+e 357 425
+e 358 541
+e 358 121
+e 359 94
+e 361 125
+e 366 818
+e 366 572
+e 367 205
+e 368 452
+e 369 311
+e 369 885
+e 370 517
+e 370 931
+e 371 887
+e 372 5
+e 372 350
+e 373 506
+e 373 339
+e 374 236
+e 374 216
+e 375 297
+e 376 950
+e 377 658
+e 378 7
+e 379 242
+e 381 652
+e 382 209
+e 383 77
+e 383 904
+e 384 735
+e 384 985
+e 385 333
+e 387 796
+e 387 526
+e 388 824
+e 388 1003
+e 389 251
+e 389 865
+e 390 961
+e 390 462
+e 391 135
+e 391 693
+e 393 78
+e 395 179
+e 395 750
+e 398 788
+e 398 617
+e 399 451
+e 402 422
+e 402 341
+e 407 347
+e 408 995
+e 408 87
+e 409 319
+e 410 573
+e 411 641
+e 411 868
+e 413 324
+e 414 246
+e 415 518
+e 415 20
+e 417 928
+e 418 265
+e 419 120
+e 420 339
+e 421 691
+e 421 100
+e 424 898
+e 426 236
+e 426 726
+e 427 296
+e 427 381
+e 428 589
+e 428 255
+e 429 708
+e 430 104
+e 433 979
+e 435 250
+e 436 814
+e 437 471
+e 438 400
+e 440 953
+e 440 212
+e 441 532
+e 441 913
+e 444 951
+e 446 285
+e 446 138
+e 448 7
+e 448 860
+e 450 973
+e 450 773
+e 453 165
+e 454 361
+e 454 992
+e 455 422
+e 455 828
+e 456 949
+e 456 746
+e 457 37
+e 458 333
+e 458 1005
+e 459 176
+e 459 120
+e 461 869
+e 461 559
+e 464 678
+e 465 780
+e 465 345
+e 466 276
+e 466 566
+e 467 332
+e 467 773
+e 470 775
+e 470 186
+e 473 747
+e 473 605
+e 474 884
+e 474 48
+e 476 651
+e 478 432
+e 479 804
+e 479 499
+e 480 10
+e 481 854
+e 481 745
+e 482 40
+e 486 194
+e 486 57
+e 487 97
+e 487 15
+e 488 143
+e 488 603
+e 489 781
+e 491 939
+e 491 209
+e 495 921
+e 495 784
+e 497 661
+e 498 840
+e 498 332
+e 499 722
+e 500 822
+e 500 827
+e 501 281
+e 503 828
+e 503 624
+e 504 800
+e 504 763
+e 505 990
+e 505 740
+e 507 238
+e 507 299
+e 509 438
+e 509 870
+e 514 26
+e 515 797
+e 515 513
+e 516 721
+e 516 960
+e 519 496
+e 519 463
+e 521 61
+e 521 962
+e 522 703
+e 523 992
+e 527 916
+e 527 317
+e 528 338
+e 528 729
+e 529 578
+e 533 248
+e 533 602
+e 534 55
+e 534 424
+e 535 394
+e 535 900
+e 536 147
+e 536 401
+e 537 829
+e 538 791
+e 538 603
+e 540 730
+e 541 799
+e 542 732
+e 542 223
+e 543 223
+e 543 200
+e 544 969
+e 544 635
+e 545 817
+e 547 532
+e 547 188
+e 549 927
+e 550 214
+e 551 587
+e 552 405
+e 554 152
+e 556 108
+e 560 803
+e 560 179
+e 561 442
+e 561 180
+e 563 789
+e 563 464
+e 567 720
+e 567 983
+e 568 95
+e 568 529
+e 569 856
+e 569 520
+e 574 511
+e 574 286
+e 575 778
+e 575 445
+e 577 794
+e 577 566
+e 579 829
+e 580 852
+e 580 927
+e 581 589
+e 582 92
+e 583 260
+e 584 157
+e 584 82
+e 585 403
+e 585 72
+e 590 571
+e 590 63
+e 594 924
+e 594 131
+e 598 493
+e 598 635
+e 600 774
+e 600 490
+e 601 484
+e 604 485
+e 604 510
+e 606 783
+e 607 910
+e 607 738
+e 608 593
+e 608 836
+e 609 26
+e 611 736
+e 611 564
+e 612 238
+e 612 271
+e 613 423
+e 614 980
+e 614 651
+e 615 218
+e 615 606
+e 617 705
+e 618 306
+e 618 582
+e 619 201
+e 621 248
+e 621 468
+e 622 512
+e 623 549
+e 625 132
+e 625 158
+e 630 517
+e 630 868
+e 631 815
+e 632 436
+e 632 610
+e 633 67
+e 633 586
+e 634 734
+e 634 149
+e 636 958
+e 636 431
+e 637 964
+e 637 749
+e 638 918
+e 638 994
+e 639 307
+e 639 22
+e 642 9
+e 642 416
+e 644 891
+e 645 675
+e 645 797
+e 646 447
+e 647 889
+e 647 960
+e 648 483
+e 648 555
+e 649 214
+e 650 593
+e 650 703
+e 653 576
+e 653 705
+e 656 962
+e 656 800
+e 659 472
+e 659 811
+e 660 443
+e 661 231
+e 662 1
+e 662 892
+e 663 442
+e 663 550
+e 664 159
+e 664 280
+e 665 282
+e 667 288
+e 667 815
+e 668 433
+e 669 157
+e 669 462
+e 671 851
+e 671 986
+e 672 119
+e 672 142
+e 674 877
+e 676 706
+e 676 232
+e 677 687
+e 677 624
+e 679 469
+e 679 905
+e 681 824
+e 681 475
+e 684 144
+e 684 290
+e 685 795
+e 685 308
+e 686 531
+e 686 616
+e 689 649
+e 689 765
+e 691 936
+e 692 690
+e 692 995
+e 694 172
+e 694 405
+e 696 787
+e 696 718
+e 697 275
+e 697 235
+e 698 117
+e 698 175
+e 700 110
+e 700 202
+e 701 985
+e 704 70
+e 704 132
+e 706 743
+e 711 496
+e 711 386
+e 712 880
+e 714 431
+e 714 170
+e 715 412
+e 716 816
+e 718 429
+e 719 739
+e 719 745
+e 722 475
+e 723 227
+e 723 514
+e 724 707
+e 724 152
+e 725 71
+e 725 640
+e 727 1003
+e 727 993
+e 731 480
+e 731 407
+e 732 576
+e 733 678
+e 733 92
+e 734 578
+e 735 799
+e 738 524
+e 741 315
+e 741 356
+e 744 285
+e 744 880
+e 748 401
+e 748 857
+e 752 404
+e 752 596
+e 753 761
+e 753 587
+e 754 628
+e 754 938
+e 755 127
+e 755 917
+e 756 553
+e 761 126
+e 763 234
+e 764 929
+e 764 492
+e 765 740
+e 767 736
+e 767 122
+e 769 682
+e 770 79
+e 770 605
+e 771 795
+e 771 742
+e 772 81
+e 772 895
+e 776 272
+e 776 501
+e 777 699
+e 777 360
+e 778 591
+e 780 280
+e 782 325
+e 785 18
+e 785 321
+e 786 331
+e 786 781
+e 789 131
+e 790 665
+e 790 460
+e 791 1005
+e 792 191
+e 792 905
+e 793 10
+e 793 168
+e 794 712
+e 796 628
+e 798 418
+e 798 693
+e 801 963
+e 801 811
+e 802 834
+e 804 866
+e 805 766
+e 805 708
+e 806 814
+e 807 117
+e 807 957
+e 808 545
+e 808 392
+e 812 554
+e 812 294
+e 813 423
+e 813 943
+e 817 673
+e 818 434
+e 819 490
+e 819 73
+e 820 25
+e 820 20
+e 821 445
+e 821 530
+e 825 416
+e 826 40
+e 826 779
+e 830 321
+e 830 971
+e 832 182
+e 832 406
+e 833 346
+e 833 79
+e 835 537
+e 835 941
+e 836 263
+e 837 204
+e 837 687
+e 838 294
+e 839 103
+e 839 104
+e 840 572
+e 841 463
+e 841 758
+e 842 485
+e 842 903
+e 843 707
+e 843 286
+e 844 666
+e 844 602
+e 846 194
+e 846 255
+e 847 929
+e 848 652
+e 848 657
+e 849 101
+e 849 758
+e 850 570
+e 852 406
+e 853 69
+e 853 599
+e 854 591
+e 855 204
+e 855 278
+e 856 341
+e 859 609
+e 859 264
+e 861 397
+e 861 439
+e 863 231
+e 863 320
+e 864 622
+e 867 823
+e 871 86
+e 871 337
+e 872 655
+e 872 834
+e 873 524
+e 875 967
+e 875 347
+e 876 964
+e 876 247
+e 877 21
+e 878 737
+e 881 420
+e 881 55
+e 882 688
+e 883 913
+e 883 471
+e 886 128
+e 886 368
+e 888 858
+e 888 983
+e 889 265
+e 890 258
+e 890 847
+e 891 377
+e 894 399
+e 894 271
+e 896 931
+e 897 769
+e 899 125
+e 899 658
+e 901 25
+e 901 831
+e 902 911
+e 902 363
+e 906 802
+e 906 810
+e 907 400
+e 907 675
+e 908 581
+e 908 860
+e 909 100
+e 910 90
+e 911 737
+e 912 904
+e 914 631
+e 915 396
+e 915 657
+e 916 296
+e 919 478
+e 919 435
+e 920 991
+e 920 682
+e 921 430
+e 922 193
+e 925 918
+e 925 862
+e 926 831
+e 926 41
+e 928 328
+e 930 175
+e 930 680
+e 932 451
+e 932 325
+e 933 579
+e 933 167
+e 934 556
+e 934 597
+e 935 338
+e 935 717
+e 937 317
+e 937 219
+e 941 530
+e 942 610
+e 944 367
+e 944 592
+e 945 571
+e 945 44
+e 946 197
+e 946 862
+e 947 981
+e 948 434
+e 948 749
+e 950 627
+e 951 477
+e 952 468
+e 952 701
+e 954 59
+e 954 553
+e 955 699
+e 955 546
+e 956 275
+e 956 86
+e 958 695
+e 959 940
+e 959 510
+e 961 979
+e 963 887
+e 965 134
+e 965 62
+e 966 310
+e 966 3
+e 968 702
+e 968 949
+e 969 60
+e 970 782
+e 970 497
+e 972 751
+e 972 109
+e 974 597
+e 974 827
+e 975 241
+e 977 690
+e 977 73
+e 978 8
+e 978 939
+e 982 998
+e 987 191
+e 987 520
+e 988 620
+e 989 882
+e 989 494
+e 996 412
+e 996 126
+e 997 354
+e 997 110
+e 999 22
+e 999 319
+e 1000 760
+e 1000 710
+e 1001 21
+e 1001 539
+e 1002 595
+e 1002 717
+e 1004 8
+e 1004 483

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 0 796
+e 1 245
+e 1 953
+e 2 628
+e 2 701
+e 3 461
+e 3 55
+e 5 751
+e 5 324
+e 6 551
+e 7 329
+e 7 298
+e 11 384
+e 11 966
+e 12 108
+e 12 327
+e 13 997
+e 13 280
+e 16 843
+e 17 718
+e 17 264
+e 18 959
+e 18 778
+e 20 129
+e 21 611
+e 21 441
+e 23 473
+e 23 850
+e 26 529
+e 26 358
+e 28 852
+e 28 675
+e 29 191
+e 30 911
+e 31 249
+e 31 156
+e 33 228
+e 33 794
+e 34 54
+e 34 683
+e 36 648
+e 37 172
+e 37 998
+e 41 112
+e 41 211
+e 42 679
+e 43 27
+e 45 591
+e 45 997
+e 46 688
+e 46 38
+e 47 94
+e 47 817
+e 50 597
+e 50 440
+e 52 939
+e 58 963
+e 58 711
+e 59 443
+e 59 331
+e 60 451
+e 61 281
+e 61 938
+e 62 10
+e 63 987
+e 66 219
+e 66 48
+e 67 575
+e 68 908
+e 68 14
+e 69 64
+e 69 710
+e 70 237
+e 71 502
+e 71 697
+e 72 707
+e 72 147
+e 74 217
+e 74 132
+e 75 30
+e 75 398
+e 76 636
+e 76 831
+e 77 460
+e 80 78
+e 82 759
+e 82 809
+e 83 176
+e 84 64
+e 84 281
+e 85 565
+e 86 247
+e 86 831
+e 88 49
+e 88 147
+e 89 488
+e 90 158
+e 91 201
+e 91 487
+e 92 712
+e 92 447
+e 95 649
+e 95 975
+e 97 853
+e 97 16
+e 98 515
+e 98 232
+e 99 0
+e 99 321
+e 100 251
+e 100 664
+e 103 566
+e 104 500
+e 104 455
+e 105 172
+e 106 122
+e 110 303
+e 110 15
+e 111 738
+e 111 232
+e 114 141
+e 114 978
+e 117 276
+e 118 371
+e 118 957
+e 120 727
+e 121 706
+e 121 893
+e 123 253
+e 123 360
+e 124 258
+e 124 171
+e 126 860
+e 126 548
+e 127 823
+e 130 471
+e 133 570
+e 133 948
+e 134 884
+e 135 40
+e 135 651
+e 137 48
+e 138 145
+e 139 629
+e 140 253
+e 140 164
+e 142 926
+e 142 485
+e 144 885
+e 144 587
+e 145 735
+e 149 1005
+e 150 998
+e 151 81
+e 152 580
+e 152 976
+e 154 969
+e 157 541
+e 157 778
+e 161 902
+e 162 937
+e 162 447
+e 163 827
+e 163 289
+e 165 120
+e 168 905
+e 170 252
+e 170 768
+e 173 820
+e 173 208
+e 174 915
+e 175 750
+e 177 419
+e 177 761
+e 178 743
+e 182 290
+e 183 9
+e 183 587
+e 184 720
+e 184 29
+e 185 233
+e 185 849
+e 186 470
+e 186 796
+e 188 494
+e 188 598
+e 189 387
+e 190 839
+e 192 787
+e 192 843
+e 195 478
+e 195 863
+e 197 554
+e 198 505
+e 198 849
+e 199 985
+e 199 880
+e 200 933
+e 200 748
+e 201 588
+e 202 889
+e 203 736
+e 207 612
+e 207 371
+e 212 415
+e 213 67
+e 213 757
+e 214 777
+e 214 296
+e 215 51
+e 215 627
+e 216 366
+e 218 607
+e 218 709
+e 220 825
+e 221 555
+e 222 603
+e 222 784
+e 224 781
+e 224 914
+e 225 557
+e 226 309
+e 227 246
+e 227 307
+e 229 73
+e 229 273
+e 231 403
+e 231 915
+e 234 115
+e 235 210
+e 235 453
+e 236 204
+e 236 674
+e 237 430
+e 238 244
+e 238 921
+e 239 495
+e 239 952
+e 240 390
+e 240 146
+e 241 567
+e 244 168
+e 246 465
+e 248 488
+e 248 136
+e 249 951
+e 250 477
+e 250 125
+e 251 166
+e 252 736
+e 255 304
+e 255 338
+e 256 247
+e 256 180
+e 257 380
+e 257 672
+e 259 109
+e 259 562
+e 260 878
+e 261 541
+e 261 866
+e 262 380
+e 263 274
+e 263 148
+e 265 779
+e 265 217
+e 267 581
+e 267 802
+e 269 365
+e 270 838
+e 270 155
+e 271 678
+e 272 593
+e 274 953
+e 275 153
+e 275 775
+e 277 581
+e 277 903
+e 278 181
+e 278 883
+e 279 381
+e 279 928
+e 283 179
+e 283 486
+e 284 825
+e 284 209
+e 285 886
+e 285 629
+e 286 521
+e 286 893
+e 288 182
+e 288 155
+e 290 879
+e 291 956
+e 291 880
+e 292 468
+e 292 404
+e 294 180
+e 294 797
+e 298 717
+e 300 433
+e 300 450
+e 302 191
+e 302 434
+e 303 695
+e 305 426
+e 305 103
+e 307 535
+e 308 591
+e 308 83
+e 310 730
+e 310 205
+e 311 295
+e 311 212
+e 312 882
+e 312 914
+e 313 318
+e 313 566
+e 314 526
+e 314 760
+e 315 19
+e 316 886
+e 317 808
+e 321 57
+e 322 221
+e 322 859
+e 326 539
+e 328 732
+e 329 14
+e 330 957
+e 332 613
+e 332 106
+e 335 755
+e 335 53
+e 336 175
+e 336 319
+e 337 258
+e 337 159
+e 339 725
+e 339 726
+e 340 691
+e 340 377
+e 343 613
+e 343 696
+e 344 345
+e 344 700
+e 347 43
+e 347 927
+e 348 486
+e 348 287
+e 349 439
+e 349 334
+e 351 333
+e 351 414
+e 352 759
+e 352 24
+e 354 792
+e 354 619
+e 355 740
+e 358 206
+e 359 712
+e 359 800
+e 360 689
+e 361 357
+e 362 760
+e 362 817
+e 363 226
+e 363 223
+e 364 612
+e 364 892
+e 365 324
+e 367 242
+e 367 735
+e 368 983
+e 368 27
+e 369 528
+e 369 686
+e 370 679
+e 373 219
+e 373 10
+e 374 117
+e 374 663
+e 375 966
+e 375 758
+e 376 209
+e 378 638
+e 379 297
+e 379 924
+e 381 555
+e 382 490
+e 382 230
+e 383 482
+e 384 282
+e 385 293
+e 385 287
+e 386 297
+e 386 958
+e 388 762
+e 388 680
+e 389 440
+e 390 306
+e 392 743
+e 392 866
+e 393 551
+e 393 132
+e 395 709
+e 395 55
+e 396 445
+e 396 608
+e 397 410
+e 397 78
+e 399 718
+e 399 830
+e 400 194
+e 400 415
+e 401 165
+e 401 856
+e 402 53
+e 405 592
+e 406 962
+e 407 520
+e 407 81
+e 408 574
+e 408 107
+e 409 60
+e 410 187
+e 411 101
+e 413 431
+e 416 636
+e 417 377
+e 417 686
+e 418 599
+e 418 979
+e 420 928
+e 420 115
+e 421 588
+e 421 102
+e 423 134
+e 423 780
+e 424 96
+e 424 922
+e 425 692
+e 426 584
+e 427 355
+e 427 768
+e 428 262
+e 429 570
+e 429 830
+e 430 643
+e 432 411
+e 432 734
+e 435 39
+e 435 993
+e 436 682
+e 436 254
+e 437 862
+e 437 572
+e 438 585
+e 438 978
+e 442 513
+e 442 940
+e 443 458
+e 444 804
+e 444 815
+e 446 383
+e 448 206
+e 448 266
+e 449 938
+e 453 871
+e 454 79
+e 454 467
+e 456 341
+e 456 532
+e 461 35
+e 462 777
+e 462 746
+e 464 403
+e 464 794
+e 465 700
+e 466 446
+e 466 125
+e 469 829
+e 469 65
+e 470 789
+e 472 353
+e 474 485
+e 474 548
+e 475 497
+e 475 520
+e 476 130
+e 476 738
+e 478 689
+e 479 604
+e 479 243
+e 480 737
+e 480 136
+e 481 148
+e 481 77
+e 483 398
+e 483 585
+e 484 128
+e 484 803
+e 491 73
+e 491 511
+e 492 723
+e 492 852
+e 493 204
+e 493 692
+e 494 451
+e 495 809
+e 496 413
+e 496 402
+e 499 772
+e 499 602
+e 504 917
+e 504 732
+e 505 554
+e 506 1002
+e 506 166
+e 507 704
+e 507 187
+e 508 526
+e 508 623
+e 509 1005
+e 509 851
+e 510 416
+e 510 131
+e 512 301
+e 512 32
+e 514 96
+e 514 549
+e 515 608
+e 516 356
+e 516 459
+e 517 600
+e 517 164
+e 518 865
+e 519 376
+e 519 331
+e 522 770
+e 522 970
+e 523 695
+e 523 6
+e 525 370
+e 525 394
+e 527 38
+e 527 859
+e 528 694
+e 529 1002
+e 530 968
+e 534 800
+e 535 208
+e 536 108
+e 536 241
+e 537 378
+e 537 727
+e 538 260
+e 538 714
+e 542 268
+e 542 158
+e 543 867
+e 543 391
+e 544 471
+e 544 592
+e 550 890
+e 550 167
+e 552 939
+e 552 654
+e 556 490
+e 556 710
+e 559 112
+e 559 467
+e 560 835
+e 560 167
+e 561 822
+e 561 1003
+e 562 150
+e 563 220
+e 563 233
+e 564 635
+e 564 927
+e 565 169
+e 568 489
+e 568 867
+e 569 113
+e 569 879
+e 571 57
+e 571 726
+e 572 458
+e 573 981
+e 573 498
+e 576 8
+e 577 888
+e 577 648
+e 578 631
+e 579 725
+e 579 196
+e 580 409
+e 582 350
+e 582 1003
+e 583 22
+e 583 25
+e 586 346
+e 586 211
+e 589 44
+e 590 846
+e 590 969
+e 594 946
+e 594 39
+e 595 967
+e 595 174
+e 596 497
+e 597 387
+e 599 105
+e 600 547
+e 601 196
+e 601 80
+e 603 8
+e 605 531
+e 605 593
+e 606 877
+e 606 341
+e 607 812
+e 609 202
+e 610 531
+e 610 138
+e 611 35
+e 614 42
+e 614 56
+e 617 781
+e 617 342
+e 618 320
+e 620 627
+e 621 908
+e 621 883
+e 622 947
+e 622 304
+e 624 489
+e 624 855
+e 625 85
+e 625 720
+e 626 151
+e 626 295
+e 628 459
+e 630 646
+e 630 656
+e 632 280
+e 632 803
+e 633 616
+e 633 51
+e 634 731
+e 634 225
+e 635 412
+e 638 887
+e 639 434
+e 641 319
+e 641 546
+e 642 812
+e 644 445
+e 644 450
+e 645 922
+e 645 320
+e 646 119
+e 647 1001
+e 647 749
+e 649 640
+e 650 694
+e 652 707
+e 652 975
+e 653 637
+e 653 980
+e 655 960
+e 655 703
+e 656 245
+e 657 20
+e 657 971
+e 658 129
+e 658 659
+e 660 574
+e 660 93
+e 661 835
+e 662 739
+e 662 317
+e 663 524
+e 664 116
+e 665 330
+e 665 793
+e 666 950
+e 666 500
+e 667 836
+e 667 296
+e 668 714
+e 668 558
+e 669 834
+e 669 178
+e 670 197
+e 670 724
+e 671 784
+e 671 160
+e 673 24
+e 673 273
+e 675 457
+e 676 391
+e 676 452
+e 681 795
+e 681 502
+e 684 210
+e 684 346
+e 685 54
+e 685 728
+e 688 449
+e 690 584
+e 691 414
+e 693 326
+e 693 353
+e 698 891
+e 698 827
+e 699 754
+e 699 964
+e 702 802
+e 702 482
+e 703 924
+e 705 604
+e 705 404
+e 706 179
+e 708 325
+e 711 19
+e 713 687
+e 715 789
+e 715 831
+e 716 822
+e 716 306
+e 719 107
+e 719 457
+e 721 772
+e 721 49
+e 722 153
+e 722 923
+e 723 87
+e 724 717
+e 729 412
+e 729 532
+e 730 677
+e 733 910
+e 733 366
+e 734 425
+e 739 315
+e 741 616
+e 741 847
+e 742 156
+e 742 746
+e 744 945
+e 745 589
+e 745 558
+e 747 87
+e 747 230
+e 750 797
+e 751 254
+e 752 643
+e 752 567
+e 753 609
+e 753 755
+e 756 840
+e 756 169
+e 757 52
+e 761 533
+e 763 327
+e 763 503
+e 764 428
+e 764 205
+e 765 602
+e 765 780
+e 766 269
+e 767 460
+e 769 933
+e 769 696
+e 770 455
+e 771 102
+e 773 682
+e 773 865
+e 774 972
+e 774 122
+e 776 405
+e 776 463
+e 779 970
+e 782 521
+e 782 159
+e 783 986
+e 783 631
+e 785 945
+e 785 859
+e 786 128
+e 786 687
+e 787 659
+e 788 452
+e 788 264
+e 790 228
+e 790 299
+e 791 950
+e 791 862
+e 792 272
+e 793 534
+e 795 463
+e 798 113
+e 798 905
+e 799 79
+e 799 539
+e 801 897
+e 801 557
+e 804 511
+e 805 888
+e 805 598
+e 806 146
+e 807 615
+e 807 697
+e 810 863
+e 810 549
+e 811 139
+e 811 731
+e 813 683
+e 813 503
+e 814 309
+e 814 193
+e 815 980
+e 816 704
+e 816 154
+e 818 936
+e 818 143
+e 819 345
+e 819 651
+e 820 533
+e 821 956
+e 821 553
+e 823 758
+e 824 874
+e 824 713
+e 826 161
+e 826 678
+e 828 342
+e 829 740
+e 832 847
+e 832 540
+e 833 902
+e 833 553
+e 834 211
+e 837 116
+e 837 176
+e 840 524
+e 841 422
+e 841 547
+e 842 964
+e 842 394
+e 844 15
+e 844 357
+e 845 282
+e 845 441
+e 848 530
+e 848 325
+e 850 677
+e 853 171
+e 854 472
+e 854 268
+e 855 749
+e 857 513
+e 857 356
+e 858 422
+e 858 856
+e 860 766
+e 861 992
+e 861 501
+e 864 545
+e 864 334
+e 868 701
+e 868 884
+e 869 596
+e 870 737
+e 870 708
+e 871 887
+e 872 473
+e 872 487
+e 873 62
+e 873 839
+e 874 318
+e 875 869
+e 875 576
+e 876 406
+e 876 615
+e 877 131
+e 878 540
+e 881 650
+e 881 654
+e 882 137
+e 885 642
+e 889 193
+e 890 1001
+e 891 194
+e 892 90
+e 895 946
+e 895 333
+e 896 828
+e 896 439
+e 898 949
+e 898 838
+e 899 143
+e 899 101
+e 900 328
+e 900 477
+e 901 181
+e 901 501
+e 903 431
+e 904 690
+e 904 234
+e 906 389
+e 906 545
+e 907 323
+e 909 223
+e 910 808
+e 911 36
+e 912 160
+e 912 27
+e 913 190
+e 913 971
+e 916 271
+e 916 936
+e 917 119
+e 918 836
+e 918 433
+e 919 189
+e 919 894
+e 920 762
+e 920 266
+e 926 894
+e 929 65
+e 929 925
+e 930 243
+e 931 276
+e 931 923
+e 932 361
+e 932 350
+e 934 925
+e 934 518
+e 935 94
+e 935 468
+e 937 372
+e 940 338
+e 941 748
+e 941 578
+e 942 316
+e 942 921
+e 943 301
+e 943 9
+e 944 771
+e 944 63
+e 947 767
+e 948 22
+e 949 216
+e 951 991
+e 952 962
+e 954 775
+e 954 672
+e 955 993
+e 955 208
+e 958 4
+e 959 661
+e 960 524
+e 961 498
+e 961 323
+e 963 299
+e 965 242
+e 965 575
+e 967 40
+e 968 619
+e 972 93
+e 973 674
+e 973 623
+e 974 744
+e 974 639
+e 976 851
+e 977 127
+e 977 897
+e 979 640
+e 981 419
+e 982 620
+e 982 32
+e 983 203
+e 984 909
+e 984 637
+e 985 149
+e 986 372
+e 987 293
+e 988 44
+e 988 754
+e 989 70
+e 989 930
+e 990 680
+e 990 546
+e 991 806
+e 992 728
+e 994 89
+e 994 25
+e 995 846
+e 996 56
+e 996 4
+e 999 109
+e 999 907
+e 1000 995
+e 1000 141
+e 1004 618
+e 1004 289

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 1 812
+e 3 148
+e 3 330
+e 6 484
+e 6 945
+e 7 247
+e 8 935
+e 8 235
+e 9 698
+e 11 260
+e 13 591
+e 13 51
+e 14 512
+e 15 137
+e 17 487
+e 17 624
+e 18 800
+e 18 568
+e 19 940
+e 20 662
+e 22 428
+e 23 817
+e 23 227
+e 24 106
+e 27 186
+e 27 85
+e 28 646
+e 30 307
+e 32 925
+e 32 801
+e 34 911
+e 35 899
+e 37 685
+e 39 572
+e 39 537
+e 40 511
+e 40 267
+e 41 883
+e 43 163
+e 43 710
+e 44 541
+e 45 296
+e 45 352
+e 47 930
+e 47 392
+e 49 175
+e 49 75
+e 50 470
+e 52 503
+e 52 487
+e 54 473
+e 54 4
+e 55 28
+e 56 46
+e 56 356
+e 57 559
+e 57 254
+e 58 456
+e 58 666
+e 59 250
+e 59 499
+e 63 841
+e 63 818
+e 64 209
+e 65 691
+e 65 356
+e 67 785
+e 69 145
+e 69 740
+e 70 863
+e 70 335
+e 71 554
+e 71 581
+e 72 273
+e 74 623
+e 74 679
+e 76 262
+e 76 786
+e 77 380
+e 77 546
+e 79 863
+e 79 168
+e 80 552
+e 80 125
+e 81 740
+e 86 668
+e 86 513
+e 87 112
+e 87 22
+e 88 115
+e 89 856
+e 90 685
+e 90 340
+e 93 658
+e 94 220
+e 94 735
+e 95 392
+e 95 16
+e 96 117
+e 96 211
+e 97 117
+e 98 669
+e 98 140
+e 99 214
+e 100 665
+e 100 92
+e 102 783
+e 104 957
+e 104 62
+e 105 987
+e 105 486
+e 106 116
+e 109 449
+e 113 566
+e 113 955
+e 119 748
+e 119 132
+e 120 634
+e 120 660
+e 123 332
+e 126 473
+e 126 701
+e 127 924
+e 127 182
+e 129 349
+e 129 223
+e 130 7
+e 131 350
+e 131 11
+e 132 550
+e 133 178
+e 133 489
+e 134 880
+e 134 861
+e 136 515
+e 138 563
+e 138 314
+e 139 33
+e 139 124
+e 141 602
+e 142 824
+e 142 512
+e 143 103
+e 143 360
+e 144 412
+e 146 737
+e 149 560
+e 150 12
+e 150 645
+e 151 844
+e 151 754
+e 153 925
+e 153 992
+e 157 0
+e 157 592
+e 158 456
+e 158 316
+e 159 66
+e 159 471
+e 161 367
+e 161 538
+e 164 298
+e 165 160
+e 167 110
+e 167 449
+e 168 223
+e 171 135
+e 171 116
+e 172 346
+e 174 755
+e 175 107
+e 176 465
+e 176 488
+e 177 676
+e 178 525
+e 180 288
+e 180 471
+e 181 480
+e 181 855
+e 183 570
+e 183 298
+e 184 750
+e 185 135
+e 188 798
+e 188 102
+e 189 148
+e 189 947
+e 190 404
+e 190 258
+e 192 257
+e 192 541
+e 193 919
+e 193 53
+e 194 179
+e 194 373
+e 195 646
+e 195 385
+e 199 301
+e 199 264
+e 200 515
+e 200 527
+e 201 447
+e 201 491
+e 202 123
+e 202 538
+e 204 330
+e 206 994
+e 206 667
+e 210 556
+e 210 412
+e 212 659
+e 212 329
+e 215 205
+e 216 899
+e 217 930
+e 217 671
+e 218 508
+e 218 812
+e 219 226
+e 219 160
+e 221 973
+e 221 886
+e 225 641
+e 229 644
+e 229 501
+e 232 442
+e 234 897
+e 236 517
+e 236 683
+e 237 320
+e 237 506
+e 238 406
+e 238 264
+e 241 376
+e 241 91
+e 244 307
+e 246 958
+e 246 624
+e 248 709
+e 248 261
+e 250 457
+e 251 706
+e 251 832
+e 252 114
+e 252 893
+e 253 524
+e 255 271
+e 256 661
+e 256 260
+e 259 165
+e 259 911
+e 265 14
+e 265 55
+e 266 497
+e 266 787
+e 268 563
+e 268 83
+e 270 353
+e 272 637
+e 272 603
+e 274 37
+e 275 101
+e 275 388
+e 276 179
+e 276 990
+e 277 715
+e 277 550
+e 279 67
+e 279 920
+e 282 1
+e 283 999
+e 283 482
+e 286 51
+e 286 280
+e 287 294
+e 287 137
+e 289 318
+e 289 943
+e 290 871
+e 290 776
+e 291 19
+e 291 743
+e 292 468
+e 292 405
+e 293 152
+e 295 719
+e 295 437
+e 296 675
+e 297 600
+e 297 640
+e 299 222
+e 300 590
+e 300 912
+e 303 606
+e 304 383
+e 304 281
+e 305 717
+e 306 929
+e 306 146
+e 308 465
+e 308 50
+e 309 710
+e 310 896
+e 311 172
+e 311 792
+e 312 948
+e 312 825
+e 313 638
+e 313 647
+e 315 216
+e 315 358
+e 317 358
+e 318 753
+e 319 255
+e 319 970
+e 321 273
+e 321 78
+e 322 489
+e 324 758
+e 324 156
+e 325 516
+e 326 46
+e 326 527
+e 327 397
+e 328 262
+e 328 445
+e 333 695
+e 334 184
+e 334 889
+e 336 322
+e 336 549
+e 337 130
+e 337 128
+e 339 1004
+e 341 859
+e 341 1001
+e 342 874
+e 342 429
+e 343 562
+e 344 288
+e 344 405
+e 346 961
+e 347 187
+e 351 361
+e 351 532
+e 355 338
+e 355 734
+e 357 723
+e 359 594
+e 359 410
+e 362 849
+e 362 707
+e 363 889
+e 364 613
+e 366 368
+e 366 740
+e 368 364
+e 369 542
+e 369 644
+e 370 918
+e 370 263
+e 372 53
+e 372 954
+e 374 203
+e 374 737
+e 375 664
+e 375 434
+e 376 736
+e 377 804
+e 378 967
+e 379 725
+e 381 443
+e 381 240
+e 382 715
+e 382 649
+e 383 442
+e 384 783
+e 386 474
+e 386 586
+e 387 144
+e 387 698
+e 390 278
+e 390 662
+e 391 826
+e 391 838
+e 393 85
+e 393 10
+e 394 653
+e 396 850
+e 396 191
+e 398 849
+e 400 898
+e 400 411
+e 401 924
+e 401 543
+e 402 537
+e 402 622
+e 404 844
+e 407 668
+e 407 16
+e 408 809
+e 408 10
+e 414 822
+e 414 647
+e 415 162
+e 416 636
+e 416 634
+e 417 824
+e 417 738
+e 418 365
+e 418 233
+e 419 862
+e 419 484
+e 420 1000
+e 421 253
+e 421 767
+e 422 15
+e 422 108
+e 423 302
+e 424 347
+e 424 385
+e 425 345
+e 425 718
+e 426 261
+e 426 929
+e 427 779
+e 430 377
+e 430 82
+e 431 586
+e 432 579
+e 432 804
+e 433 164
+e 433 34
+e 435 787
+e 436 999
+e 436 524
+e 438 485
+e 439 729
+e 439 30
+e 440 48
+e 440 365
+e 441 775
+e 444 301
+e 444 38
+e 446 371
+e 447 872
+e 448 543
+e 448 243
+e 450 974
+e 451 415
+e 451 413
+e 452 409
+e 452 963
+e 453 682
+e 453 795
+e 454 875
+e 455 173
+e 455 29
+e 459 331
+e 459 410
+e 461 727
+e 462 577
+e 462 683
+e 464 463
+e 464 993
+e 466 281
+e 466 897
+e 467 530
+e 467 670
+e 469 285
+e 469 348
+e 472 454
+e 472 26
+e 474 617
+e 476 762
+e 476 170
+e 477 546
+e 477 363
+e 479 431
+e 480 603
+e 481 269
+e 483 734
+e 485 588
+e 486 653
+e 490 460
+e 490 482
+e 492 379
+e 493 64
+e 493 166
+e 494 974
+e 494 1000
+e 495 850
+e 495 1001
+e 499 36
+e 500 686
+e 502 795
+e 503 338
+e 505 555
+e 506 724
+e 507 729
+e 507 163
+e 508 204
+e 509 733
+e 509 597
+e 510 478
+e 510 257
+e 514 592
+e 514 331
+e 516 410
+e 518 222
+e 519 224
+e 521 727
+e 521 182
+e 522 792
+e 522 545
+e 523 335
+e 529 496
+e 531 232
+e 531 667
+e 532 501
+e 533 403
+e 533 556
+e 534 354
+e 534 602
+e 535 528
+e 536 483
+e 536 547
+e 539 420
+e 539 274
+e 540 20
+e 540 823
+e 544 435
+e 544 633
+e 548 798
+e 548 323
+e 549 957
+e 553 152
+e 557 437
+e 557 597
+e 558 4
+e 558 697
+e 559 965
+e 560 198
+e 561 856
+e 561 147
+e 562 582
+e 564 768
+e 564 83
+e 565 680
+e 565 84
+e 571 851
+e 571 280
+e 572 502
+e 574 936
+e 574 227
+e 575 68
+e 575 569
+e 576 976
+e 576 31
+e 578 811
+e 579 882
+e 580 352
+e 580 898
+e 581 718
+e 582 773
+e 583 984
+e 583 78
+e 584 518
+e 584 233
+e 585 664
+e 585 873
+e 587 969
+e 589 263
+e 589 29
+e 590 41
+e 591 663
+e 593 81
+e 593 640
+e 594 724
+e 595 669
+e 595 118
+e 596 731
+e 596 470
+e 598 475
+e 599 1005
+e 600 173
+e 601 441
+e 601 853
+e 604 191
+e 605 940
+e 606 249
+e 607 984
+e 607 235
+e 608 861
+e 608 786
+e 609 239
+e 609 429
+e 610 294
+e 612 317
+e 612 577
+e 614 714
+e 614 642
+e 615 21
+e 615 428
+e 616 629
+e 616 353
+e 618 245
+e 618 208
+e 619 617
+e 620 741
+e 620 951
+e 621 784
+e 621 115
+e 625 394
+e 625 858
+e 628 409
+e 628 463
+e 629 208
+e 630 498
+e 630 886
+e 631 214
+e 631 753
+e 632 757
+e 632 397
+e 635 384
+e 635 128
+e 639 389
+e 639 712
+e 642 526
+e 643 927
+e 648 555
+e 650 570
+e 650 770
+e 651 84
+e 651 411
+e 652 481
+e 652 806
+e 654 186
+e 654 302
+e 655 247
+e 655 993
+e 657 659
+e 657 882
+e 658 314
+e 661 316
+e 666 567
+e 672 389
+e 673 970
+e 673 25
+e 675 109
+e 677 803
+e 677 155
+e 678 99
+e 678 461
+e 680 458
+e 681 101
+e 681 460
+e 682 526
+e 684 413
+e 684 327
+e 686 955
+e 687 528
+e 687 36
+e 688 226
+e 689 231
+e 689 156
+e 690 403
+e 690 551
+e 691 89
+e 692 360
+e 693 775
+e 693 701
+e 695 995
+e 696 553
+e 696 896
+e 699 888
+e 699 340
+e 700 122
+e 700 249
+e 702 112
+e 702 24
+e 703 679
+e 703 736
+e 704 97
+e 704 122
+e 705 293
+e 705 610
+e 706 808
+e 708 244
+e 708 983
+e 709 107
+e 711 818
+e 711 569
+e 712 814
+e 713 554
+e 713 809
+e 714 529
+e 716 203
+e 716 872
+e 719 588
+e 720 230
+e 720 969
+e 721 637
+e 721 242
+e 722 93
+e 722 325
+e 726 5
+e 726 694
+e 728 626
+e 730 671
+e 730 633
+e 732 367
+e 732 770
+e 733 197
+e 739 88
+e 739 121
+e 741 759
+e 742 458
+e 742 567
+e 743 707
+e 744 605
+e 744 234
+e 745 542
+e 745 475
+e 746 269
+e 746 963
+e 747 881
+e 747 239
+e 748 768
+e 749 636
+e 749 169
+e 751 305
+e 751 791
+e 752 114
+e 752 118
+e 756 354
+e 756 665
+e 758 205
+e 759 254
+e 760 530
+e 760 111
+e 761 33
+e 761 2
+e 762 2
+e 763 811
+e 763 284
+e 764 332
+e 764 888
+e 765 660
+e 766 663
+e 766 1005
+e 767 73
+e 769 197
+e 771 209
+e 771 48
+e 772 627
+e 772 73
+e 773 170
+e 776 496
+e 778 68
+e 778 406
+e 779 623
+e 780 177
+e 780 121
+e 781 434
+e 781 723
+e 782 519
+e 785 174
+e 788 525
+e 788 701
+e 790 611
+e 793 25
+e 793 915
+e 794 380
+e 794 520
+e 796 207
+e 796 196
+e 797 348
+e 800 750
+e 802 31
+e 802 145
+e 805 60
+e 805 62
+e 806 617
+e 807 343
+e 807 468
+e 808 213
+e 810 895
+e 810 284
+e 813 26
+e 813 243
+e 815 310
+e 815 498
+e 816 240
+e 817 187
+e 819 423
+e 819 694
+e 820 9
+e 820 207
+e 821 60
+e 821 350
+e 825 141
+e 826 822
+e 827 611
+e 827 140
+e 828 136
+e 828 271
+e 829 282
+e 829 504
+e 830 398
+e 830 604
+e 831 0
+e 831 230
+e 833 91
+e 833 599
+e 834 643
+e 834 801
+e 835 656
+e 835 520
+e 836 511
+e 836 541
+e 840 841
+e 840 92
+e 842 803
+e 842 649
+e 843 357
+e 843 378
+e 845 154
+e 845 124
+e 846 450
+e 846 323
+e 847 626
+e 847 838
+e 848 816
+e 848 154
+e 851 910
+e 852 373
+e 852 859
+e 854 303
+e 854 757
+e 855 641
+e 857 551
+e 857 966
+e 860 44
+e 860 72
+e 862 547
+e 864 672
+e 864 443
+e 865 790
+e 865 361
+e 866 777
+e 866 797
+e 867 185
+e 868 876
+e 868 627
+e 869 220
+e 869 125
+e 870 245
+e 870 267
+e 871 155
+e 873 692
+e 874 333
+e 875 697
+e 876 258
+e 877 504
+e 878 613
+e 879 774
+e 881 837
+e 883 345
+e 884 867
+e 884 505
+e 885 901
+e 885 497
+e 887 111
+e 887 395
+e 890 492
+e 890 994
+e 891 769
+e 891 211
+e 892 299
+e 892 349
+e 894 648
+e 894 513
+e 895 285
+e 900 765
+e 900 670
+e 901 907
+e 902 656
+e 902 446
+e 903 427
+e 903 931
+e 904 598
+e 904 371
+e 905 61
+e 905 880
+e 906 717
+e 906 162
+e 908 108
+e 908 979
+e 909 457
+e 909 667
+e 912 38
+e 913 858
+e 913 945
+e 914 992
+e 916 110
+e 916 228
+e 917 799
+e 917 954
+e 918 853
+e 919 774
+e 920 147
+e 921 270
+e 921 103
+e 922 777
+e 922 61
+e 923 42
+e 923 568
+e 926 914
+e 926 517
+e 927 329
+e 928 399
+e 928 535
+e 931 953
+e 932 169
+e 932 213
+e 933 587
+e 933 936
+e 935 578
+e 937 941
+e 937 21
+e 938 619
+e 938 523
+e 939 488
+e 939 907
+e 941 320
+e 942 500
+e 942 622
+e 943 12
+e 944 893
+e 944 725
+e 946 839
+e 946 879
+e 947 981
+e 948 915
+e 949 5
+e 949 242
+e 950 799
+e 950 934
+e 952 42
+e 952 789
+e 956 479
+e 956 399
+e 958 735
+e 959 814
+e 959 196
+e 960 149
+e 960 791
+e 961 754
+e 962 782
+e 962 731
+e 964 478
+e 964 339
+e 965 573
+e 966 676
+e 967 789
+e 968 215
+e 968 225
+e 971 35
+e 971 837
+e 972 934
+e 972 910
+e 973 309
+e 975 688
+e 975 82
+e 976 953
+e 977 674
+e 977 445
+e 978 832
+e 978 166
+e 979 224
+e 980 566
+e 980 198
+e 981 738
+e 982 985
+e 982 228
+e 983 545
+e 985 755
+e 986 784
+e 987 388
+e 988 674
+e 988 728
+e 989 66
+e 989 552
+e 990 645
+e 991 438
+e 991 395
+e 995 491
+e 996 878
+e 996 75
+e 997 638
+e 997 877
+e 998 986
+e 998 231
+e 1002 278
+e 1002 951
+e 1003 839
+e 1003 823
+e 1004 573

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 1 178
+e 2 479
+e 4 426
+e 4 946
+e 5 271
+e 5 886
+e 7 907
+e 8 382
+e 8 622
+e 10 505
+e 10 396
+e 11 328
+e 13 779
+e 13 641
+e 14 528
+e 14 751
+e 16 341
+e 16 55
+e 18 389
+e 20 939
+e 21 496
+e 21 607
+e 22 273
+e 24 878
+e 25 824
+e 25 50
+e 26 370
+e 27 331
+e 28 897
+e 28 839
+e 29 199
+e 29 775
+e 32 756
+e 32 487
+e 33 337
+e 34 846
+e 34 985
+e 38 231
+e 38 597
+e 40 140
+e 43 573
+e 43 225
+e 45 239
+e 45 514
+e 46 816
+e 47 744
+e 48 460
+e 49 922
+e 52 77
+e 52 373
+e 53 891
+e 53 464
+e 54 727
+e 56 869
+e 56 141
+e 57 748
+e 60 145
+e 60 68
+e 61 169
+e 61 928
+e 66 749
+e 66 918
+e 67 962
+e 67 23
+e 70 291
+e 73 419
+e 73 938
+e 74 319
+e 76 557
+e 76 361
+e 78 357
+e 81 838
+e 81 791
+e 82 535
+e 82 437
+e 83 137
+e 83 915
+e 85 271
+e 85 0
+e 86 486
+e 86 286
+e 87 580
+e 87 999
+e 89 494
+e 89 225
+e 90 905
+e 95 761
+e 95 448
+e 96 649
+e 96 452
+e 98 281
+e 98 514
+e 99 662
+e 99 651
+e 100 232
+e 100 611
+e 101 220
+e 101 550
+e 102 949
+e 102 873
+e 104 715
+e 104 378
+e 105 804
+e 106 787
+e 106 668
+e 107 174
+e 108 599
+e 109 927
+e 109 590
+e 110 223
+e 110 149
+e 111 155
+e 112 865
+e 112 276
+e 113 88
+e 113 413
+e 116 952
+e 116 230
+e 117 760
+e 117 939
+e 118 990
+e 119 687
+e 121 814
+e 122 539
+e 122 793
+e 123 445
+e 123 355
+e 124 270
+e 124 166
+e 125 407
+e 127 830
+e 127 893
+e 128 40
+e 128 201
+e 129 819
+e 129 6
+e 131 967
+e 131 930
+e 132 414
+e 132 325
+e 133 920
+e 133 927
+e 134 791
+e 136 682
+e 136 62
+e 138 971
+e 143 718
+e 143 527
+e 150 337
+e 150 646
+e 151 975
+e 151 163
+e 152 1004
+e 153 961
+e 153 592
+e 154 481
+e 154 903
+e 155 368
+e 156 887
+e 156 901
+e 157 425
+e 157 616
+e 158 571
+e 159 549
+e 159 517
+e 160 521
+e 160 968
+e 161 277
+e 162 401
+e 162 811
+e 163 934
+e 164 780
+e 167 265
+e 167 304
+e 168 31
+e 168 914
+e 170 409
+e 173 824
+e 173 193
+e 175 693
+e 175 30
+e 176 930
+e 179 645
+e 180 525
+e 182 377
+e 182 408
+e 185 170
+e 186 598
+e 186 235
+e 187 966
+e 187 138
+e 190 827
+e 190 998
+e 191 841
+e 191 868
+e 192 665
+e 192 560
+e 194 612
+e 194 826
+e 195 499
+e 195 260
+e 198 511
+e 198 593
+e 200 867
+e 200 457
+e 202 482
+e 203 488
+e 203 639
+e 204 142
+e 204 784
+e 205 572
+e 205 631
+e 206 753
+e 206 313
+e 207 398
+e 207 350
+e 208 7
+e 208 338
+e 209 17
+e 209 235
+e 210 895
+e 215 860
+e 216 79
+e 216 189
+e 217 233
+e 220 899
+e 222 550
+e 222 455
+e 227 500
+e 227 246
+e 231 165
+e 238 288
+e 240 230
+e 241 768
+e 241 781
+e 242 94
+e 243 542
+e 245 512
+e 245 932
+e 247 872
+e 247 934
+e 248 17
+e 248 452
+e 250 573
+e 251 775
+e 253 39
+e 253 249
+e 254 240
+e 255 720
+e 255 144
+e 259 458
+e 259 903
+e 260 42
+e 261 729
+e 261 90
+e 262 648
+e 262 564
+e 263 641
+e 263 484
+e 264 149
+e 266 80
+e 266 213
+e 267 836
+e 267 31
+e 269 196
+e 269 188
+e 273 544
+e 274 562
+e 274 295
+e 275 925
+e 276 925
+e 278 505
+e 278 901
+e 280 735
+e 280 335
+e 281 856
+e 282 716
+e 284 480
+e 284 660
+e 285 817
+e 287 992
+e 289 600
+e 289 943
+e 292 818
+e 292 729
+e 293 698
+e 293 952
+e 297 408
+e 297 355
+e 298 121
+e 298 730
+e 299 689
+e 300 179
+e 300 658
+e 301 432
+e 301 508
+e 302 643
+e 303 761
+e 303 440
+e 305 15
+e 305 37
+e 306 742
+e 306 285
+e 307 169
+e 307 403
+e 308 495
+e 308 481
+e 309 983
+e 309 242
+e 310 454
+e 311 282
+e 311 954
+e 312 322
+e 313 229
+e 314 125
+e 314 152
+e 315 609
+e 315 806
+e 317 954
+e 317 381
+e 318 625
+e 318 290
+e 320 243
+e 320 895
+e 321 256
+e 321 918
+e 323 513
+e 326 0
+e 327 931
+e 327 536
+e 329 221
+e 329 562
+e 330 524
+e 330 919
+e 332 863
+e 332 493
+e 333 598
+e 333 555
+e 334 686
+e 334 798
+e 335 97
+e 336 388
+e 342 429
+e 342 843
+e 344 740
+e 345 591
+e 345 870
+e 347 736
+e 349 474
+e 349 346
+e 350 899
+e 351 534
+e 351 135
+e 352 794
+e 352 601
+e 356 93
+e 356 197
+e 358 974
+e 359 71
+e 360 818
+e 360 339
+e 362 264
+e 363 197
+e 365 324
+e 365 41
+e 367 446
+e 367 413
+e 369 628
+e 370 74
+e 371 552
+e 375 985
+e 375 229
+e 376 721
+e 377 545
+e 379 70
+e 379 12
+e 380 44
+e 383 78
+e 384 640
+e 384 283
+e 387 423
+e 390 829
+e 391 881
+e 391 838
+e 392 998
+e 394 1000
+e 395 548
+e 395 92
+e 397 656
+e 397 115
+e 398 108
+e 399 451
+e 399 814
+e 400 510
+e 400 23
+e 402 390
+e 402 682
+e 404 750
+e 406 224
+e 406 50
+e 410 328
+e 410 257
+e 411 739
+e 411 343
+e 414 26
+e 415 338
+e 415 388
+e 416 254
+e 416 997
+e 417 238
+e 417 600
+e 418 147
+e 418 373
+e 420 219
+e 420 343
+e 421 559
+e 421 495
+e 422 212
+e 427 644
+e 427 804
+e 428 295
+e 428 999
+e 429 965
+e 430 476
+e 431 84
+e 431 708
+e 433 424
+e 433 805
+e 434 299
+e 434 336
+e 436 541
+e 436 126
+e 440 689
+e 441 666
+e 441 217
+e 442 385
+e 442 605
+e 443 525
+e 444 288
+e 444 3
+e 445 910
+e 446 256
+e 449 9
+e 449 147
+e 450 347
+e 451 39
+e 453 616
+e 456 547
+e 456 257
+e 457 218
+e 458 632
+e 459 749
+e 459 769
+e 461 55
+e 462 465
+e 462 59
+e 463 196
+e 463 921
+e 466 443
+e 466 272
+e 467 946
+e 469 523
+e 469 283
+e 470 540
+e 470 389
+e 471 681
+e 473 172
+e 473 91
+e 474 652
+e 475 36
+e 476 177
+e 477 211
+e 478 75
+e 479 212
+e 480 105
+e 482 210
+e 483 218
+e 483 72
+e 485 512
+e 485 561
+e 487 258
+e 488 994
+e 489 832
+e 489 54
+e 491 181
+e 491 933
+e 494 405
+e 496 140
+e 498 270
+e 498 961
+e 501 632
+e 502 602
+e 502 931
+e 503 559
+e 504 478
+e 504 374
+e 506 279
+e 506 19
+e 507 49
+e 507 19
+e 508 713
+e 510 369
+e 515 635
+e 515 468
+e 516 724
+e 516 364
+e 518 620
+e 518 674
+e 519 747
+e 519 986
+e 520 340
+e 520 618
+e 521 148
+e 523 726
+e 524 58
+e 526 958
+e 526 773
+e 529 438
+e 529 522
+e 530 646
+e 531 467
+e 531 319
+e 532 493
+e 532 1000
+e 533 393
+e 536 959
+e 537 37
+e 539 447
+e 541 202
+e 543 570
+e 545 873
+e 547 795
+e 549 363
+e 551 371
+e 551 834
+e 553 703
+e 554 15
+e 554 572
+e 556 419
+e 556 694
+e 557 592
+e 558 805
+e 558 994
+e 565 148
+e 565 645
+e 566 883
+e 566 956
+e 567 177
+e 567 357
+e 568 736
+e 568 120
+e 569 825
+e 569 425
+e 570 44
+e 574 364
+e 574 683
+e 575 57
+e 575 118
+e 576 997
+e 576 19
+e 577 346
+e 577 1
+e 579 84
+e 579 757
+e 580 713
+e 581 533
+e 582 11
+e 582 64
+e 583 612
+e 583 561
+e 584 640
+e 584 460
+e 585 20
+e 585 759
+e 587 497
+e 587 296
+e 588 651
+e 588 586
+e 589 780
+e 590 354
+e 593 114
+e 594 304
+e 594 534
+e 595 237
+e 596 528
+e 596 366
+e 603 797
+e 603 648
+e 605 714
+e 606 326
+e 608 161
+e 608 472
+e 609 3
+e 610 279
+e 613 497
+e 613 115
+e 615 386
+e 615 359
+e 617 77
+e 617 723
+e 619 499
+e 619 12
+e 621 79
+e 621 675
+e 622 589
+e 623 795
+e 624 773
+e 624 107
+e 625 211
+e 626 904
+e 626 511
+e 627 996
+e 627 535
+e 629 94
+e 629 296
+e 633 59
+e 633 908
+e 634 492
+e 634 912
+e 635 164
+e 636 237
+e 636 51
+e 637 464
+e 637 394
+e 638 477
+e 638 914
+e 639 344
+e 642 2
+e 642 447
+e 647 976
+e 647 889
+e 650 9
+e 650 538
+e 653 544
+e 653 522
+e 654 537
+e 654 928
+e 655 942
+e 656 250
+e 657 969
+e 657 146
+e 658 827
+e 659 698
+e 659 189
+e 661 862
+e 661 606
+e 662 820
+e 663 475
+e 663 214
+e 665 234
+e 666 715
+e 667 435
+e 667 706
+e 669 733
+e 669 900
+e 670 915
+e 670 992
+e 671 755
+e 671 134
+e 672 65
+e 673 174
+e 673 372
+e 676 758
+e 677 623
+e 677 68
+e 678 236
+e 678 265
+e 679 796
+e 679 905
+e 680 599
+e 680 268
+e 684 774
+e 684 252
+e 685 486
+e 685 30
+e 688 341
+e 688 228
+e 690 386
+e 690 843
+e 691 748
+e 691 141
+e 692 543
+e 692 91
+e 694 41
+e 695 643
+e 695 564
+e 696 849
+e 696 294
+e 697 595
+e 697 660
+e 699 471
+e 699 581
+e 700 976
+e 701 774
+e 701 743
+e 702 64
+e 702 860
+e 704 578
+e 704 199
+e 705 840
+e 705 144
+e 708 62
+e 709 453
+e 709 437
+e 710 287
+e 710 454
+e 711 286
+e 711 751
+e 712 490
+e 712 403
+e 716 48
+e 717 46
+e 718 201
+e 719 853
+e 719 664
+e 721 139
+e 722 146
+e 724 251
+e 725 509
+e 725 956
+e 728 111
+e 728 232
+e 731 47
+e 731 171
+e 732 236
+e 732 358
+e 734 602
+e 734 72
+e 735 184
+e 737 181
+e 737 781
+e 738 839
+e 738 166
+e 743 120
+e 745 768
+e 745 135
+e 746 820
+e 746 817
+e 747 538
+e 752 1001
+e 752 396
+e 753 58
+e 754 668
+e 755 723
+e 756 275
+e 758 468
+e 762 741
+e 762 277
+e 763 234
+e 763 912
+e 764 24
+e 764 171
+e 765 412
+e 765 233
+e 766 501
+e 766 324
+e 767 455
+e 767 447
+e 769 664
+e 770 990
+e 771 717
+e 771 911
+e 772 837
+e 776 374
+e 776 484
+e 777 323
+e 777 1004
+e 778 597
+e 778 530
+e 779 806
+e 782 509
+e 782 740
+e 783 982
+e 783 407
+e 785 426
+e 785 114
+e 786 837
+e 786 700
+e 787 184
+e 788 322
+e 788 438
+e 789 969
+e 789 750
+e 790 938
+e 792 490
+e 792 439
+e 796 630
+e 797 560
+e 799 503
+e 799 683
+e 800 996
+e 800 887
+e 801 69
+e 801 472
+e 802 492
+e 802 244
+e 803 628
+e 803 213
+e 807 381
+e 807 586
+e 808 730
+e 808 794
+e 809 312
+e 809 921
+e 810 33
+e 810 130
+e 812 886
+e 812 798
+e 813 500
+e 813 291
+e 815 180
+e 815 904
+e 816 726
+e 819 607
+e 821 754
+e 821 851
+e 822 614
+e 822 139
+e 823 69
+e 823 172
+e 825 348
+e 828 944
+e 828 672
+e 829 178
+e 830 450
+e 831 552
+e 831 423
+e 832 439
+e 833 548
+e 833 35
+e 835 424
+e 835 376
+e 836 784
+e 840 404
+e 841 63
+e 842 687
+e 842 912
+e 844 294
+e 844 183
+e 845 372
+e 846 922
+e 847 97
+e 847 652
+e 848 137
+e 848 385
+e 849 760
+e 850 975
+e 850 383
+e 852 221
+e 852 142
+e 853 980
+e 854 405
+e 854 974
+e 855 981
+e 855 872
+e 856 401
+e 857 239
+e 857 249
+e 858 676
+e 858 246
+e 859 63
+e 861 382
+e 861 649
+e 862 601
+e 863 215
+e 864 979
+e 864 331
+e 865 193
+e 866 422
+e 866 272
+e 867 563
+e 868 727
+e 870 214
+e 871 6
+e 871 325
+e 874 591
+e 874 339
+e 875 158
+e 875 340
+e 876 393
+e 876 290
+e 877 93
+e 877 362
+e 879 448
+e 879 409
+e 880 757
+e 880 348
+e 881 834
+e 882 714
+e 883 630
+e 884 268
+e 884 165
+e 885 553
+e 885 959
+e 888 316
+e 888 889
+e 890 900
+e 890 611
+e 891 51
+e 892 461
+e 892 943
+e 893 366
+e 894 578
+e 894 741
+e 896 620
+e 896 36
+e 897 42
+e 898 310
+e 898 316
+e 902 353
+e 902 675
+e 906 224
+e 906 65
+e 907 387
+e 909 18
+e 909 219
+e 910 226
+e 911 811
+e 913 252
+e 913 631
+e 916 908
+e 916 604
+e 917 380
+e 917 145
+e 919 378
+e 920 353
+e 923 982
+e 923 188
+e 924 770
+e 924 790
+e 926 722
+e 926 878
+e 929 882
+e 929 759
+e 933 88
+e 935 126
+e 935 932
+e 936 744
+e 936 513
+e 937 465
+e 937 392
+e 940 185
+e 940 707
+e 941 772
+e 941 540
+e 944 546
+e 945 851
+e 945 707
+e 947 733
+e 947 706
+e 948 644
+e 948 226
+e 949 258
+e 950 720
+e 950 571
+e 951 869
+e 951 80
+e 953 223
+e 953 681
+e 955 430
+e 955 964
+e 957 610
+e 957 845
+e 958 27
+e 960 739
+e 960 542
+e 962 71
+e 963 302
+e 963 793
+e 964 103
+e 966 973
+e 967 555
+e 968 435
+e 970 130
+e 970 361
+e 971 999
+e 972 965
+e 972 942
+e 973 92
+e 977 686
+e 977 693
+e 978 176
+e 978 614
+e 979 990
+e 980 517
+e 981 432
+e 983 452
+e 984 527
+e 984 618
+e 986 75
+e 987 244
+e 987 368
+e 988 546
+e 988 35
+e 989 119
+e 989 563
+e 991 859
+e 991 183
+e 993 826
+e 993 228
+e 995 412
+e 995 604
+e 1001 103
+e 1002 655
+e 1002 22
+e 1003 674
+e 1003 354
+e 1005 742
+e 1005 703

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 2 313
+e 2 928
+e 3 730
+e 3 104
+e 8 683
+e 9 715
+e 9 146
+e 10 741
+e 11 966
+e 11 267
+e 14 491
+e 14 635
+e 15 857
+e 15 216
+e 19 914
+e 20 978
+e 20 560
+e 22 787
+e 22 447
+e 23 130
+e 24 881
+e 24 550
+e 25 511
+e 25 164
+e 26 222
+e 27 732
+e 27 909
+e 29 282
+e 29 334
+e 30 74
+e 30 270
+e 33 784
+e 33 924
+e 34 957
+e 34 586
+e 35 284
+e 36 119
+e 36 377
+e 37 932
+e 37 28
+e 38 226
+e 40 364
+e 40 186
+e 41 743
+e 42 936
+e 42 650
+e 43 579
+e 43 466
+e 44 107
+e 44 779
+e 49 587
+e 50 959
+e 50 553
+e 51 678
+e 51 606
+e 52 873
+e 52 835
+e 53 87
+e 53 6
+e 56 610
+e 57 290
+e 57 190
+e 58 933
+e 60 974
+e 60 513
+e 63 373
+e 63 265
+e 64 244
+e 64 773
+e 65 615
+e 67 852
+e 67 747
+e 68 728
+e 68 520
+e 69 380
+e 72 695
+e 72 31
+e 75 451
+e 75 148
+e 76 613
+e 76 821
+e 77 250
+e 77 194
+e 78 544
+e 79 596
+e 83 243
+e 83 214
+e 84 982
+e 84 724
+e 89 240
+e 90 344
+e 90 885
+e 93 764
+e 95 624
+e 95 878
+e 97 592
+e 97 658
+e 98 46
+e 99 992
+e 99 123
+e 100 864
+e 100 415
+e 103 406
+e 103 885
+e 107 214
+e 108 416
+e 109 660
+e 110 1
+e 110 294
+e 111 496
+e 113 847
+e 116 737
+e 116 556
+e 117 605
+e 119 744
+e 121 112
+e 122 548
+e 125 582
+e 126 914
+e 126 176
+e 127 629
+e 127 691
+e 128 367
+e 129 93
+e 129 727
+e 131 681
+e 131 707
+e 133 522
+e 135 345
+e 135 341
+e 137 212
+e 137 970
+e 138 550
+e 139 39
+e 139 932
+e 141 588
+e 141 769
+e 142 994
+e 143 503
+e 143 412
+e 144 831
+e 145 909
+e 145 645
+e 149 375
+e 149 609
+e 150 605
+e 151 21
+e 153 554
+e 156 983
+e 156 690
+e 157 473
+e 157 572
+e 158 1001
+e 158 479
+e 159 713
+e 161 140
+e 162 853
+e 162 322
+e 163 792
+e 166 676
+e 167 485
+e 167 54
+e 168 421
+e 168 436
+e 169 479
+e 170 787
+e 170 487
+e 171 982
+e 171 180
+e 172 355
+e 172 35
+e 173 452
+e 173 673
+e 174 400
+e 175 252
+e 175 105
+e 181 88
+e 181 978
+e 182 706
+e 182 765
+e 183 391
+e 183 674
+e 185 954
+e 186 744
+e 188 462
+e 188 694
+e 189 218
+e 192 880
+e 192 225
+e 193 465
+e 193 934
+e 195 312
+e 195 136
+e 196 260
+e 196 516
+e 197 826
+e 198 341
+e 199 529
+e 199 651
+e 200 221
+e 200 242
+e 201 862
+e 201 952
+e 202 882
+e 202 466
+e 203 28
+e 204 179
+e 204 949
+e 205 468
+e 205 831
+e 206 777
+e 207 46
+e 208 556
+e 210 381
+e 210 962
+e 211 136
+e 211 694
+e 213 607
+e 213 714
+e 215 904
+e 217 330
+e 217 811
+e 219 663
+e 222 920
+e 224 737
+e 224 497
+e 226 945
+e 227 124
+e 227 301
+e 228 699
+e 230 422
+e 230 166
+e 231 937
+e 231 620
+e 232 957
+e 232 414
+e 233 557
+e 233 80
+e 234 618
+e 236 73
+e 236 296
+e 237 26
+e 237 21
+e 239 337
+e 239 144
+e 248 180
+e 248 223
+e 249 492
+e 249 828
+e 250 481
+e 251 919
+e 253 893
+e 254 494
+e 255 102
+e 255 906
+e 256 830
+e 256 839
+e 257 590
+e 257 86
+e 258 47
+e 261 772
+e 262 251
+e 262 729
+e 264 117
+e 264 617
+e 268 315
+e 268 238
+e 271 893
+e 271 17
+e 272 55
+e 272 106
+e 273 220
+e 273 134
+e 274 121
+e 274 555
+e 275 614
+e 276 98
+e 278 89
+e 278 908
+e 279 378
+e 280 588
+e 280 86
+e 281 830
+e 281 123
+e 283 140
+e 285 241
+e 286 791
+e 286 790
+e 287 850
+e 287 920
+e 288 340
+e 289 808
+e 290 397
+e 291 621
+e 291 41
+e 292 340
+e 292 748
+e 293 963
+e 293 302
+e 295 926
+e 295 947
+e 297 79
+e 297 484
+e 299 776
+e 302 802
+e 303 777
+e 303 80
+e 304 218
+e 304 759
+e 305 497
+e 308 504
+e 309 105
+e 310 148
+e 310 512
+e 311 985
+e 312 300
+e 313 81
+e 316 962
+e 317 524
+e 317 796
+e 318 879
+e 318 66
+e 319 577
+e 319 197
+e 320 7
+e 320 263
+e 321 314
+e 321 928
+e 323 154
+e 324 426
+e 325 965
+e 327 528
+e 327 155
+e 329 525
+e 329 547
+e 330 709
+e 331 861
+e 331 58
+e 332 919
+e 333 699
+e 333 4
+e 338 735
+e 338 461
+e 339 1002
+e 339 448
+e 342 866
+e 343 73
+e 343 267
+e 346 358
+e 346 152
+e 347 627
+e 347 342
+e 348 92
+e 349 582
+e 351 397
+e 351 430
+e 352 661
+e 352 677
+e 353 194
+e 353 155
+e 354 827
+e 354 328
+e 355 185
+e 356 519
+e 356 91
+e 358 987
+e 359 133
+e 359 632
+e 360 403
+e 360 132
+e 361 687
+e 362 283
+e 362 105
+e 364 980
+e 368 859
+e 369 433
+e 369 676
+e 370 591
+e 370 415
+e 371 432
+e 371 177
+e 372 177
+e 372 328
+e 373 968
+e 374 445
+e 374 871
+e 378 368
+e 379 457
+e 379 554
+e 382 922
+e 384 61
+e 384 74
+e 385 669
+e 385 718
+e 386 212
+e 386 858
+e 387 756
+e 387 350
+e 388 282
+e 388 187
+e 389 396
+e 389 629
+e 390 521
+e 391 832
+e 392 215
+e 394 609
+e 395 276
+e 395 989
+e 396 279
+e 399 515
+e 399 845
+e 400 314
+e 401 125
+e 401 641
+e 402 393
+e 402 91
+e 404 124
+e 404 390
+e 405 714
+e 405 335
+e 408 421
+e 409 819
+e 410 858
+e 410 755
+e 411 872
+e 411 18
+e 413 511
+e 414 679
+e 417 263
+e 417 85
+e 419 322
+e 419 299
+e 420 576
+e 420 899
+e 422 719
+e 423 594
+e 424 102
+e 424 822
+e 425 749
+e 425 361
+e 426 783
+e 427 403
+e 427 142
+e 428 967
+e 429 716
+e 429 241
+e 431 315
+e 434 316
+e 435 92
+e 435 298
+e 437 229
+e 437 4
+e 438 579
+e 438 96
+e 439 727
+e 439 8
+e 440 591
+e 440 238
+e 441 688
+e 442 16
+e 442 88
+e 443 660
+e 443 521
+e 444 998
+e 444 130
+e 445 821
+e 449 300
+e 451 997
+e 453 956
+e 453 115
+e 454 269
+e 454 855
+e 455 12
+e 455 434
+e 458 164
+e 458 923
+e 459 721
+e 459 573
+e 460 868
+e 463 363
+e 464 746
+e 464 326
+e 465 301
+e 467 786
+e 469 677
+e 469 366
+e 470 798
+e 470 656
+e 471 748
+e 472 669
+e 472 695
+e 473 759
+e 475 520
+e 476 719
+e 477 637
+e 477 595
+e 478 7
+e 478 793
+e 482 505
+e 482 805
+e 485 147
+e 486 234
+e 486 504
+e 488 767
+e 489 585
+e 490 450
+e 490 94
+e 491 977
+e 493 484
+e 493 615
+e 494 71
+e 495 959
+e 495 886
+e 498 746
+e 498 708
+e 500 845
+e 501 865
+e 501 503
+e 502 499
+e 502 689
+e 505 277
+e 507 843
+e 507 70
+e 508 413
+e 508 705
+e 509 951
+e 509 476
+e 510 586
+e 510 985
+e 513 412
+e 514 432
+e 514 580
+e 517 78
+e 517 859
+e 519 643
+e 522 456
+e 524 819
+e 525 47
+e 526 763
+e 526 66
+e 527 59
+e 527 18
+e 529 836
+e 530 118
+e 530 383
+e 531 323
+e 531 589
+e 532 584
+e 532 245
+e 533 617
+e 534 446
+e 534 334
+e 535 753
+e 535 190
+e 536 178
+e 536 483
+e 537 174
+e 537 383
+e 538 500
+e 538 783
+e 539 953
+e 539 692
+e 540 776
+e 540 807
+e 541 178
+e 542 871
+e 542 45
+e 543 913
+e 543 652
+e 545 560
+e 545 769
+e 546 942
+e 546 665
+e 549 56
+e 549 381
+e 552 96
+e 552 533
+e 558 153
+e 558 866
+e 559 122
+e 559 449
+e 561 436
+e 562 184
+e 562 45
+e 563 16
+e 563 325
+e 565 515
+e 565 875
+e 567 655
+e 567 260
+e 568 939
+e 568 265
+e 569 598
+e 571 824
+e 571 611
+e 572 946
+e 573 128
+e 574 590
+e 574 423
+e 575 790
+e 575 307
+e 576 94
+e 577 70
+e 581 726
+e 581 913
+e 583 289
+e 583 857
+e 585 868
+e 592 512
+e 593 336
+e 596 603
+e 597 922
+e 597 487
+e 600 480
+e 601 337
+e 601 971
+e 602 109
+e 602 244
+e 603 483
+e 604 614
+e 604 5
+e 607 496
+e 608 518
+e 608 376
+e 612 474
+e 612 692
+e 613 259
+e 616 154
+e 619 875
+e 620 934
+e 621 152
+e 622 407
+e 622 120
+e 623 729
+e 623 62
+e 625 681
+e 627 599
+e 628 555
+e 628 481
+e 630 475
+e 630 610
+e 631 780
+e 631 724
+e 633 382
+e 633 363
+e 634 311
+e 635 625
+e 636 578
+e 636 930
+e 637 407
+e 638 528
+e 638 544
+e 639 679
+e 640 594
+e 640 0
+e 641 165
+e 642 523
+e 642 17
+e 643 191
+e 644 416
+e 644 547
+e 645 270
+e 646 805
+e 646 165
+e 647 616
+e 647 716
+e 648 923
+e 648 589
+e 649 220
+e 649 966
+e 652 209
+e 653 108
+e 653 926
+e 654 961
+e 654 306
+e 655 147
+e 657 856
+e 657 10
+e 662 446
+e 662 599
+e 663 947
+e 664 506
+e 664 970
+e 666 551
+e 666 905
+e 667 901
+e 667 462
+e 670 1000
+e 671 208
+e 671 1000
+e 672 611
+e 672 764
+e 673 365
+e 675 903
+e 675 296
+e 678 430
+e 680 5
+e 682 349
+e 682 561
+e 684 721
+e 684 13
+e 685 467
+e 685 578
+e 686 433
+e 686 285
+e 693 132
+e 693 822
+e 696 688
+e 696 847
+e 697 848
+e 698 348
+e 698 187
+e 700 976
+e 700 836
+e 701 659
+e 701 418
+e 702 294
+e 702 252
+e 703 747
+e 703 674
+e 704 59
+e 704 767
+e 709 720
+e 710 19
+e 710 206
+e 711 253
+e 711 82
+e 717 474
+e 717 398
+e 722 38
+e 722 159
+e 723 277
+e 725 306
+e 725 705
+e 730 305
+e 731 798
+e 731 680
+e 732 659
+e 733 219
+e 733 570
+e 734 557
+e 734 344
+e 735 457
+e 736 450
+e 736 235
+e 738 118
+e 738 996
+e 739 448
+e 739 796
+e 740 240
+e 740 161
+e 742 506
+e 742 691
+e 745 160
+e 745 977
+e 749 968
+e 750 990
+e 750 82
+e 751 789
+e 751 246
+e 752 916
+e 752 973
+e 753 138
+e 754 743
+e 754 828
+e 756 209
+e 757 394
+e 757 184
+e 758 243
+e 758 839
+e 760 428
+e 760 269
+e 762 900
+e 762 113
+e 763 829
+e 766 726
+e 766 892
+e 768 690
+e 768 207
+e 770 492
+e 770 937
+e 771 247
+e 771 216
+e 774 943
+e 774 54
+e 778 712
+e 779 687
+e 780 366
+e 781 48
+e 781 878
+e 782 169
+e 784 48
+e 785 786
+e 785 683
+e 788 258
+e 788 335
+e 789 120
+e 794 336
+e 794 765
+e 795 69
+e 795 791
+e 797 882
+e 797 308
+e 799 976
+e 799 755
+e 800 598
+e 801 463
+e 801 523
+e 802 973
+e 803 221
+e 803 761
+e 804 971
+e 804 85
+e 806 670
+e 806 461
+e 808 31
+e 809 176
+e 810 661
+e 810 345
+e 811 309
+e 812 842
+e 812 668
+e 813 933
+e 813 996
+e 814 114
+e 814 993
+e 815 288
+e 815 939
+e 816 160
+e 816 367
+e 817 134
+e 817 658
+e 818 375
+e 818 104
+e 820 61
+e 820 618
+e 823 775
+e 823 376
+e 825 715
+e 825 151
+e 826 242
+e 829 32
+e 832 324
+e 833 778
+e 834 23
+e 834 229
+e 835 114
+e 837 606
+e 837 840
+e 838 112
+e 838 228
+e 840 266
+e 841 775
+e 841 706
+e 842 593
+e 844 203
+e 844 930
+e 846 460
+e 846 665
+e 848 632
+e 849 800
+e 849 668
+e 850 912
+e 851 431
+e 851 380
+e 852 564
+e 853 927
+e 854 792
+e 854 146
+e 856 261
+e 860 881
+e 860 191
+e 861 822
+e 862 247
+e 863 447
+e 863 712
+e 864 441
+e 865 626
+e 867 931
+e 867 55
+e 869 892
+e 869 101
+e 870 772
+e 870 904
+e 873 587
+e 874 471
+e 874 350
+e 876 298
+e 876 905
+e 877 541
+e 877 626
+e 883 584
+e 883 480
+e 884 634
+e 884 855
+e 886 357
+e 887 936
+e 887 548
+e 888 12
+e 888 843
+e 889 377
+e 889 879
+e 890 827
+e 890 284
+e 891 398
+e 891 580
+e 894 409
+e 894 707
+e 895 639
+e 895 65
+e 896 650
+e 896 708
+e 897 723
+e 897 216
+e 898 39
+e 898 62
+e 899 945
+e 900 489
+e 901 246
+e 902 1
+e 902 179
+e 903 741
+e 907 566
+e 907 418
+e 910 595
+e 910 651
+e 911 408
+e 911 488
+e 912 13
+e 915 516
+e 915 619
+e 917 916
+e 917 953
+e 918 880
+e 918 235
+e 921 163
+e 921 0
+e 924 225
+e 925 259
+e 927 115
+e 929 81
+e 929 965
+e 931 254
+e 935 942
+e 935 71
+e 938 452
+e 938 392
+e 940 189
+e 940 689
+e 941 566
+e 941 718
+e 943 32
+e 944 987
+e 944 487
+e 946 551
+e 948 925
+e 948 564
+e 950 782
+e 950 393
+e 951 518
+e 952 807
+e 954 468
+e 955 49
+e 955 967
+e 956 719
+e 958 809
+e 958 275
+e 960 87
+e 960 332
+e 961 198
+e 963 307
+e 964 975
+e 964 223
+e 969 150
+e 969 761
+e 972 697
+e 972 245
+e 974 326
+e 975 111
+e 979 600
+e 979 6
+e 980 824
+e 981 624
+e 981 720
+e 983 993
+e 984 728
+e 984 906
+e 986 908
+e 986 365
+e 988 656
+e 988 872
+e 990 66
+e 991 553
+e 991 997
+e 992 793
+e 994 456
+e 995 499
+e 995 569
+e 998 101
+e 999 833
+e 999 406
+e 1001 713
+e 1002 949
+e 1003 570
+e 1003 266
+e 1004 106
+e 1004 773
+e 1005 989
+e 1005 357

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 2 536
+e 2 107
+e 3 617
+e 3 649
+e 4 650
+e 4 281
+e 6 808
+e 12 696
+e 14 915
+e 16 820
+e 19 245
+e 20 825
+e 23 178
+e 23 539
+e 24 775
+e 25 546
+e 26 524
+e 29 128
+e 30 250
+e 30 81
+e 32 569
+e 32 810
+e 34 116
+e 34 665
+e 35 524
+e 38 787
+e 38 561
+e 39 746
+e 39 900
+e 40 480
+e 40 531
+e 41 76
+e 41 942
+e 43 353
+e 43 775
+e 44 164
+e 45 749
+e 45 623
+e 47 377
+e 47 614
+e 49 621
+e 50 195
+e 50 474
+e 52 370
+e 52 688
+e 53 415
+e 54 551
+e 54 306
+e 55 777
+e 56 545
+e 56 407
+e 57 808
+e 57 401
+e 60 669
+e 60 549
+e 66 718
+e 67 386
+e 67 20
+e 69 948
+e 71 323
+e 74 410
+e 74 273
+e 79 104
+e 79 698
+e 80 208
+e 80 275
+e 82 993
+e 85 310
+e 85 272
+e 86 396
+e 87 762
+e 87 360
+e 88 202
+e 88 904
+e 89 82
+e 91 216
+e 91 797
+e 97 611
+e 97 42
+e 98 845
+e 99 837
+e 99 503
+e 100 194
+e 100 717
+e 102 891
+e 102 723
+e 103 174
+e 103 632
+e 104 177
+e 105 417
+e 105 163
+e 106 858
+e 106 464
+e 108 955
+e 108 63
+e 109 713
+e 111 646
+e 111 10
+e 114 404
+e 114 292
+e 115 435
+e 115 1005
+e 117 818
+e 117 366
+e 119 24
+e 123 923
+e 123 9
+e 125 405
+e 125 665
+e 128 393
+e 129 671
+e 129 193
+e 130 279
+e 133 616
+e 133 615
+e 135 699
+e 136 124
+e 136 137
+e 137 813
+e 139 120
+e 140 261
+e 142 929
+e 143 90
+e 143 131
+e 144 64
+e 147 244
+e 147 17
+e 148 470
+e 148 355
+e 149 327
+e 149 190
+e 152 650
+e 152 951
+e 155 683
+e 155 1001
+e 157 714
+e 159 311
+e 159 586
+e 160 27
+e 161 928
+e 162 744
+e 162 234
+e 163 620
+e 165 301
+e 168 556
+e 168 832
+e 169 721
+e 169 197
+e 171 630
+e 172 858
+e 172 762
+e 173 770
+e 173 573
+e 175 220
+e 176 93
+e 177 493
+e 178 576
+e 179 426
+e 179 636
+e 180 94
+e 180 62
+e 181 690
+e 182 223
+e 182 614
+e 185 369
+e 186 394
+e 186 491
+e 187 416
+e 187 121
+e 189 804
+e 189 576
+e 190 1005
+e 191 170
+e 191 31
+e 192 10
+e 192 934
+e 193 728
+e 198 725
+e 198 456
+e 201 501
+e 201 934
+e 203 470
+e 203 766
+e 204 867
+e 205 795
+e 206 281
+e 206 68
+e 208 763
+e 209 44
+e 209 915
+e 212 325
+e 213 16
+e 213 134
+e 214 127
+e 214 410
+e 217 882
+e 217 689
+e 218 503
+e 218 826
+e 220 986
+e 221 548
+e 221 957
+e 224 820
+e 225 476
+e 225 268
+e 226 707
+e 227 564
+e 228 745
+e 228 0
+e 229 957
+e 229 286
+e 230 791
+e 230 767
+e 231 901
+e 231 360
+e 232 207
+e 232 9
+e 235 520
+e 237 420
+e 238 815
+e 239 75
+e 239 829
+e 240 502
+e 240 301
+e 242 295
+e 246 309
+e 246 455
+e 247 870
+e 247 994
+e 248 582
+e 249 283
+e 249 659
+e 251 73
+e 251 183
+e 252 404
+e 252 13
+e 253 664
+e 256 298
+e 256 506
+e 257 92
+e 257 233
+e 258 901
+e 258 8
+e 259 654
+e 260 391
+e 260 864
+e 262 376
+e 263 409
+e 263 834
+e 264 985
+e 264 320
+e 265 941
+e 265 483
+e 270 842
+e 270 268
+e 271 641
+e 271 727
+e 273 531
+e 274 678
+e 277 118
+e 277 679
+e 278 491
+e 278 33
+e 280 522
+e 280 401
+e 283 216
+e 284 295
+e 285 829
+e 285 633
+e 287 658
+e 287 234
+e 289 899
+e 289 248
+e 290 19
+e 290 8
+e 291 845
+e 291 546
+e 293 302
+e 293 330
+e 294 864
+e 294 436
+e 296 496
+e 297 361
+e 297 419
+e 298 847
+e 300 561
+e 300 890
+e 302 130
+e 303 615
+e 304 971
+e 307 599
+e 307 151
+e 308 938
+e 309 204
+e 311 120
+e 313 7
+e 313 898
+e 314 500
+e 316 544
+e 316 766
+e 318 233
+e 319 138
+e 321 432
+e 321 733
+e 322 903
+e 322 905
+e 323 337
+e 324 110
+e 326 942
+e 326 889
+e 327 310
+e 328 419
+e 328 255
+e 330 181
+e 331 375
+e 331 75
+e 332 821
+e 332 183
+e 333 508
+e 333 471
+e 334 33
+e 335 602
+e 335 306
+e 336 828
+e 336 853
+e 338 299
+e 339 14
+e 339 446
+e 340 141
+e 340 544
+e 341 953
+e 342 543
+e 342 514
+e 343 359
+e 344 563
+e 344 690
+e 345 241
+e 345 859
+e 346 626
+e 347 539
+e 347 523
+e 349 659
+e 349 979
+e 350 525
+e 351 288
+e 351 689
+e 352 793
+e 352 1001
+e 354 649
+e 354 563
+e 356 941
+e 356 58
+e 357 571
+e 357 596
+e 358 215
+e 361 994
+e 362 895
+e 362 485
+e 363 571
+e 365 369
+e 365 312
+e 367 686
+e 367 693
+e 368 134
+e 368 862
+e 370 821
+e 371 68
+e 373 55
+e 373 156
+e 374 739
+e 374 517
+e 375 728
+e 378 146
+e 378 769
+e 380 372
+e 380 699
+e 381 982
+e 381 721
+e 382 720
+e 385 37
+e 385 78
+e 387 666
+e 387 420
+e 388 881
+e 388 853
+e 390 508
+e 390 421
+e 392 582
+e 392 269
+e 393 1
+e 394 984
+e 395 226
+e 395 950
+e 397 399
+e 397 184
+e 398 222
+e 400 792
+e 400 325
+e 402 21
+e 402 389
+e 403 444
+e 403 881
+e 405 84
+e 406 812
+e 406 366
+e 408 42
+e 408 841
+e 411 951
+e 411 610
+e 412 626
+e 413 492
+e 418 434
+e 418 48
+e 422 86
+e 422 620
+e 423 949
+e 423 414
+e 424 398
+e 424 734
+e 425 807
+e 425 197
+e 427 66
+e 427 860
+e 429 846
+e 429 15
+e 430 358
+e 430 867
+e 433 664
+e 433 844
+e 434 914
+e 437 379
+e 438 874
+e 439 965
+e 439 15
+e 440 907
+e 440 496
+e 442 188
+e 442 769
+e 443 908
+e 443 28
+e 447 259
+e 447 763
+e 448 372
+e 449 355
+e 450 363
+e 452 800
+e 452 518
+e 453 211
+e 458 502
+e 459 592
+e 460 63
+e 460 969
+e 462 995
+e 463 588
+e 463 428
+e 465 235
+e 465 211
+e 466 70
+e 466 519
+e 467 740
+e 467 638
+e 468 824
+e 468 777
+e 469 579
+e 469 832
+e 471 943
+e 472 348
+e 473 984
+e 476 652
+e 477 84
+e 478 967
+e 478 166
+e 479 122
+e 479 282
+e 480 781
+e 481 77
+e 482 584
+e 484 981
+e 484 22
+e 486 575
+e 486 145
+e 487 625
+e 487 167
+e 488 222
+e 490 752
+e 490 481
+e 494 937
+e 494 200
+e 495 199
+e 495 813
+e 497 695
+e 497 694
+e 498 660
+e 499 461
+e 499 200
+e 504 877
+e 504 338
+e 505 65
+e 505 320
+e 507 109
+e 507 981
+e 509 810
+e 509 36
+e 510 698
+e 512 912
+e 512 353
+e 514 188
+e 515 262
+e 515 623
+e 517 151
+e 520 18
+e 523 22
+e 526 170
+e 527 210
+e 528 607
+e 528 801
+e 529 560
+e 529 11
+e 532 461
+e 532 58
+e 535 656
+e 535 521
+e 537 165
+e 537 462
+e 538 533
+e 538 156
+e 540 371
+e 540 902
+e 542 511
+e 542 757
+e 543 663
+e 547 755
+e 548 738
+e 550 27
+e 550 841
+e 552 37
+e 552 383
+e 553 64
+e 553 210
+e 554 562
+e 555 990
+e 555 341
+e 556 549
+e 557 28
+e 558 580
+e 558 450
+e 559 71
+e 559 451
+e 562 150
+e 565 315
+e 565 138
+e 566 72
+e 566 783
+e 567 749
+e 567 238
+e 568 46
+e 569 815
+e 570 839
+e 570 598
+e 572 61
+e 572 828
+e 574 195
+e 574 396
+e 577 519
+e 577 842
+e 578 399
+e 578 554
+e 579 560
+e 580 859
+e 581 884
+e 581 633
+e 583 958
+e 583 727
+e 584 5
+e 585 272
+e 586 107
+e 587 541
+e 588 92
+e 589 454
+e 590 51
+e 591 663
+e 591 196
+e 592 18
+e 593 511
+e 593 459
+e 595 516
+e 597 811
+e 597 700
+e 599 11
+e 600 72
+e 600 959
+e 601 530
+e 601 384
+e 602 781
+e 603 81
+e 603 863
+e 604 51
+e 605 314
+e 605 741
+e 606 446
+e 606 150
+e 607 834
+e 608 940
+e 609 413
+e 609 110
+e 610 46
+e 611 902
+e 612 61
+e 612 500
+e 613 29
+e 613 589
+e 619 790
+e 619 695
+e 621 131
+e 622 202
+e 622 95
+e 624 391
+e 624 36
+e 627 987
+e 627 78
+e 628 547
+e 628 139
+e 629 243
+e 629 121
+e 630 185
+e 631 35
+e 631 243
+e 632 974
+e 634 458
+e 634 421
+e 635 184
+e 635 707
+e 637 266
+e 637 96
+e 639 557
+e 639 998
+e 640 886
+e 641 346
+e 642 996
+e 642 12
+e 643 685
+e 643 255
+e 644 616
+e 644 900
+e 645 916
+e 646 506
+e 647 862
+e 647 161
+e 648 303
+e 648 501
+e 651 590
+e 651 596
+e 653 568
+e 653 236
+e 655 319
+e 656 804
+e 658 685
+e 660 608
+e 661 898
+e 661 886
+e 662 428
+e 662 657
+e 666 223
+e 667 618
+e 667 857
+e 668 132
+e 668 860
+e 669 959
+e 670 819
+e 670 839
+e 671 748
+e 672 905
+e 672 324
+e 673 343
+e 673 379
+e 674 526
+e 676 126
+e 676 318
+e 677 119
+e 677 818
+e 678 25
+e 680 474
+e 680 299
+e 681 692
+e 681 269
+e 682 996
+e 682 790
+e 684 348
+e 684 475
+e 687 174
+e 687 993
+e 688 679
+e 691 212
+e 691 132
+e 693 167
+e 697 59
+e 697 253
+e 701 244
+e 701 164
+e 702 254
+e 702 904
+e 703 118
+e 703 963
+e 704 708
+e 704 5
+e 705 652
+e 706 157
+e 706 988
+e 709 141
+e 709 541
+e 710 194
+e 711 284
+e 711 296
+e 712 755
+e 712 638
+e 713 282
+e 715 645
+e 715 101
+e 716 227
+e 716 329
+e 718 382
+e 719 890
+e 719 13
+e 720 0
+e 722 317
+e 724 477
+e 724 936
+e 725 933
+e 726 710
+e 726 527
+e 729 573
+e 730 988
+e 730 414
+e 731 448
+e 731 116
+e 732 729
+e 732 655
+e 735 686
+e 735 787
+e 736 551
+e 736 317
+e 737 530
+e 737 153
+e 739 483
+e 742 449
+e 742 910
+e 743 219
+e 743 359
+e 744 633
+e 745 518
+e 746 977
+e 747 892
+e 747 714
+e 748 754
+e 750 784
+e 750 960
+e 752 95
+e 753 848
+e 753 386
+e 758 276
+e 758 751
+e 759 451
+e 759 485
+e 760 59
+e 760 292
+e 761 274
+e 761 907
+e 765 889
+e 768 304
+e 768 334
+e 771 73
+e 771 279
+e 772 126
+e 772 492
+e 773 740
+e 773 522
+e 774 93
+e 776 513
+e 778 350
+e 778 940
+e 779 953
+e 779 696
+e 782 885
+e 782 199
+e 784 595
+e 785 825
+e 786 654
+e 786 267
+e 788 640
+e 788 908
+e 789 315
+e 789 545
+e 791 498
+e 792 847
+e 794 756
+e 794 863
+e 796 866
+e 796 122
+e 798 224
+e 798 734
+e 799 176
+e 799 690
+e 801 516
+e 802 1000
+e 802 857
+e 803 807
+e 803 525
+e 805 618
+e 805 376
+e 806 692
+e 806 457
+e 809 312
+e 811 219
+e 814 412
+e 814 838
+e 816 464
+e 816 998
+e 817 241
+e 817 431
+e 819 158
+e 822 854
+e 822 585
+e 823 7
+e 823 53
+e 826 797
+e 827 575
+e 827 96
+e 830 738
+e 830 160
+e 831 976
+e 831 877
+e 833 800
+e 833 928
+e 835 534
+e 835 384
+e 836 441
+e 837 389
+e 840 261
+e 840 751
+e 843 780
+e 843 675
+e 846 943
+e 848 939
+e 849 929
+e 849 939
+e 850 764
+e 850 266
+e 851 308
+e 851 457
+e 852 124
+e 852 438
+e 854 971
+e 855 604
+e 855 62
+e 856 776
+e 856 94
+e 861 245
+e 865 426
+e 865 17
+e 866 288
+e 868 587
+e 868 26
+e 869 780
+e 869 83
+e 870 377
+e 871 146
+e 871 812
+e 872 90
+e 872 113
+e 873 754
+e 873 21
+e 874 31
+e 875 536
+e 875 836
+e 876 767
+e 876 153
+e 878 764
+e 878 407
+e 879 432
+e 879 824
+e 880 946
+e 880 979
+e 882 564
+e 883 154
+e 883 364
+e 884 488
+e 885 445
+e 887 757
+e 887 636
+e 888 533
+e 888 958
+e 892 795
+e 893 276
+e 893 510
+e 894 838
+e 894 329
+e 895 70
+e 896 145
+e 896 675
+e 897 903
+e 897 475
+e 899 636
+e 906 205
+e 906 142
+e 909 980
+e 909 305
+e 910 598
+e 911 617
+e 911 112
+e 913 733
+e 913 337
+e 914 113
+e 916 305
+e 917 705
+e 917 594
+e 918 127
+e 918 489
+e 919 254
+e 919 741
+e 920 674
+e 920 861
+e 921 98
+e 921 158
+e 922 175
+e 922 723
+e 923 625
+e 924 171
+e 924 999
+e 925 49
+e 925 521
+e 926 445
+e 926 774
+e 927 135
+e 927 236
+e 930 935
+e 930 717
+e 931 275
+e 931 770
+e 932 482
+e 932 935
+e 936 77
+e 937 250
+e 938 207
+e 944 101
+e 944 144
+e 945 76
+e 945 242
+e 946 436
+e 947 237
+e 947 472
+e 948 383
+e 949 765
+e 950 722
+e 952 473
+e 952 717
+e 954 409
+e 954 963
+e 955 69
+e 956 891
+e 956 267
+e 960 215
+e 961 89
+e 961 493
+e 962 594
+e 962 441
+e 964 65
+e 964 933
+e 965 6
+e 966 455
+e 966 48
+e 967 785
+e 968 437
+e 968 416
+e 970 534
+e 970 985
+e 972 986
+e 972 454
+e 973 912
+e 973 614
+e 974 431
+e 975 700
+e 975 456
+e 976 154
+e 977 783
+e 978 969
+e 978 657
+e 980 120
+e 982 286
+e 983 140
+e 983 844
+e 987 1
+e 989 683
+e 989 364
+e 990 196
+e 991 793
+e 991 708
+e 992 417
+e 992 489
+e 995 756
+e 997 435
+e 997 694
+e 999 83
+e 1000 453
+e 1002 166
+e 1002 415
+e 1003 112
+e 1003 513
+e 1004 444
+e 1004 809

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 0 262
+e 0 14
+e 1 594
+e 1 155
+e 3 812
+e 3 898
+e 4 942
+e 5 431
+e 6 524
+e 8 801
+e 9 893
+e 9 102
+e 12 454
+e 12 846
+e 13 860
+e 15 425
+e 19 752
+e 19 66
+e 20 952
+e 20 772
+e 22 883
+e 22 937
+e 23 783
+e 23 923
+e 24 297
+e 25 542
+e 25 418
+e 26 889
+e 26 951
+e 27 146
+e 27 960
+e 28 688
+e 28 235
+e 29 14
+e 29 440
+e 33 565
+e 33 771
+e 34 897
+e 34 92
+e 35 185
+e 35 382
+e 37 50
+e 38 262
+e 38 991
+e 39 876
+e 39 122
+e 41 244
+e 43 357
+e 44 761
+e 45 689
+e 45 838
+e 47 601
+e 48 753
+e 50 341
+e 53 437
+e 57 875
+e 58 920
+e 58 508
+e 59 243
+e 60 451
+e 63 46
+e 63 564
+e 64 174
+e 64 564
+e 65 747
+e 67 456
+e 67 383
+e 68 581
+e 68 932
+e 69 662
+e 69 218
+e 71 827
+e 71 961
+e 73 165
+e 73 819
+e 74 348
+e 74 42
+e 75 630
+e 76 891
+e 78 915
+e 78 476
+e 81 82
+e 81 364
+e 82 258
+e 83 887
+e 83 10
+e 84 738
+e 84 95
+e 85 311
+e 85 40
+e 86 570
+e 86 818
+e 91 55
+e 91 882
+e 93 913
+e 94 688
+e 94 246
+e 95 947
+e 96 940
+e 96 90
+e 100 350
+e 100 601
+e 101 806
+e 101 490
+e 104 80
+e 105 378
+e 105 669
+e 106 338
+e 106 987
+e 109 888
+e 110 795
+e 110 788
+e 111 296
+e 111 204
+e 112 864
+e 113 393
+e 114 970
+e 114 363
+e 116 879
+e 120 321
+e 120 856
+e 121 230
+e 121 596
+e 124 554
+e 125 620
+e 125 327
+e 126 878
+e 126 588
+e 129 40
+e 129 258
+e 131 616
+e 131 330
+e 133 971
+e 133 135
+e 134 1004
+e 138 397
+e 138 205
+e 139 57
+e 139 382
+e 140 977
+e 141 709
+e 143 976
+e 144 156
+e 144 969
+e 147 398
+e 147 436
+e 149 6
+e 149 890
+e 150 821
+e 151 255
+e 151 118
+e 152 874
+e 152 62
+e 153 410
+e 153 739
+e 154 61
+e 154 784
+e 156 832
+e 158 361
+e 159 160
+e 163 337
+e 164 961
+e 165 769
+e 166 386
+e 166 70
+e 170 607
+e 170 437
+e 171 665
+e 171 506
+e 173 993
+e 173 616
+e 176 289
+e 177 842
+e 178 24
+e 178 660
+e 179 268
+e 179 145
+e 183 244
+e 186 377
+e 186 184
+e 187 962
+e 190 188
+e 192 384
+e 193 948
+e 193 903
+e 194 256
+e 195 906
+e 196 749
+e 198 76
+e 198 863
+e 199 206
+e 199 699
+e 200 923
+e 201 737
+e 202 591
+e 202 903
+e 207 967
+e 207 489
+e 208 253
+e 208 783
+e 210 822
+e 210 691
+e 211 819
+e 211 931
+e 214 257
+e 215 169
+e 216 328
+e 217 21
+e 217 632
+e 219 992
+e 219 949
+e 220 917
+e 220 708
+e 221 595
+e 221 437
+e 222 994
+e 223 142
+e 223 962
+e 224 18
+e 224 32
+e 227 261
+e 228 238
+e 229 995
+e 229 70
+e 230 478
+e 232 738
+e 232 992
+e 233 824
+e 236 555
+e 236 547
+e 237 951
+e 237 270
+e 239 751
+e 239 681
+e 240 188
+e 240 824
+e 241 164
+e 242 642
+e 242 249
+e 245 93
+e 245 687
+e 247 368
+e 247 821
+e 248 600
+e 250 182
+e 251 145
+e 252 321
+e 252 108
+e 254 222
+e 259 311
+e 259 253
+e 260 194
+e 260 289
+e 263 577
+e 263 331
+e 264 175
+e 264 891
+e 266 830
+e 267 632
+e 267 983
+e 268 352
+e 272 840
+e 272 442
+e 273 798
+e 273 44
+e 274 895
+e 275 836
+e 275 167
+e 276 471
+e 277 866
+e 277 800
+e 279 918
+e 279 653
+e 280 107
+e 280 682
+e 283 989
+e 284 712
+e 284 209
+e 285 815
+e 285 641
+e 286 301
+e 286 640
+e 287 852
+e 288 51
+e 288 771
+e 291 36
+e 291 155
+e 292 944
+e 292 402
+e 293 214
+e 293 597
+e 294 312
+e 294 718
+e 295 77
+e 295 608
+e 302 659
+e 303 146
+e 303 339
+e 304 637
+e 304 140
+e 305 705
+e 305 757
+e 306 123
+e 307 282
+e 309 879
+e 309 283
+e 312 189
+e 313 190
+e 313 764
+e 314 618
+e 315 109
+e 315 296
+e 316 647
+e 316 677
+e 318 807
+e 318 670
+e 319 883
+e 320 168
+e 320 937
+e 323 333
+e 324 399
+e 324 108
+e 325 748
+e 325 408
+e 329 399
+e 329 342
+e 330 89
+e 331 566
+e 332 397
+e 332 676
+e 335 118
+e 336 66
+e 336 924
+e 338 189
+e 340 428
+e 340 234
+e 341 402
+e 342 446
+e 343 445
+e 344 957
+e 345 302
+e 346 948
+e 347 734
+e 351 841
+e 351 622
+e 353 975
+e 353 691
+e 354 143
+e 355 72
+e 355 659
+e 356 250
+e 358 893
+e 358 226
+e 359 959
+e 361 966
+e 362 203
+e 363 200
+e 365 699
+e 365 430
+e 366 343
+e 366 920
+e 367 374
+e 367 651
+e 369 710
+e 371 424
+e 371 238
+e 372 192
+e 372 959
+e 373 472
+e 373 137
+e 374 41
+e 376 231
+e 376 323
+e 377 390
+e 379 846
+e 379 56
+e 380 486
+e 380 648
+e 384 735
+e 387 559
+e 387 300
+e 388 119
+e 389 774
+e 389 339
+e 391 777
+e 391 955
+e 392 481
+e 394 724
+e 394 89
+e 395 127
+e 396 203
+e 401 627
+e 401 662
+e 405 281
+e 405 591
+e 407 917
+e 408 868
+e 411 561
+e 411 246
+e 412 875
+e 412 666
+e 414 687
+e 414 639
+e 415 322
+e 416 113
+e 417 963
+e 417 157
+e 419 235
+e 419 652
+e 420 182
+e 420 368
+e 421 497
+e 421 588
+e 422 739
+e 422 889
+e 423 213
+e 423 982
+e 426 132
+e 426 463
+e 427 348
+e 427 811
+e 428 425
+e 429 708
+e 433 404
+e 433 276
+e 434 213
+e 434 711
+e 438 510
+e 438 931
+e 439 624
+e 439 848
+e 441 861
+e 441 18
+e 443 328
+e 443 947
+e 444 177
+e 444 684
+e 445 127
+e 447 811
+e 447 949
+e 448 116
+e 448 909
+e 449 963
+e 449 995
+e 450 99
+e 450 300
+e 452 157
+e 454 755
+e 457 168
+e 458 697
+e 458 634
+e 460 713
+e 460 226
+e 461 918
+e 461 459
+e 462 299
+e 462 466
+e 463 204
+e 464 928
+e 464 789
+e 465 407
+e 465 898
+e 467 403
+e 467 554
+e 468 185
+e 468 982
+e 469 508
+e 470 697
+e 470 327
+e 473 680
+e 473 757
+e 474 52
+e 474 265
+e 475 737
+e 475 709
+e 476 88
+e 477 375
+e 477 574
+e 479 440
+e 480 390
+e 480 971
+e 481 781
+e 482 653
+e 482 432
+e 484 92
+e 485 163
+e 485 531
+e 486 455
+e 487 378
+e 487 349
+e 492 98
+e 492 582
+e 493 785
+e 493 398
+e 494 13
+e 494 769
+e 495 574
+e 496 671
+e 498 488
+e 498 547
+e 499 598
+e 499 828
+e 500 31
+e 500 630
+e 501 251
+e 501 800
+e 502 847
+e 503 298
+e 503 945
+e 505 908
+e 505 413
+e 506 256
+e 507 603
+e 507 734
+e 509 704
+e 509 270
+e 510 885
+e 511 984
+e 512 52
+e 512 11
+e 513 717
+e 513 596
+e 514 790
+e 514 360
+e 515 595
+e 515 381
+e 516 308
+e 516 808
+e 517 364
+e 517 999
+e 519 582
+e 522 726
+e 523 644
+e 523 831
+e 525 706
+e 525 761
+e 526 529
+e 526 56
+e 527 298
+e 527 511
+e 528 815
+e 528 973
+e 530 793
+e 530 290
+e 532 2
+e 532 676
+e 533 495
+e 533 950
+e 534 966
+e 534 671
+e 535 997
+e 536 847
+e 537 870
+e 537 310
+e 538 306
+e 538 504
+e 539 148
+e 540 766
+e 540 212
+e 541 585
+e 541 827
+e 542 36
+e 543 909
+e 543 334
+e 544 7
+e 544 385
+e 545 912
+e 545 605
+e 548 406
+e 549 307
+e 549 446
+e 550 716
+e 550 725
+e 551 317
+e 551 735
+e 553 941
+e 553 137
+e 555 566
+e 556 8
+e 556 43
+e 557 181
+e 557 991
+e 559 191
+e 560 703
+e 560 808
+e 562 47
+e 562 828
+e 563 776
+e 563 935
+e 565 634
+e 567 31
+e 567 212
+e 568 314
+e 568 646
+e 569 672
+e 569 97
+e 570 456
+e 571 176
+e 572 600
+e 572 832
+e 573 796
+e 573 535
+e 575 141
+e 575 117
+e 576 729
+e 576 531
+e 577 344
+e 578 49
+e 578 908
+e 579 227
+e 579 924
+e 580 160
+e 580 692
+e 583 299
+e 584 860
+e 585 597
+e 586 54
+e 586 607
+e 587 519
+e 587 115
+e 589 115
+e 589 784
+e 590 521
+e 590 79
+e 592 209
+e 592 79
+e 593 442
+e 593 333
+e 598 529
+e 599 817
+e 599 451
+e 602 248
+e 602 956
+e 603 359
+e 604 489
+e 604 97
+e 608 842
+e 609 863
+e 610 1004
+e 611 195
+e 611 169
+e 612 5
+e 612 583
+e 613 72
+e 613 352
+e 614 388
+e 614 606
+e 615 594
+e 615 347
+e 617 646
+e 618 864
+e 619 865
+e 619 788
+e 620 617
+e 621 16
+e 621 102
+e 623 720
+e 624 42
+e 625 548
+e 625 231
+e 626 906
+e 626 130
+e 627 37
+e 628 65
+e 628 183
+e 629 132
+e 629 546
+e 631 369
+e 631 483
+e 633 410
+e 633 675
+e 635 201
+e 635 180
+e 636 661
+e 636 497
+e 637 46
+e 638 197
+e 643 415
+e 643 522
+e 644 466
+e 645 605
+e 649 727
+e 649 710
+e 650 888
+e 651 197
+e 652 490
+e 655 452
+e 655 539
+e 656 812
+e 656 744
+e 657 623
+e 657 228
+e 658 479
+e 660 561
+e 661 136
+e 663 816
+e 663 912
+e 664 281
+e 664 122
+e 665 876
+e 667 128
+e 667 753
+e 668 159
+e 668 98
+e 670 546
+e 673 370
+e 674 654
+e 674 357
+e 675 385
+e 678 51
+e 678 396
+e 679 725
+e 679 167
+e 680 7
+e 683 928
+e 683 977
+e 684 857
+e 685 15
+e 685 890
+e 690 61
+e 690 520
+e 692 790
+e 693 181
+e 693 681
+e 694 62
+e 694 552
+e 695 780
+e 695 793
+e 696 704
+e 696 904
+e 698 16
+e 700 30
+e 701 266
+e 701 278
+e 702 852
+e 702 435
+e 703 910
+e 707 59
+e 707 459
+e 712 491
+e 713 791
+e 714 75
+e 715 974
+e 715 923
+e 716 727
+e 717 346
+e 718 88
+e 719 128
+e 719 976
+e 721 711
+e 722 818
+e 723 856
+e 723 484
+e 728 610
+e 728 795
+e 729 48
+e 730 954
+e 730 455
+e 731 472
+e 731 2
+e 732 722
+e 732 861
+e 733 689
+e 733 773
+e 736 103
+e 736 261
+e 740 206
+e 740 677
+e 741 135
+e 741 453
+e 742 150
+e 742 798
+e 743 77
+e 743 142
+e 744 478
+e 745 968
+e 745 874
+e 746 317
+e 746 392
+e 749 524
+e 750 349
+e 750 243
+e 752 706
+e 754 162
+e 754 747
+e 756 658
+e 756 308
+e 758 558
+e 758 581
+e 759 854
+e 759 829
+e 760 326
+e 760 639
+e 763 980
+e 763 265
+e 764 11
+e 765 841
+e 765 383
+e 766 409
+e 767 786
+e 767 432
+e 770 826
+e 770 835
+e 775 518
+e 775 350
+e 776 32
+e 777 932
+e 778 80
+e 779 356
+e 779 502
+e 782 278
+e 782 978
+e 785 290
+e 786 134
+e 787 334
+e 791 705
+e 792 269
+e 792 640
+e 794 768
+e 794 249
+e 796 829
+e 797 748
+e 797 787
+e 799 648
+e 799 360
+e 802 254
+e 802 496
+e 803 941
+e 803 218
+e 804 436
+e 805 21
+e 805 952
+e 806 945
+e 807 256
+e 809 894
+e 809 672
+e 810 370
+e 810 418
+e 813 271
+e 813 282
+e 814 768
+e 814 647
+e 816 99
+e 820 403
+e 820 606
+e 823 571
+e 823 55
+e 825 234
+e 825 404
+e 826 953
+e 830 762
+e 833 429
+e 833 880
+e 834 362
+e 834 269
+e 835 310
+e 836 205
+e 837 301
+e 837 103
+e 839 669
+e 839 393
+e 840 645
+e 843 666
+e 843 435
+e 844 54
+e 844 853
+e 845 504
+e 845 552
+e 849 400
+e 849 257
+e 850 375
+e 850 471
+e 851 638
+e 851 762
+e 853 112
+e 855 488
+e 855 983
+e 858 431
+e 859 957
+e 859 686
+e 862 386
+e 862 720
+e 865 191
+e 866 175
+e 867 773
+e 867 161
+e 868 686
+e 869 907
+e 869 326
+e 871 162
+e 871 789
+e 872 916
+e 872 172
+e 873 337
+e 873 406
+e 877 158
+e 877 622
+e 878 187
+e 880 287
+e 881 10
+e 881 726
+e 882 654
+e 884 53
+e 884 698
+e 885 911
+e 886 255
+e 886 225
+e 887 910
+e 892 558
+e 892 241
+e 894 483
+e 895 130
+e 896 721
+e 896 609
+e 897 119
+e 899 400
+e 899 381
+e 900 907
+e 900 682
+e 901 354
+e 901 978
+e 902 870
+e 902 430
+e 905 641
+e 905 980
+e 911 1002
+e 913 413
+e 914 778
+e 914 117
+e 915 960
+e 916 274
+e 919 817
+e 919 642
+e 921 416
+e 921 17
+e 922 457
+e 922 755
+e 925 345
+e 925 225
+e 926 215
+e 926 424
+e 927 986
+e 927 233
+e 929 650
+e 929 453
+e 930 584
+e 930 491
+e 933 17
+e 933 184
+e 934 87
+e 934 904
+e 935 60
+e 936 536
+e 936 518
+e 938 780
+e 938 469
+e 939 838
+e 939 104
+e 943 335
+e 943 521
+e 944 520
+e 946 174
+e 946 30
+e 953 216
+e 954 161
+e 955 124
+e 956 107
+e 958 196
+e 958 601
+e 964 319
+e 964 297
+e 965 271
+e 965 724
+e 967 148
+e 968 714
+e 969 940
+e 970 700
+e 972 180
+e 972 987
+e 973 90
+e 974 989
+e 975 942
+e 979 49
+e 979 937
+e 981 4
+e 981 999
+e 985 858
+e 985 136
+e 986 322
+e 988 774
+e 988 848
+e 990 831
+e 990 395
+e 993 751
+e 994 409
+e 996 87
+e 996 673
+e 997 822
+e 998 172
+e 998 857
+e 1000 801
+e 1000 808
+e 1001 854
+e 1001 781
+e 1002 950
+e 1003 804
+e 1003 772
+e 1005 123
+e 1005 984

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 2 125
+e 2 338
+e 3 482
+e 5 79
+e 6 182
+e 6 525
+e 8 524
+e 8 148
+e 10 417
+e 10 945
+e 11 909
+e 13 278
+e 13 32
+e 14 891
+e 16 535
+e 16 634
+e 18 615
+e 20 875
+e 23 173
+e 23 77
+e 25 140
+e 25 972
+e 26 792
+e 26 809
+e 27 572
+e 27 221
+e 28 779
+e 29 554
+e 29 745
+e 30 361
+e 30 330
+e 33 123
+e 33 84
+e 34 728
+e 36 534
+e 37 613
+e 37 735
+e 38 314
+e 38 749
+e 41 894
+e 41 121
+e 42 620
+e 44 837
+e 44 799
+e 45 374
+e 45 632
+e 46 160
+e 46 538
+e 47 951
+e 49 693
+e 49 910
+e 50 811
+e 51 883
+e 51 460
+e 55 368
+e 55 908
+e 58 940
+e 60 471
+e 61 806
+e 62 260
+e 62 401
+e 67 918
+e 67 870
+e 68 206
+e 68 52
+e 69 703
+e 69 295
+e 70 585
+e 70 21
+e 71 815
+e 72 778
+e 72 363
+e 73 821
+e 74 372
+e 74 346
+e 75 358
+e 75 223
+e 76 58
+e 76 785
+e 78 576
+e 78 633
+e 83 414
+e 85 415
+e 85 105
+e 86 643
+e 86 64
+e 87 196
+e 87 155
+e 89 755
+e 89 53
+e 91 802
+e 91 890
+e 92 192
+e 92 764
+e 93 481
+e 93 323
+e 95 832
+e 96 853
+e 96 925
+e 98 980
+e 98 922
+e 99 901
+e 99 412
+e 101 263
+e 103 674
+e 103 889
+e 104 685
+e 105 882
+e 106 5
+e 106 563
+e 107 149
+e 107 127
+e 108 357
+e 108 999
+e 109 412
+e 109 402
+e 114 688
+e 115 176
+e 115 522
+e 118 181
+e 118 198
+e 119 290
+e 119 975
+e 120 189
+e 120 859
+e 122 570
+e 124 309
+e 124 252
+e 126 947
+e 126 775
+e 130 407
+e 130 620
+e 131 818
+e 133 283
+e 133 73
+e 134 691
+e 135 614
+e 136 328
+e 137 858
+e 137 204
+e 138 969
+e 138 533
+e 140 824
+e 141 229
+e 141 237
+e 142 261
+e 142 232
+e 144 219
+e 146 361
+e 149 487
+e 150 771
+e 150 517
+e 151 146
+e 151 288
+e 152 534
+e 153 200
+e 153 402
+e 154 231
+e 156 275
+e 158 894
+e 161 258
+e 161 984
+e 163 980
+e 163 683
+e 166 217
+e 166 1000
+e 167 740
+e 167 22
+e 169 889
+e 169 922
+e 170 210
+e 171 312
+e 171 636
+e 173 718
+e 174 420
+e 174 88
+e 175 132
+e 175 930
+e 178 157
+e 179 512
+e 179 725
+e 180 837
+e 180 911
+e 182 678
+e 184 744
+e 184 53
+e 185 145
+e 185 770
+e 186 250
+e 186 540
+e 187 156
+e 187 929
+e 188 606
+e 188 610
+e 190 964
+e 190 367
+e 195 366
+e 196 194
+e 197 110
+e 200 289
+e 202 158
+e 202 899
+e 203 382
+e 206 799
+e 207 907
+e 207 628
+e 209 607
+e 209 791
+e 211 147
+e 211 927
+e 212 772
+e 212 767
+e 213 57
+e 213 81
+e 214 40
+e 214 481
+e 215 524
+e 215 204
+e 216 275
+e 216 734
+e 217 905
+e 220 48
+e 220 15
+e 221 393
+e 222 494
+e 224 706
+e 224 967
+e 227 301
+e 227 265
+e 233 144
+e 233 419
+e 234 788
+e 234 601
+e 235 560
+e 235 624
+e 238 433
+e 238 834
+e 239 228
+e 240 135
+e 240 499
+e 241 821
+e 241 987
+e 242 375
+e 242 451
+e 243 592
+e 244 879
+e 244 507
+e 245 781
+e 246 309
+e 246 199
+e 248 7
+e 248 281
+e 249 262
+e 249 632
+e 251 892
+e 251 449
+e 252 164
+e 253 811
+e 254 64
+e 255 262
+e 255 116
+e 257 1005
+e 257 677
+e 259 253
+e 259 614
+e 264 710
+e 264 387
+e 265 910
+e 266 794
+e 266 822
+e 268 54
+e 269 408
+e 269 552
+e 271 971
+e 271 897
+e 272 639
+e 272 658
+e 273 794
+e 273 874
+e 274 590
+e 274 552
+e 276 840
+e 277 711
+e 279 470
+e 279 653
+e 282 902
+e 283 780
+e 285 236
+e 285 311
+e 286 65
+e 286 319
+e 287 39
+e 287 351
+e 290 607
+e 291 160
+e 291 56
+e 292 557
+e 292 94
+e 293 876
+e 293 218
+e 295 931
+e 296 306
+e 297 338
+e 299 313
+e 299 483
+e 300 737
+e 300 693
+e 301 82
+e 304 201
+e 307 117
+e 308 549
+e 308 649
+e 310 380
+e 310 436
+e 312 813
+e 313 14
+e 315 892
+e 315 226
+e 316 281
+e 316 989
+e 317 642
+e 317 159
+e 318 436
+e 320 747
+e 321 1
+e 321 626
+e 325 985
+e 325 444
+e 326 926
+e 327 95
+e 327 366
+e 329 442
+e 329 926
+e 330 813
+e 332 421
+e 333 48
+e 335 17
+e 336 172
+e 336 472
+e 340 859
+e 341 819
+e 342 768
+e 343 927
+e 343 805
+e 344 454
+e 344 35
+e 345 335
+e 345 596
+e 347 904
+e 347 984
+e 348 342
+e 349 673
+e 349 587
+e 350 833
+e 352 900
+e 354 487
+e 354 762
+e 355 112
+e 357 400
+e 359 716
+e 360 544
+e 360 322
+e 364 147
+e 364 973
+e 365 749
+e 370 365
+e 371 499
+e 371 881
+e 372 702
+e 373 353
+e 373 232
+e 375 468
+e 377 132
+e 379 864
+e 379 636
+e 380 353
+e 381 520
+e 381 635
+e 383 267
+e 384 936
+e 385 322
+e 385 946
+e 389 454
+e 389 989
+e 390 448
+e 391 687
+e 392 798
+e 392 492
+e 394 463
+e 394 957
+e 395 682
+e 395 4
+e 396 895
+e 396 940
+e 397 563
+e 398 626
+e 398 468
+e 399 390
+e 399 863
+e 403 50
+e 403 630
+e 404 694
+e 404 183
+e 405 569
+e 406 721
+e 406 339
+e 407 245
+e 409 930
+e 409 729
+e 411 639
+e 411 374
+e 413 708
+e 413 621
+e 417 833
+e 418 480
+e 422 125
+e 422 558
+e 424 97
+e 425 529
+e 425 999
+e 427 906
+e 427 90
+e 428 331
+e 429 829
+e 429 925
+e 430 424
+e 430 792
+e 431 802
+e 431 191
+e 432 981
+e 432 362
+e 434 986
+e 434 705
+e 435 113
+e 437 491
+e 437 230
+e 438 136
+e 438 734
+e 439 205
+e 439 355
+e 440 548
+e 440 642
+e 443 348
+e 443 504
+e 444 497
+e 445 804
+e 445 790
+e 446 254
+e 446 574
+e 448 363
+e 450 685
+e 450 323
+e 451 268
+e 452 565
+e 452 280
+e 453 517
+e 453 36
+e 455 228
+e 455 659
+e 457 63
+e 457 66
+e 458 973
+e 458 302
+e 459 102
+e 461 991
+e 461 519
+e 462 63
+e 462 987
+e 464 819
+e 464 784
+e 465 917
+e 465 911
+e 467 460
+e 469 369
+e 469 511
+e 470 370
+e 471 568
+e 472 648
+e 473 199
+e 473 568
+e 474 729
+e 474 593
+e 475 716
+e 475 127
+e 476 289
+e 477 97
+e 478 463
+e 478 883
+e 479 247
+e 479 198
+e 482 170
+e 483 540
+e 484 165
+e 484 42
+e 485 500
+e 485 886
+e 488 681
+e 488 43
+e 490 826
+e 493 812
+e 493 192
+e 495 653
+e 495 688
+e 496 104
+e 498 871
+e 498 333
+e 500 128
+e 501 872
+e 501 855
+e 502 296
+e 503 849
+e 503 870
+e 505 369
+e 505 788
+e 506 258
+e 506 210
+e 507 416
+e 508 191
+e 508 236
+e 509 912
+e 509 709
+e 510 447
+e 512 449
+e 514 239
+e 514 494
+e 515 83
+e 515 621
+e 516 752
+e 516 645
+e 518 577
+e 518 954
+e 520 267
+e 523 665
+e 523 848
+e 525 599
+e 527 305
+e 527 435
+e 530 571
+e 530 466
+e 532 0
+e 532 864
+e 533 492
+e 536 661
+e 536 79
+e 537 320
+e 537 284
+e 538 744
+e 539 846
+e 539 247
+e 541 945
+e 542 39
+e 542 786
+e 543 90
+e 543 951
+e 544 9
+e 547 260
+e 547 656
+e 548 599
+e 549 640
+e 550 256
+e 550 303
+e 551 489
+e 551 382
+e 553 294
+e 553 159
+e 555 521
+e 555 677
+e 556 963
+e 556 874
+e 557 571
+e 558 776
+e 561 18
+e 561 939
+e 562 486
+e 562 709
+e 564 606
+e 564 414
+e 565 304
+e 566 319
+e 567 178
+e 567 346
+e 569 860
+e 572 679
+e 573 546
+e 573 56
+e 575 720
+e 575 129
+e 576 916
+e 577 718
+e 578 831
+e 580 663
+e 583 17
+e 583 831
+e 584 728
+e 584 526
+e 585 706
+e 586 861
+e 586 332
+e 588 661
+e 588 961
+e 589 957
+e 589 878
+e 591 40
+e 591 791
+e 594 162
+e 594 386
+e 595 383
+e 595 201
+e 597 362
+e 598 834
+e 598 456
+e 600 261
+e 600 442
+e 602 772
+e 602 785
+e 603 895
+e 603 730
+e 604 405
+e 604 933
+e 605 886
+e 605 337
+e 608 459
+e 608 334
+e 609 66
+e 609 12
+e 611 670
+e 611 941
+e 612 597
+e 612 798
+e 616 643
+e 616 387
+e 617 872
+e 617 0
+e 618 416
+e 619 735
+e 619 400
+e 622 721
+e 622 676
+e 623 666
+e 623 21
+e 625 388
+e 625 683
+e 627 510
+e 627 748
+e 629 401
+e 630 876
+e 631 223
+e 634 32
+e 635 751
+e 637 993
+e 637 818
+e 638 745
+e 638 860
+e 640 656
+e 641 545
+e 641 631
+e 644 796
+e 644 618
+e 646 817
+e 647 351
+e 650 350
+e 650 531
+e 651 421
+e 651 148
+e 652 690
+e 652 9
+e 654 1005
+e 654 909
+e 657 352
+e 657 205
+e 658 71
+e 660 768
+e 662 302
+e 663 869
+e 664 88
+e 664 423
+e 666 709
+e 667 60
+e 667 881
+e 668 863
+e 668 649
+e 669 61
+e 669 128
+e 670 580
+e 671 786
+e 671 511
+e 672 476
+e 672 526
+e 673 914
+e 674 793
+e 675 168
+e 679 270
+e 682 231
+e 684 958
+e 684 408
+e 686 467
+e 687 420
+e 689 307
+e 689 101
+e 690 747
+e 691 20
+e 692 222
+e 692 560
+e 695 757
+e 695 838
+e 696 624
+e 696 570
+e 697 131
+e 697 456
+e 698 193
+e 698 1000
+e 699 880
+e 699 967
+e 700 848
+e 700 19
+e 701 545
+e 701 751
+e 703 418
+e 704 708
+e 704 477
+e 707 277
+e 707 197
+e 712 3
+e 712 665
+e 713 983
+e 713 81
+e 714 896
+e 714 601
+e 717 613
+e 717 809
+e 719 110
+e 719 882
+e 720 715
+e 722 628
+e 722 15
+e 723 250
+e 723 303
+e 724 581
+e 724 596
+e 726 318
+e 726 880
+e 727 59
+e 727 914
+e 731 134
+e 731 946
+e 732 288
+e 732 113
+e 733 280
+e 733 341
+e 736 978
+e 736 497
+e 737 328
+e 738 958
+e 739 426
+e 739 54
+e 740 878
+e 741 686
+e 741 143
+e 742 203
+e 742 993
+e 743 145
+e 743 466
+e 746 903
+e 746 781
+e 748 34
+e 750 579
+e 750 522
+e 753 117
+e 753 367
+e 754 183
+e 754 31
+e 755 162
+e 756 243
+e 756 529
+e 757 82
+e 758 964
+e 758 480
+e 759 122
+e 759 915
+e 760 715
+e 760 832
+e 761 278
+e 761 615
+e 763 896
+e 763 256
+e 765 916
+e 765 702
+e 766 582
+e 766 843
+e 769 680
+e 771 218
+e 773 942
+e 773 225
+e 774 633
+e 774 334
+e 775 176
+e 776 80
+e 778 139
+e 779 208
+e 782 47
+e 782 917
+e 783 777
+e 783 790
+e 787 738
+e 787 676
+e 789 24
+e 789 559
+e 793 384
+e 795 592
+e 795 648
+e 796 843
+e 797 933
+e 797 734
+e 800 165
+e 800 386
+e 801 57
+e 801 645
+e 803 680
+e 804 194
+e 805 157
+e 807 991
+e 807 22
+e 808 28
+e 808 610
+e 810 143
+e 810 378
+e 812 152
+e 814 305
+e 814 502
+e 816 388
+e 816 710
+e 817 100
+e 820 954
+e 820 535
+e 823 521
+e 823 263
+e 824 376
+e 825 410
+e 825 397
+e 826 337
+e 827 730
+e 827 31
+e 828 226
+e 829 629
+e 835 581
+e 835 428
+e 836 419
+e 836 100
+e 838 121
+e 839 377
+e 839 378
+e 840 815
+e 841 123
+e 841 866
+e 842 694
+e 842 340
+e 844 803
+e 844 593
+e 845 913
+e 845 77
+e 846 284
+e 847 111
+e 847 678
+e 849 725
+e 850 830
+e 850 84
+e 851 705
+e 851 12
+e 852 830
+e 852 996
+e 853 966
+e 854 865
+e 854 181
+e 856 582
+e 856 767
+e 857 965
+e 857 114
+e 858 359
+e 861 632
+e 862 391
+e 862 154
+e 865 822
+e 866 587
+e 867 579
+e 867 410
+e 868 11
+e 868 995
+e 873 94
+e 873 566
+e 875 939
+e 877 513
+e 879 102
+e 884 356
+e 884 970
+e 885 276
+e 885 208
+e 887 655
+e 887 806
+e 888 877
+e 888 938
+e 890 762
+e 891 189
+e 893 426
+e 893 531
+e 898 1
+e 898 490
+e 899 35
+e 901 298
+e 902 590
+e 903 297
+e 904 869
+e 905 681
+e 906 871
+e 907 324
+e 908 764
+e 912 675
+e 913 168
+e 915 647
+e 918 491
+e 919 662
+e 919 324
+e 920 4
+e 920 486
+e 921 368
+e 921 489
+e 923 519
+e 923 504
+e 924 660
+e 924 777
+e 928 129
+e 928 574
+e 929 784
+e 931 636
+e 932 655
+e 932 116
+e 934 897
+e 934 19
+e 935 996
+e 935 541
+e 936 52
+e 937 950
+e 937 982
+e 941 43
+e 942 331
+e 943 578
+e 943 282
+e 944 270
+e 944 306
+e 947 938
+e 948 193
+e 948 659
+e 949 195
+e 949 294
+e 952 441
+e 952 80
+e 953 646
+e 953 177
+e 955 966
+e 955 900
+e 956 219
+e 956 155
+e 959 855
+e 959 298
+e 960 554
+e 960 770
+e 961 970
+e 962 780
+e 962 711
+e 963 828
+e 965 164
+e 968 177
+e 968 112
+e 969 982
+e 971 356
+e 972 139
+e 974 111
+e 974 229
+e 975 267
+e 976 433
+e 976 752
+e 977 769
+e 977 358
+e 978 230
+e 979 546
+e 979 528
+e 981 314
+e 983 393
+e 985 559
+e 986 326
+e 988 513
+e 988 232
+e 990 496
+e 990 225
+e 992 441
+e 992 447
+e 994 311
+e 994 528
+e 995 376
+e 997 950
+e 997 237
+e 998 1003
+e 998 172
+e 1001 24
+e 1001 339
+e 1002 59
+e 1002 65
+e 1003 423
+e 1004 415
+e 1004 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 0 184
+e 0 332
+e 1 160
+e 1 877
+e 2 128
+e 2 102
+e 3 282
+e 8 981
+e 8 775
+e 10 746
+e 10 970
+e 11 472
+e 13 379
+e 14 466
+e 14 749
+e 16 204
+e 17 843
+e 18 619
+e 18 146
+e 19 228
+e 19 99
+e 20 623
+e 20 684
+e 22 622
+e 22 501
+e 23 610
+e 23 647
+e 24 325
+e 24 342
+e 25 963
+e 25 278
+e 29 729
+e 29 297
+e 30 580
+e 30 883
+e 33 235
+e 33 170
+e 37 630
+e 38 279
+e 41 491
+e 43 286
+e 43 316
+e 44 276
+e 44 626
+e 45 106
+e 45 316
+e 46 493
+e 47 913
+e 48 287
+e 49 726
+e 50 385
+e 51 791
+e 51 53
+e 52 758
+e 54 909
+e 57 156
+e 57 512
+e 58 690
+e 59 604
+e 59 244
+e 60 72
+e 61 463
+e 61 433
+e 64 849
+e 64 550
+e 65 442
+e 65 359
+e 66 645
+e 67 682
+e 67 659
+e 68 435
+e 68 395
+e 69 901
+e 69 592
+e 70 108
+e 70 781
+e 71 74
+e 71 999
+e 74 934
+e 75 219
+e 78 37
+e 78 984
+e 80 186
+e 80 214
+e 81 792
+e 81 670
+e 82 294
+e 83 988
+e 85 663
+e 85 215
+e 88 808
+e 88 508
+e 92 63
+e 92 335
+e 93 56
+e 93 397
+e 95 502
+e 95 644
+e 98 880
+e 98 950
+e 100 743
+e 100 535
+e 101 485
+e 103 300
+e 103 135
+e 106 797
+e 107 256
+e 107 970
+e 109 464
+e 110 677
+e 111 304
+e 114 863
+e 116 112
+e 117 986
+e 118 470
+e 118 404
+e 119 884
+e 121 649
+e 121 28
+e 122 226
+e 122 62
+e 123 843
+e 123 430
+e 126 410
+e 128 553
+e 130 962
+e 130 694
+e 131 111
+e 132 343
+e 132 701
+e 133 38
+e 136 120
+e 137 1001
+e 137 879
+e 138 56
+e 138 292
+e 144 951
+e 144 299
+e 145 851
+e 145 903
+e 147 307
+e 148 937
+e 148 716
+e 151 710
+e 153 381
+e 153 697
+e 154 920
+e 154 718
+e 155 206
+e 155 52
+e 157 658
+e 159 229
+e 161 562
+e 161 475
+e 162 6
+e 164 505
+e 165 319
+e 166 151
+e 166 227
+e 167 694
+e 168 797
+e 168 658
+e 170 608
+e 171 645
+e 172 351
+e 172 190
+e 173 251
+e 175 396
+e 177 606
+e 178 822
+e 178 73
+e 179 620
+e 179 289
+e 180 407
+e 180 134
+e 181 755
+e 181 454
+e 182 197
+e 185 820
+e 185 87
+e 187 654
+e 188 836
+e 189 838
+e 189 141
+e 191 333
+e 192 15
+e 192 835
+e 194 42
+e 194 344
+e 195 499
+e 195 411
+e 196 372
+e 196 801
+e 198 321
+e 198 502
+e 199 871
+e 199 947
+e 200 75
+e 200 90
+e 201 21
+e 201 317
+e 203 607
+e 203 532
+e 204 573
+e 205 498
+e 206 942
+e 207 613
+e 207 183
+e 208 991
+e 209 340
+e 210 139
+e 211 34
+e 216 874
+e 216 898
+e 217 73
+e 217 368
+e 219 900
+e 220 910
+e 220 993
+e 221 326
+e 221 125
+e 222 891
+e 224 691
+e 225 86
+e 225 671
+e 227 699
+e 231 814
+e 234 28
+e 234 784
+e 235 332
+e 236 525
+e 237 252
+e 238 707
+e 238 353
+e 239 699
+e 239 233
+e 240 875
+e 240 447
+e 241 583
+e 242 336
+e 242 943
+e 243 967
+e 245 526
+e 246 663
+e 247 641
+e 247 230
+e 248 413
+e 249 331
+e 250 578
+e 250 143
+e 252 149
+e 254 749
+e 254 35
+e 255 811
+e 258 560
+e 258 193
+e 259 790
+e 259 301
+e 260 812
+e 260 230
+e 261 538
+e 261 409
+e 262 673
+e 262 810
+e 263 583
+e 264 255
+e 266 957
+e 266 360
+e 267 360
+e 268 750
+e 268 120
+e 269 452
+e 269 765
+e 270 91
+e 270 877
+e 271 932
+e 271 36
+e 274 711
+e 274 124
+e 275 817
+e 275 5
+e 277 280
+e 279 957
+e 280 335
+e 284 628
+e 284 419
+e 287 556
+e 288 228
+e 288 379
+e 289 112
+e 290 652
+e 290 174
+e 292 390
+e 293 563
+e 295 427
+e 295 841
+e 296 16
+e 296 452
+e 302 889
+e 302 863
+e 303 831
+e 305 39
+e 305 635
+e 306 902
+e 306 847
+e 308 950
+e 309 167
+e 310 186
+e 310 504
+e 311 439
+e 311 611
+e 315 735
+e 315 456
+e 318 46
+e 318 256
+e 319 571
+e 320 60
+e 320 327
+e 321 273
+e 323 345
+e 324 251
+e 325 307
+e 328 564
+e 328 440
+e 329 403
+e 333 286
+e 337 508
+e 338 372
+e 338 334
+e 341 482
+e 341 411
+e 342 434
+e 343 27
+e 347 750
+e 350 190
+e 351 505
+e 356 26
+e 356 142
+e 357 115
+e 358 127
+e 358 716
+e 361 520
+e 362 89
+e 363 312
+e 363 721
+e 364 907
+e 364 184
+e 365 766
+e 366 955
+e 366 682
+e 370 685
+e 370 836
+e 371 504
+e 377 802
+e 377 644
+e 378 929
+e 382 724
+e 382 79
+e 384 470
+e 384 671
+e 386 129
+e 386 41
+e 388 162
+e 388 553
+e 389 202
+e 391 47
+e 391 915
+e 392 932
+e 392 533
+e 393 892
+e 393 773
+e 394 191
+e 394 778
+e 395 482
+e 399 431
+e 399 127
+e 402 994
+e 402 113
+e 405 367
+e 406 403
+e 407 899
+e 408 817
+e 408 1003
+e 412 960
+e 412 509
+e 416 147
+e 416 340
+e 420 376
+e 421 467
+e 422 903
+e 422 884
+e 423 371
+e 423 264
+e 425 606
+e 425 991
+e 426 649
+e 426 272
+e 427 4
+e 428 165
+e 429 414
+e 429 374
+e 431 790
+e 432 303
+e 432 888
+e 436 337
+e 436 873
+e 437 376
+e 438 5
+e 438 500
+e 439 169
+e 440 350
+e 441 40
+e 442 94
+e 443 209
+e 444 119
+e 444 7
+e 445 568
+e 445 728
+e 446 870
+e 446 552
+e 448 222
+e 448 490
+e 449 102
+e 449 304
+e 451 182
+e 451 557
+e 454 990
+e 455 49
+e 455 840
+e 457 218
+e 457 314
+e 458 712
+e 460 978
+e 461 150
+e 461 248
+e 462 537
+e 463 383
+e 465 543
+e 465 803
+e 467 214
+e 468 745
+e 469 387
+e 471 599
+e 471 506
+e 474 523
+e 475 627
+e 477 314
+e 477 450
+e 479 419
+e 479 190
+e 480 54
+e 480 582
+e 481 496
+e 481 241
+e 484 441
+e 484 975
+e 486 874
+e 486 705
+e 487 767
+e 487 462
+e 488 990
+e 488 823
+e 490 307
+e 492 911
+e 492 298
+e 493 369
+e 494 672
+e 495 907
+e 495 131
+e 496 396
+e 497 63
+e 497 34
+e 499 339
+e 500 380
+e 503 353
+e 506 776
+e 507 979
+e 510 489
+e 511 899
+e 511 942
+e 513 700
+e 513 336
+e 514 777
+e 514 537
+e 515 322
+e 515 885
+e 516 12
+e 518 804
+e 518 294
+e 521 212
+e 521 91
+e 522 322
+e 522 825
+e 528 42
+e 528 969
+e 529 818
+e 529 670
+e 530 265
+e 531 555
+e 531 483
+e 533 301
+e 534 603
+e 534 568
+e 536 410
+e 536 801
+e 539 213
+e 539 26
+e 540 648
+e 540 512
+e 541 927
+e 541 233
+e 542 414
+e 542 9
+e 543 418
+e 544 380
+e 545 530
+e 545 17
+e 546 1000
+e 546 7
+e 547 313
+e 547 97
+e 548 659
+e 548 183
+e 549 317
+e 549 223
+e 551 188
+e 551 824
+e 554 397
+e 554 654
+e 555 349
+e 558 501
+e 559 218
+e 559 334
+e 561 835
+e 562 698
+e 564 13
+e 565 163
+e 565 348
+e 566 960
+e 566 169
+e 567 939
+e 567 520
+e 570 898
+e 571 775
+e 572 282
+e 573 82
+e 574 603
+e 574 664
+e 575 176
+e 575 752
+e 576 285
+e 576 421
+e 577 126
+e 577 176
+e 579 623
+e 579 309
+e 584 921
+e 584 897
+e 585 205
+e 585 635
+e 586 707
+e 587 822
+e 587 291
+e 588 673
+e 588 563
+e 589 133
+e 589 231
+e 590 12
+e 590 99
+e 591 374
+e 591 742
+e 592 626
+e 593 443
+e 593 755
+e 594 597
+e 594 868
+e 595 730
+e 595 721
+e 596 705
+e 596 509
+e 597 430
+e 598 997
+e 600 297
+e 600 87
+e 601 77
+e 601 765
+e 602 55
+e 602 135
+e 605 842
+e 605 345
+e 608 968
+e 609 607
+e 609 143
+e 610 971
+e 611 847
+e 612 327
+e 612 841
+e 614 476
+e 614 40
+e 615 857
+e 615 669
+e 616 570
+e 616 936
+e 617 435
+e 617 517
+e 618 757
+e 618 157
+e 619 58
+e 620 572
+e 621 868
+e 621 173
+e 624 141
+e 624 27
+e 625 175
+e 625 409
+e 629 253
+e 629 966
+e 630 733
+e 631 211
+e 631 929
+e 632 464
+e 632 491
+e 633 604
+e 633 840
+e 634 885
+e 634 900
+e 636 277
+e 636 781
+e 638 691
+e 639 744
+e 639 980
+e 640 139
+e 640 246
+e 642 21
+e 642 1000
+e 643 811
+e 643 278
+e 650 757
+e 650 955
+e 652 187
+e 653 324
+e 655 62
+e 655 923
+e 656 774
+e 656 4
+e 657 622
+e 657 35
+e 660 308
+e 660 838
+e 661 352
+e 661 598
+e 662 116
+e 662 690
+e 664 232
+e 666 940
+e 666 359
+e 667 104
+e 668 79
+e 668 792
+e 674 339
+e 674 473
+e 675 210
+e 675 875
+e 676 224
+e 676 326
+e 678 404
+e 679 815
+e 679 519
+e 680 329
+e 680 84
+e 681 406
+e 681 97
+e 683 910
+e 683 281
+e 684 519
+e 685 265
+e 686 700
+e 686 89
+e 689 90
+e 689 298
+e 692 77
+e 692 550
+e 693 32
+e 693 113
+e 695 344
+e 695 40
+e 696 824
+e 696 174
+e 701 788
+e 702 15
+e 702 766
+e 703 744
+e 703 223
+e 704 866
+e 706 494
+e 706 980
+e 708 420
+e 708 276
+e 709 507
+e 709 923
+e 711 762
+e 713 293
+e 713 807
+e 714 105
+e 714 134
+e 715 108
+e 715 229
+e 717 687
+e 717 6
+e 718 646
+e 719 249
+e 719 3
+e 720 921
+e 720 473
+e 722 561
+e 723 667
+e 723 489
+e 725 918
+e 725 560
+e 727 653
+e 727 581
+e 729 31
+e 731 704
+e 731 908
+e 732 400
+e 732 140
+e 734 476
+e 734 844
+e 736 389
+e 736 569
+e 738 367
+e 738 825
+e 739 373
+e 739 870
+e 740 208
+e 740 355
+e 741 146
+e 741 947
+e 746 724
+e 747 859
+e 747 697
+e 748 453
+e 751 569
+e 751 413
+e 752 943
+e 753 346
+e 754 152
+e 754 215
+e 756 105
+e 756 819
+e 758 459
+e 759 712
+e 759 164
+e 760 237
+e 760 257
+e 761 915
+e 761 478
+e 762 361
+e 763 641
+e 763 810
+e 764 415
+e 764 627
+e 768 730
+e 768 778
+e 769 96
+e 769 375
+e 770 798
+e 770 136
+e 771 1003
+e 771 104
+e 772 226
+e 772 773
+e 777 115
+e 779 96
+e 779 968
+e 780 881
+e 780 94
+e 782 171
+e 782 273
+e 783 967
+e 785 373
+e 785 726
+e 786 826
+e 786 558
+e 787 197
+e 788 348
+e 789 362
+e 789 677
+e 793 428
+e 793 941
+e 794 774
+e 794 456
+e 796 323
+e 796 300
+e 798 48
+e 799 468
+e 799 263
+e 800 450
+e 804 532
+e 805 648
+e 805 814
+e 806 447
+e 807 355
+e 808 524
+e 809 753
+e 809 257
+e 812 213
+e 813 163
+e 813 743
+e 816 748
+e 816 313
+e 818 202
+e 819 346
+e 820 742
+e 821 405
+e 821 934
+e 826 415
+e 827 527
+e 827 299
+e 828 688
+e 829 458
+e 829 815
+e 830 459
+e 830 142
+e 831 962
+e 832 117
+e 832 795
+e 833 385
+e 833 485
+e 834 86
+e 834 331
+e 837 806
+e 837 578
+e 839 417
+e 839 665
+e 842 637
+e 845 580
+e 845 933
+e 846 417
+e 846 76
+e 848 36
+e 850 1001
+e 850 267
+e 851 728
+e 852 243
+e 853 795
+e 853 937
+e 854 400
+e 854 628
+e 855 971
+e 855 84
+e 856 613
+e 856 517
+e 858 510
+e 858 152
+e 859 993
+e 860 158
+e 860 244
+e 861 848
+e 861 776
+e 862 647
+e 862 733
+e 864 433
+e 864 9
+e 865 737
+e 865 883
+e 866 354
+e 867 879
+e 867 552
+e 869 722
+e 869 330
+e 871 365
+e 872 544
+e 872 424
+e 876 437
+e 876 193
+e 878 283
+e 878 767
+e 880 737
+e 881 474
+e 882 460
+e 882 638
+e 886 383
+e 887 873
+e 887 478
+e 888 672
+e 889 939
+e 890 586
+e 890 330
+e 892 368
+e 893 523
+e 894 849
+e 894 735
+e 895 357
+e 895 375
+e 896 483
+e 896 11
+e 897 582
+e 901 698
+e 904 503
+e 904 352
+e 905 101
+e 905 424
+e 906 347
+e 909 908
+e 912 581
+e 912 232
+e 914 927
+e 914 911
+e 916 893
+e 916 398
+e 917 158
+e 917 745
+e 918 800
+e 919 828
+e 919 954
+e 920 390
+e 922 53
+e 922 349
+e 924 951
+e 924 599
+e 925 32
+e 925 525
+e 926 283
+e 926 669
+e 928 291
+e 928 369
+e 930 177
+e 930 401
+e 931 140
+e 931 387
+e 935 114
+e 935 902
+e 936 913
+e 938 710
+e 938 526
+e 940 55
+e 944 124
+e 944 646
+e 945 381
+e 945 886
+e 946 906
+e 946 933
+e 948 984
+e 948 997
+e 949 125
+e 949 94
+e 952 787
+e 952 398
+e 953 72
+e 953 524
+e 954 823
+e 956 687
+e 956 844
+e 958 149
+e 958 784
+e 959 637
+e 959 825
+e 961 245
+e 961 109
+e 963 498
+e 964 891
+e 964 272
+e 965 150
+e 965 434
+e 966 76
+e 969 783
+e 972 129
+e 972 466
+e 973 469
+e 973 39
+e 974 557
+e 974 253
+e 975 312
+e 976 50
+e 976 538
+e 977 852
+e 977 651
+e 978 791
+e 979 453
+e 981 665
+e 982 803
+e 982 941
+e 983 688
+e 983 193
+e 985 83
+e 985 281
+e 986 236
+e 987 31
+e 987 472
+e 988 651
+e 989 378
+e 989 401
+e 992 857
+e 992 110
+e 994 556
+e 995 159
+e 995 802
+e 996 160
+e 996 156
+e 998 285
+e 998 354
+e 999 527
+e 1002 516
+e 1002 678
+e 1004 66
+e 1004 418
+e 1005 212
+e 1005 535

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,1010 @@
+p edge 1006 1009
+e 0 336
+e 0 96
+e 2 622
+e 2 991
+e 3 282
+e 3 308
+e 4 595
+e 4 605
+e 6 657
+e 8 881
+e 8 188
+e 10 763
+e 10 38
+e 14 153
+e 15 588
+e 15 328
+e 16 930
+e 16 122
+e 17 413
+e 17 272
+e 18 241
+e 18 952
+e 20 695
+e 20 49
+e 21 513
+e 23 958
+e 24 636
+e 24 673
+e 26 916
+e 26 539
+e 29 1
+e 30 120
+e 30 195
+e 31 339
+e 32 989
+e 32 561
+e 33 852
+e 33 462
+e 35 157
+e 35 47
+e 36 159
+e 36 582
+e 37 611
+e 39 480
+e 40 435
+e 40 434
+e 43 258
+e 43 800
+e 44 745
+e 44 657
+e 45 77
+e 45 270
+e 46 591
+e 46 447
+e 48 878
+e 48 938
+e 49 151
+e 50 608
+e 51 375
+e 51 496
+e 52 55
+e 52 780
+e 58 570
+e 58 60
+e 63 676
+e 63 893
+e 65 314
+e 66 257
+e 66 1004
+e 69 41
+e 69 214
+e 73 298
+e 73 912
+e 74 408
+e 74 533
+e 75 693
+e 75 512
+e 79 815
+e 80 499
+e 80 503
+e 81 679
+e 81 177
+e 83 398
+e 83 116
+e 84 726
+e 85 96
+e 85 851
+e 87 586
+e 87 261
+e 89 224
+e 91 11
+e 95 934
+e 95 706
+e 97 88
+e 97 984
+e 98 239
+e 98 711
+e 99 260
+e 99 745
+e 100 163
+e 100 732
+e 102 625
+e 102 648
+e 103 124
+e 105 118
+e 105 207
+e 106 556
+e 106 397
+e 109 175
+e 109 923
+e 111 507
+e 111 155
+e 112 918
+e 113 445
+e 113 387
+e 114 501
+e 115 743
+e 115 993
+e 117 565
+e 118 925
+e 119 606
+e 119 937
+e 120 345
+e 121 714
+e 121 382
+e 123 550
+e 123 400
+e 127 900
+e 127 185
+e 129 848
+e 131 452
+e 132 492
+e 132 825
+e 134 629
+e 134 893
+e 135 391
+e 135 704
+e 136 783
+e 136 208
+e 137 399
+e 137 937
+e 138 236
+e 138 477
+e 139 158
+e 140 756
+e 140 364
+e 142 792
+e 143 519
+e 144 9
+e 144 251
+e 145 324
+e 145 573
+e 147 849
+e 147 77
+e 148 943
+e 148 404
+e 150 872
+e 152 753
+e 152 716
+e 155 514
+e 156 464
+e 157 475
+e 160 742
+e 160 471
+e 161 236
+e 161 874
+e 163 304
+e 165 25
+e 165 339
+e 166 294
+e 166 396
+e 167 254
+e 167 785
+e 168 321
+e 168 178
+e 169 133
+e 169 267
+e 170 842
+e 170 566
+e 171 997
+e 171 539
+e 172 25
+e 172 78
+e 174 396
+e 174 905
+e 176 998
+e 179 568
+e 180 884
+e 180 927
+e 181 68
+e 183 846
+e 183 218
+e 184 892
+e 184 57
+e 186 299
+e 188 723
+e 189 730
+e 189 486
+e 191 366
+e 191 908
+e 193 1000
+e 193 27
+e 194 990
+e 194 250
+e 195 251
+e 197 809
+e 197 846
+e 198 64
+e 198 912
+e 199 978
+e 199 695
+e 200 272
+e 203 485
+e 203 276
+e 206 84
+e 206 469
+e 207 911
+e 209 379
+e 211 320
+e 211 480
+e 215 956
+e 215 826
+e 217 718
+e 217 126
+e 219 962
+e 219 22
+e 220 816
+e 221 815
+e 222 481
+e 222 544
+e 223 426
+e 223 200
+e 225 201
+e 225 13
+e 226 304
+e 227 164
+e 228 619
+e 229 288
+e 231 38
+e 232 558
+e 232 60
+e 233 969
+e 233 822
+e 234 694
+e 235 891
+e 235 822
+e 237 999
+e 237 820
+e 238 939
+e 240 459
+e 240 724
+e 241 12
+e 242 747
+e 242 729
+e 244 527
+e 245 904
+e 245 684
+e 246 880
+e 247 380
+e 247 885
+e 248 221
+e 248 795
+e 249 384
+e 253 960
+e 253 667
+e 257 931
+e 258 634
+e 259 841
+e 259 811
+e 262 477
+e 262 607
+e 265 696
+e 266 431
+e 266 984
+e 269 329
+e 273 725
+e 273 196
+e 274 228
+e 274 82
+e 276 287
+e 277 93
+e 278 125
+e 278 515
+e 279 59
+e 280 302
+e 280 773
+e 281 372
+e 282 458
+e 283 552
+e 283 212
+e 284 429
+e 286 940
+e 286 988
+e 289 643
+e 291 1005
+e 291 706
+e 292 905
+e 293 895
+e 293 959
+e 295 394
+e 296 244
+e 296 213
+e 297 940
+e 297 542
+e 300 786
+e 301 883
+e 301 330
+e 305 176
+e 305 295
+e 306 757
+e 306 968
+e 307 294
+e 307 65
+e 309 103
+e 309 524
+e 310 631
+e 310 303
+e 311 227
+e 311 255
+e 312 381
+e 312 797
+e 313 440
+e 314 601
+e 315 718
+e 317 275
+e 317 770
+e 318 669
+e 318 122
+e 319 885
+e 319 372
+e 320 271
+e 323 78
+e 325 934
+e 325 334
+e 326 648
+e 326 560
+e 327 775
+e 330 7
+e 331 79
+e 331 11
+e 332 357
+e 332 202
+e 333 921
+e 333 697
+e 337 555
+e 337 76
+e 338 125
+e 338 271
+e 340 951
+e 340 190
+e 341 61
+e 342 489
+e 344 828
+e 344 599
+e 348 990
+e 348 108
+e 349 336
+e 349 27
+e 351 666
+e 352 226
+e 352 613
+e 354 427
+e 354 187
+e 355 192
+e 355 560
+e 356 72
+e 356 181
+e 358 279
+e 358 12
+e 359 707
+e 360 759
+e 360 154
+e 361 561
+e 363 967
+e 364 903
+e 365 7
+e 367 56
+e 367 256
+e 368 783
+e 368 794
+e 369 750
+e 369 328
+e 370 112
+e 370 542
+e 371 813
+e 371 588
+e 376 964
+e 376 807
+e 377 438
+e 377 94
+e 378 536
+e 378 879
+e 379 263
+e 381 606
+e 385 250
+e 385 628
+e 388 1002
+e 388 90
+e 389 731
+e 389 384
+e 390 353
+e 390 104
+e 393 432
+e 393 976
+e 398 845
+e 400 54
+e 401 261
+e 402 877
+e 402 108
+e 403 489
+e 403 417
+e 406 882
+e 406 421
+e 407 419
+e 407 735
+e 409 34
+e 410 503
+e 410 187
+e 411 806
+e 411 871
+e 412 37
+e 414 230
+e 415 414
+e 415 173
+e 416 758
+e 416 838
+e 419 141
+e 420 584
+e 420 185
+e 422 583
+e 422 151
+e 423 298
+e 423 667
+e 424 739
+e 424 654
+e 425 466
+e 430 700
+e 430 774
+e 432 196
+e 435 694
+e 436 204
+e 437 612
+e 437 571
+e 438 776
+e 441 959
+e 441 515
+e 443 246
+e 444 313
+e 444 210
+e 446 808
+e 446 285
+e 448 947
+e 450 730
+e 450 71
+e 453 88
+e 453 982
+e 454 830
+e 454 642
+e 455 631
+e 455 449
+e 456 525
+e 456 133
+e 457 973
+e 457 9
+e 459 510
+e 460 76
+e 460 731
+e 461 290
+e 461 205
+e 463 315
+e 463 700
+e 465 698
+e 467 833
+e 467 581
+e 468 952
+e 468 604
+e 470 522
+e 470 159
+e 474 150
+e 476 892
+e 476 433
+e 478 984
+e 479 149
+e 479 655
+e 481 772
+e 482 987
+e 483 22
+e 484 531
+e 484 578
+e 485 765
+e 486 483
+e 487 633
+e 488 944
+e 488 879
+e 490 963
+e 490 252
+e 491 929
+e 492 950
+e 493 146
+e 493 513
+e 497 175
+e 497 525
+e 498 711
+e 498 761
+e 499 94
+e 501 285
+e 502 327
+e 502 469
+e 504 179
+e 504 583
+e 505 156
+e 506 464
+e 506 628
+e 508 186
+e 508 907
+e 509 887
+e 509 756
+e 516 302
+e 516 5
+e 517 824
+e 518 408
+e 518 891
+e 520 154
+e 520 630
+e 521 345
+e 523 442
+e 523 440
+e 526 365
+e 526 427
+e 528 409
+e 528 522
+e 529 802
+e 529 357
+e 530 21
+e 532 559
+e 532 918
+e 534 977
+e 534 264
+e 535 399
+e 535 782
+e 536 638
+e 537 256
+e 537 216
+e 538 474
+e 540 649
+e 540 657
+e 541 991
+e 541 213
+e 543 366
+e 543 795
+e 544 512
+e 545 652
+e 545 977
+e 547 644
+e 547 861
+e 548 322
+e 548 260
+e 549 114
+e 549 758
+e 550 93
+e 551 655
+e 551 566
+e 552 190
+e 553 141
+e 554 70
+e 554 205
+e 555 797
+e 556 595
+e 557 68
+e 558 34
+e 563 533
+e 563 303
+e 564 323
+e 565 71
+e 567 92
+e 567 794
+e 568 704
+e 569 59
+e 569 571
+e 570 316
+e 574 948
+e 574 347
+e 575 212
+e 575 601
+e 576 519
+e 576 255
+e 577 346
+e 577 587
+e 579 82
+e 579 451
+e 580 748
+e 580 386
+e 581 635
+e 582 1001
+e 584 814
+e 585 275
+e 585 587
+e 589 383
+e 590 747
+e 590 387
+e 593 392
+e 593 451
+e 594 624
+e 594 254
+e 596 824
+e 597 473
+e 597 578
+e 598 434
+e 598 110
+e 599 823
+e 600 374
+e 602 343
+e 609 517
+e 609 986
+e 610 28
+e 610 418
+e 614 665
+e 614 592
+e 615 809
+e 615 417
+e 616 128
+e 617 914
+e 617 625
+e 618 442
+e 618 495
+e 619 805
+e 620 810
+e 620 546
+e 621 86
+e 621 856
+e 622 130
+e 623 268
+e 623 666
+e 624 630
+e 626 443
+e 626 494
+e 627 863
+e 627 19
+e 634 903
+e 638 316
+e 639 678
+e 639 571
+e 640 976
+e 640 613
+e 641 70
+e 641 713
+e 642 511
+e 645 329
+e 645 643
+e 647 682
+e 649 632
+e 650 249
+e 650 209
+e 651 847
+e 651 646
+e 652 792
+e 653 373
+e 653 886
+e 654 182
+e 656 128
+e 656 158
+e 658 763
+e 659 744
+e 659 732
+e 660 596
+e 660 153
+e 661 507
+e 661 421
+e 662 827
+e 662 511
+e 663 759
+e 664 439
+e 665 989
+e 668 41
+e 668 491
+e 669 89
+e 670 426
+e 670 888
+e 671 362
+e 671 218
+e 672 130
+e 672 603
+e 674 375
+e 674 837
+e 675 300
+e 677 890
+e 677 930
+e 680 288
+e 680 853
+e 681 204
+e 681 929
+e 683 635
+e 683 546
+e 684 770
+e 685 707
+e 685 252
+e 686 380
+e 686 131
+e 687 478
+e 687 933
+e 688 142
+e 689 57
+e 690 395
+e 690 722
+e 691 292
+e 691 448
+e 692 831
+e 692 405
+e 698 334
+e 699 637
+e 699 958
+e 701 557
+e 701 871
+e 703 487
+e 703 413
+e 705 239
+e 705 308
+e 708 439
+e 708 696
+e 709 877
+e 710 688
+e 710 761
+e 712 800
+e 712 452
+e 714 678
+e 715 5
+e 715 91
+e 716 949
+e 717 972
+e 717 562
+e 719 559
+e 719 831
+e 720 884
+e 720 773
+e 721 392
+e 721 53
+e 724 321
+e 727 101
+e 727 473
+e 728 600
+e 733 401
+e 733 894
+e 734 363
+e 734 880
+e 735 807
+e 736 612
+e 736 146
+e 737 682
+e 738 898
+e 738 374
+e 740 786
+e 741 428
+e 741 234
+e 742 31
+e 743 527
+e 746 47
+e 746 932
+e 748 592
+e 749 62
+e 750 636
+e 751 428
+e 751 854
+e 752 500
+e 752 607
+e 753 637
+e 754 962
+e 754 925
+e 755 475
+e 755 926
+e 757 644
+e 760 702
+e 760 944
+e 764 689
+e 764 775
+e 766 42
+e 766 224
+e 767 466
+e 768 243
+e 769 530
+e 769 362
+e 771 290
+e 771 50
+e 772 658
+e 777 901
+e 777 902
+e 778 350
+e 778 675
+e 779 173
+e 779 524
+e 781 472
+e 781 53
+e 784 210
+e 784 980
+e 785 126
+e 787 92
+e 787 347
+e 788 139
+e 788 436
+e 789 830
+e 789 54
+e 790 149
+e 790 216
+e 791 238
+e 791 495
+e 793 780
+e 793 61
+e 796 143
+e 796 589
+e 798 886
+e 799 14
+e 799 896
+e 801 214
+e 801 335
+e 803 29
+e 803 702
+e 804 229
+e 804 391
+e 805 39
+e 806 603
+e 808 93
+e 811 941
+e 812 500
+e 812 998
+e 813 798
+e 816 361
+e 817 335
+e 817 19
+e 818 496
+e 819 728
+e 819 837
+e 820 1
+e 821 482
+e 821 782
+e 825 6
+e 826 967
+e 828 129
+e 829 602
+e 829 723
+e 832 162
+e 832 553
+e 833 382
+e 834 679
+e 834 231
+e 835 608
+e 835 902
+e 836 107
+e 836 765
+e 838 67
+e 839 1000
+e 839 605
+e 840 616
+e 840 342
+e 841 646
+e 843 472
+e 843 629
+e 844 395
+e 844 299
+e 845 851
+e 848 572
+e 849 986
+e 850 562
+e 850 458
+e 852 202
+e 855 350
+e 855 431
+e 856 762
+e 857 726
+e 857 343
+e 858 56
+e 858 263
+e 859 107
+e 859 988
+e 860 810
+e 860 86
+e 862 412
+e 862 182
+e 864 767
+e 864 853
+e 865 676
+e 865 124
+e 866 505
+e 866 90
+e 867 818
+e 867 854
+e 868 341
+e 868 774
+e 869 404
+e 869 104
+e 870 116
+e 870 255
+e 872 894
+e 873 942
+e 873 647
+e 875 586
+e 875 1001
+e 876 521
+e 876 23
+e 878 510
+e 881 208
+e 882 847
+e 883 874
+e 887 178
+e 888 265
+e 889 633
+e 889 919
+e 890 938
+e 895 932
+e 897 281
+e 897 324
+e 898 740
+e 899 693
+e 899 13
+e 900 879
+e 901 591
+e 904 445
+e 906 267
+e 906 713
+e 909 921
+e 909 982
+e 910 538
+e 910 270
+e 911 744
+e 913 386
+e 913 394
+e 914 465
+e 915 494
+e 915 471
+e 917 739
+e 917 447
+e 919 632
+e 920 425
+e 920 264
+e 922 972
+e 922 373
+e 923 418
+e 924 177
+e 924 405
+e 926 353
+e 927 907
+e 928 842
+e 928 201
+e 933 64
+e 935 814
+e 935 604
+e 936 55
+e 936 110
+e 939 433
+e 941 531
+e 942 664
+e 943 462
+e 945 346
+e 945 931
+e 946 802
+e 946 72
+e 947 908
+e 948 101
+e 950 729
+e 951 697
+e 953 709
+e 953 277
+e 954 269
+e 954 192
+e 955 322
+e 955 725
+e 956 768
+e 957 737
+e 957 449
+e 960 359
+e 961 896
+e 961 980
+e 963 28
+e 965 162
+e 965 42
+e 966 397
+e 966 284
+e 969 573
+e 970 351
+e 970 762
+e 973 164
+e 974 67
+e 974 383
+e 975 230
+e 975 776
+e 978 861
+e 979 564
+e 979 968
+e 981 673
+e 981 916
+e 983 220
+e 983 964
+e 985 117
+e 985 611
+e 987 971
+e 992 971
+e 992 823
+e 993 287
+e 994 863
+e 994 949
+e 995 268
+e 995 289
+e 996 722
+e 996 429
+e 997 62
+e 999 663
+e 1002 514
+e 1003 749
+e 1003 827
+e 1004 243
+e 1005 572

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 0 93
+e 0 33
+e 1 69
+e 2 31
+e 2 61
+e 3 29
+e 4 72
+e 4 23
+e 5 62
+e 5 24
+e 7 95
+e 7 22
+e 8 46
+e 8 97
+e 9 24
+e 9 88
+e 10 102
+e 11 67
+e 11 50
+e 12 43
+e 15 64
+e 16 3
+e 16 104
+e 18 50
+e 18 13
+e 19 59
+e 19 103
+e 20 68
+e 20 51
+e 21 74
+e 25 6
+e 25 43
+e 26 104
+e 26 61
+e 27 102
+e 28 103
+e 28 32
+e 29 38
+e 34 95
+e 34 37
+e 36 32
+e 36 17
+e 41 62
+e 41 105
+e 42 75
+e 42 63
+e 44 12
+e 44 76
+e 45 40
+e 45 51
+e 47 52
+e 48 17
+e 48 102
+e 49 86
+e 49 46
+e 53 96
+e 53 105
+e 55 92
+e 55 91
+e 56 54
+e 56 13
+e 57 23
+e 57 30
+e 58 31
+e 58 52
+e 60 64
+e 60 14
+e 63 30
+e 65 54
+e 65 25
+e 67 21
+e 68 71
+e 70 35
+e 70 66
+e 72 74
+e 73 6
+e 75 87
+e 77 85
+e 77 66
+e 78 84
+e 78 22
+e 79 100
+e 79 87
+e 80 73
+e 80 69
+e 81 33
+e 81 88
+e 82 47
+e 82 1
+e 83 76
+e 83 39
+e 84 43
+e 85 38
+e 86 10
+e 89 39
+e 89 97
+e 90 88
+e 90 13
+e 91 37
+e 92 40
+e 94 27
+e 94 100
+e 96 6
+e 98 15
+e 98 35
+e 99 71
+e 99 93
+e 101 59
+e 101 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 1 9
+e 1 82
+e 2 10
+e 2 13
+e 4 38
+e 4 99
+e 5 58
+e 5 18
+e 6 67
+e 7 77
+e 8 86
+e 8 61
+e 11 70
+e 14 68
+e 15 68
+e 16 60
+e 16 25
+e 17 94
+e 17 33
+e 21 15
+e 21 77
+e 22 3
+e 22 25
+e 23 94
+e 23 19
+e 24 27
+e 24 3
+e 26 36
+e 26 10
+e 27 87
+e 28 40
+e 28 7
+e 29 93
+e 29 66
+e 31 54
+e 31 42
+e 32 55
+e 32 82
+e 35 49
+e 35 51
+e 36 12
+e 37 104
+e 38 89
+e 39 37
+e 39 33
+e 40 105
+e 41 51
+e 41 86
+e 43 78
+e 43 18
+e 44 20
+e 44 58
+e 45 68
+e 45 104
+e 46 84
+e 47 101
+e 47 0
+e 48 34
+e 50 57
+e 50 30
+e 53 54
+e 59 12
+e 59 30
+e 62 104
+e 63 99
+e 63 69
+e 64 14
+e 64 0
+e 65 78
+e 65 45
+e 67 89
+e 71 101
+e 71 20
+e 72 55
+e 72 105
+e 73 92
+e 74 73
+e 74 13
+e 75 66
+e 75 70
+e 76 11
+e 76 96
+e 79 19
+e 80 48
+e 80 79
+e 81 57
+e 81 49
+e 83 34
+e 83 56
+e 84 92
+e 85 6
+e 85 52
+e 87 61
+e 90 102
+e 90 58
+e 91 88
+e 91 60
+e 93 61
+e 95 52
+e 95 18
+e 96 69
+e 97 46
+e 97 9
+e 98 42
+e 98 102
+e 100 62
+e 100 88
+e 103 53
+e 103 56

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 0 60
+e 0 34
+e 1 98
+e 2 58
+e 6 76
+e 6 69
+e 7 37
+e 7 87
+e 8 53
+e 8 66
+e 9 80
+e 9 4
+e 11 65
+e 12 47
+e 12 88
+e 14 53
+e 14 21
+e 15 28
+e 15 66
+e 16 73
+e 19 40
+e 20 97
+e 20 96
+e 21 10
+e 21 18
+e 22 56
+e 22 5
+e 23 87
+e 24 81
+e 24 59
+e 25 37
+e 25 92
+e 26 78
+e 26 94
+e 27 68
+e 27 40
+e 30 4
+e 30 3
+e 31 79
+e 32 85
+e 32 71
+e 33 103
+e 33 41
+e 35 70
+e 35 38
+e 36 10
+e 39 50
+e 39 71
+e 42 46
+e 43 36
+e 43 65
+e 44 82
+e 44 23
+e 45 91
+e 45 92
+e 49 13
+e 49 99
+e 51 76
+e 51 88
+e 52 42
+e 52 31
+e 54 93
+e 55 48
+e 55 95
+e 57 16
+e 57 62
+e 58 3
+e 60 47
+e 61 34
+e 61 59
+e 63 19
+e 63 11
+e 64 13
+e 64 29
+e 67 10
+e 74 54
+e 74 28
+e 75 67
+e 75 99
+e 77 62
+e 77 79
+e 78 18
+e 81 72
+e 82 17
+e 83 5
+e 83 66
+e 84 38
+e 84 56
+e 86 96
+e 86 46
+e 89 68
+e 89 95
+e 90 17
+e 90 41
+e 91 18
+e 93 73
+e 97 3
+e 98 72
+e 100 69
+e 100 80
+e 101 1
+e 101 48
+e 102 2
+e 102 50
+e 103 70
+e 104 94
+e 104 85
+e 105 29
+e 105 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 1 40
+e 1 46
+e 6 7
+e 6 3
+e 10 9
+e 10 91
+e 11 69
+e 12 76
+e 12 79
+e 13 15
+e 13 65
+e 14 11
+e 14 2
+e 16 46
+e 16 37
+e 18 26
+e 18 54
+e 20 5
+e 20 69
+e 22 48
+e 22 78
+e 24 90
+e 24 57
+e 25 80
+e 26 75
+e 27 49
+e 27 82
+e 28 9
+e 28 56
+e 29 48
+e 29 20
+e 30 56
+e 32 101
+e 32 49
+e 33 54
+e 33 21
+e 34 42
+e 34 77
+e 35 75
+e 36 68
+e 38 5
+e 39 25
+e 41 17
+e 43 55
+e 43 31
+e 45 7
+e 45 23
+e 47 8
+e 50 21
+e 51 86
+e 51 57
+e 52 3
+e 52 82
+e 53 63
+e 53 8
+e 58 83
+e 59 94
+e 59 50
+e 61 36
+e 61 60
+e 62 103
+e 62 101
+e 63 5
+e 64 80
+e 66 82
+e 66 78
+e 67 99
+e 67 58
+e 68 4
+e 70 39
+e 70 71
+e 72 19
+e 72 78
+e 73 103
+e 74 4
+e 81 73
+e 81 31
+e 84 41
+e 84 76
+e 85 38
+e 85 23
+e 86 69
+e 87 60
+e 87 0
+e 88 30
+e 88 47
+e 89 64
+e 89 79
+e 92 95
+e 92 19
+e 93 74
+e 93 15
+e 94 65
+e 95 35
+e 96 37
+e 96 4
+e 97 42
+e 97 40
+e 98 2
+e 98 44
+e 99 55
+e 100 90
+e 100 83
+e 102 44
+e 102 0
+e 104 17
+e 104 77
+e 105 71
+e 105 91

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 0 25
+e 1 50
+e 1 85
+e 3 8
+e 3 9
+e 5 90
+e 5 59
+e 6 45
+e 6 36
+e 7 56
+e 13 69
+e 13 94
+e 14 59
+e 14 91
+e 16 66
+e 17 15
+e 18 9
+e 19 37
+e 20 45
+e 20 72
+e 21 84
+e 21 32
+e 23 19
+e 24 18
+e 24 44
+e 27 26
+e 27 2
+e 28 88
+e 28 95
+e 30 65
+e 33 35
+e 33 41
+e 38 51
+e 38 4
+e 39 34
+e 39 55
+e 40 74
+e 40 34
+e 42 60
+e 42 4
+e 43 86
+e 43 50
+e 44 95
+e 46 12
+e 46 73
+e 48 31
+e 48 83
+e 49 97
+e 49 2
+e 51 22
+e 52 30
+e 52 84
+e 53 35
+e 53 76
+e 54 66
+e 57 17
+e 57 8
+e 58 94
+e 58 15
+e 61 103
+e 61 32
+e 62 76
+e 63 47
+e 63 55
+e 64 26
+e 67 29
+e 67 73
+e 68 22
+e 68 25
+e 70 104
+e 70 56
+e 71 100
+e 71 31
+e 74 16
+e 75 65
+e 75 36
+e 77 60
+e 77 102
+e 78 64
+e 78 62
+e 79 93
+e 79 7
+e 80 23
+e 80 12
+e 81 10
+e 81 55
+e 82 102
+e 82 10
+e 86 105
+e 87 83
+e 87 10
+e 89 72
+e 89 69
+e 90 25
+e 92 0
+e 92 41
+e 93 11
+e 96 54
+e 96 88
+e 97 100
+e 98 91
+e 98 85
+e 99 47
+e 99 68
+e 101 29
+e 101 11
+e 103 37
+e 104 22
+e 105 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 0 38
+e 3 53
+e 3 61
+e 5 43
+e 6 21
+e 8 91
+e 8 45
+e 10 92
+e 12 38
+e 14 103
+e 14 51
+e 15 68
+e 15 63
+e 17 47
+e 18 12
+e 18 25
+e 19 90
+e 19 50
+e 20 85
+e 20 94
+e 22 100
+e 22 92
+e 23 6
+e 23 96
+e 24 73
+e 24 7
+e 26 47
+e 27 66
+e 27 28
+e 30 51
+e 30 44
+e 31 105
+e 32 61
+e 34 77
+e 34 69
+e 35 68
+e 35 2
+e 36 64
+e 36 16
+e 39 43
+e 39 4
+e 41 63
+e 41 7
+e 42 5
+e 42 82
+e 46 84
+e 46 16
+e 48 4
+e 48 73
+e 49 74
+e 49 95
+e 52 50
+e 52 45
+e 55 31
+e 55 37
+e 56 32
+e 56 78
+e 57 37
+e 57 11
+e 58 9
+e 59 80
+e 59 11
+e 60 17
+e 60 2
+e 62 7
+e 62 11
+e 65 29
+e 65 40
+e 67 96
+e 67 33
+e 70 53
+e 70 40
+e 71 58
+e 72 25
+e 72 84
+e 74 54
+e 75 13
+e 75 28
+e 76 44
+e 78 1
+e 79 10
+e 81 33
+e 83 54
+e 83 82
+e 86 76
+e 86 81
+e 87 66
+e 87 77
+e 88 85
+e 88 89
+e 90 13
+e 91 9
+e 93 71
+e 93 29
+e 95 89
+e 97 0
+e 97 94
+e 98 26
+e 98 1
+e 99 80
+e 99 101
+e 101 47
+e 101 38
+e 102 69
+e 102 100
+e 103 92
+e 104 79
+e 104 64
+e 105 21

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 0 87
+e 1 89
+e 1 77
+e 3 105
+e 3 81
+e 4 78
+e 6 42
+e 7 16
+e 7 93
+e 8 100
+e 8 5
+e 11 51
+e 11 105
+e 12 0
+e 12 10
+e 14 29
+e 14 73
+e 15 59
+e 15 23
+e 16 27
+e 17 59
+e 17 81
+e 18 4
+e 18 43
+e 21 24
+e 22 38
+e 22 64
+e 25 83
+e 25 68
+e 26 98
+e 26 84
+e 27 48
+e 28 98
+e 28 5
+e 29 20
+e 30 75
+e 30 5
+e 33 48
+e 34 64
+e 34 85
+e 35 93
+e 35 36
+e 37 72
+e 37 83
+e 38 65
+e 39 54
+e 39 10
+e 40 2
+e 40 43
+e 41 96
+e 41 53
+e 44 78
+e 44 96
+e 46 91
+e 46 75
+e 47 2
+e 49 70
+e 49 100
+e 50 90
+e 50 99
+e 51 52
+e 52 42
+e 56 54
+e 56 91
+e 58 6
+e 58 85
+e 60 19
+e 60 31
+e 61 76
+e 61 48
+e 62 9
+e 63 68
+e 63 76
+e 66 97
+e 66 104
+e 67 99
+e 67 45
+e 69 33
+e 69 32
+e 70 103
+e 71 57
+e 71 36
+e 73 45
+e 74 55
+e 74 57
+e 79 72
+e 79 13
+e 80 62
+e 80 31
+e 84 87
+e 84 9
+e 86 53
+e 86 75
+e 88 65
+e 88 13
+e 89 87
+e 90 82
+e 92 9
+e 94 92
+e 94 55
+e 95 19
+e 95 24
+e 97 23
+e 101 32
+e 101 20
+e 102 47
+e 102 21
+e 103 82
+e 104 77

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 1 32
+e 2 5
+e 2 11
+e 4 36
+e 6 82
+e 7 97
+e 7 47
+e 8 25
+e 8 98
+e 9 99
+e 10 69
+e 13 16
+e 13 73
+e 14 53
+e 14 34
+e 15 23
+e 15 12
+e 16 87
+e 17 5
+e 17 42
+e 18 102
+e 18 54
+e 19 105
+e 19 69
+e 20 28
+e 20 92
+e 21 90
+e 21 105
+e 24 39
+e 25 35
+e 26 55
+e 26 60
+e 27 3
+e 27 43
+e 29 30
+e 29 12
+e 33 104
+e 35 87
+e 37 0
+e 37 42
+e 38 45
+e 38 47
+e 40 6
+e 40 57
+e 41 57
+e 41 65
+e 44 100
+e 44 46
+e 48 94
+e 49 22
+e 49 94
+e 51 30
+e 51 44
+e 52 73
+e 52 104
+e 55 100
+e 56 0
+e 58 92
+e 58 83
+e 59 74
+e 59 3
+e 61 10
+e 61 33
+e 62 67
+e 62 50
+e 63 56
+e 63 102
+e 64 9
+e 64 54
+e 66 22
+e 66 65
+e 68 91
+e 68 53
+e 70 11
+e 70 74
+e 71 76
+e 75 28
+e 76 43
+e 77 75
+e 77 72
+e 79 83
+e 79 23
+e 80 98
+e 80 12
+e 81 48
+e 81 24
+e 82 99
+e 84 78
+e 84 31
+e 85 50
+e 85 23
+e 86 100
+e 88 86
+e 88 39
+e 89 71
+e 89 78
+e 90 43
+e 91 46
+e 93 45
+e 93 36
+e 95 1
+e 95 4
+e 96 32
+e 96 72
+e 97 46
+e 101 34
+e 101 31
+e 103 67
+e 103 60

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 1 60
+e 2 76
+e 2 105
+e 3 18
+e 3 21
+e 5 15
+e 6 1
+e 6 13
+e 7 70
+e 7 100
+e 9 57
+e 9 43
+e 10 17
+e 14 53
+e 14 41
+e 16 92
+e 16 41
+e 17 96
+e 19 97
+e 19 82
+e 20 99
+e 20 12
+e 24 54
+e 24 65
+e 25 23
+e 27 96
+e 29 33
+e 29 69
+e 32 61
+e 34 50
+e 34 28
+e 35 15
+e 35 50
+e 40 88
+e 40 78
+e 42 47
+e 42 26
+e 44 18
+e 44 98
+e 45 75
+e 45 77
+e 46 78
+e 46 21
+e 49 57
+e 49 0
+e 51 94
+e 51 26
+e 52 30
+e 52 36
+e 53 31
+e 54 31
+e 55 4
+e 55 8
+e 56 92
+e 56 76
+e 58 38
+e 58 64
+e 59 48
+e 59 100
+e 62 93
+e 62 11
+e 63 102
+e 63 0
+e 66 61
+e 67 37
+e 68 5
+e 68 69
+e 71 80
+e 71 96
+e 72 67
+e 72 39
+e 73 65
+e 74 37
+e 74 64
+e 75 33
+e 77 43
+e 79 39
+e 79 11
+e 81 66
+e 81 4
+e 82 8
+e 83 10
+e 83 94
+e 84 27
+e 84 99
+e 85 95
+e 85 70
+e 86 38
+e 86 30
+e 87 36
+e 87 80
+e 88 32
+e 89 25
+e 89 73
+e 90 105
+e 90 21
+e 91 28
+e 91 105
+e 93 22
+e 95 104
+e 97 12
+e 98 31
+e 98 60
+e 101 13
+e 101 47
+e 102 60
+e 103 48
+e 103 23
+e 104 22

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,110 @@
+p edge 106 109
+e 0 23
+e 2 89
+e 2 105
+e 4 50
+e 4 101
+e 5 96
+e 5 76
+e 7 19
+e 8 24
+e 8 38
+e 9 41
+e 9 14
+e 10 16
+e 10 51
+e 11 92
+e 11 6
+e 15 18
+e 15 103
+e 18 13
+e 20 0
+e 20 48
+e 22 65
+e 22 70
+e 25 79
+e 26 88
+e 26 33
+e 27 13
+e 27 12
+e 28 35
+e 28 83
+e 30 32
+e 31 52
+e 33 56
+e 34 44
+e 34 95
+e 36 46
+e 37 102
+e 37 95
+e 41 43
+e 43 29
+e 44 79
+e 45 78
+e 45 31
+e 47 102
+e 47 60
+e 48 51
+e 53 36
+e 53 40
+e 54 21
+e 54 83
+e 55 40
+e 55 96
+e 57 30
+e 58 29
+e 59 65
+e 59 12
+e 61 49
+e 61 52
+e 62 58
+e 62 3
+e 63 73
+e 63 68
+e 64 38
+e 64 35
+e 66 42
+e 66 100
+e 67 69
+e 67 16
+e 69 32
+e 71 60
+e 71 35
+e 72 3
+e 72 23
+e 74 94
+e 74 24
+e 75 42
+e 75 17
+e 77 49
+e 77 105
+e 78 39
+e 80 104
+e 80 81
+e 82 14
+e 82 76
+e 84 94
+e 85 84
+e 85 1
+e 86 57
+e 86 21
+e 87 68
+e 87 29
+e 88 100
+e 89 46
+e 90 25
+e 90 56
+e 91 39
+e 91 1
+e 92 19
+e 93 103
+e 93 6
+e 97 81
+e 97 17
+e 98 50
+e 98 83
+e 99 70
+e 99 73
+e 101 79
+e 101 46
+e 104 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 14
+e 0 12
+e 2 10
+e 3 1
+e 4 7
+e 4 1
+e 5 13
+e 5 3
+e 6 3
+e 6 10
+e 8 11
+e 8 12
+e 9 2
+e 9 12
+e 11 7
+e 13 7
+e 14 1
+e 15 4
+e 15 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 5
+e 0 4
+e 1 14
+e 1 8
+e 2 7
+e 2 8
+e 4 10
+e 5 12
+e 6 15
+e 6 8
+e 7 10
+e 9 4
+e 9 3
+e 11 12
+e 11 10
+e 13 11
+e 13 3
+e 14 12
+e 15 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 15
+e 2 13
+e 2 11
+e 3 15
+e 4 7
+e 5 7
+e 6 15
+e 6 7
+e 8 5
+e 8 1
+e 9 6
+e 9 1
+e 10 3
+e 10 5
+e 12 0
+e 12 11
+e 13 1
+e 14 4
+e 14 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 13
+e 0 10
+e 3 6
+e 3 11
+e 4 14
+e 5 7
+e 5 1
+e 6 2
+e 7 2
+e 7 14
+e 8 11
+e 8 1
+e 9 4
+e 9 10
+e 11 14
+e 12 2
+e 13 1
+e 15 12
+e 15 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 14
+e 1 10
+e 1 7
+e 2 4
+e 3 9
+e 3 13
+e 5 0
+e 5 13
+e 6 4
+e 6 14
+e 8 6
+e 8 7
+e 9 4
+e 10 14
+e 11 15
+e 11 13
+e 12 2
+e 12 10
+e 15 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 9
+e 2 9
+e 3 11
+e 3 7
+e 4 1
+e 5 1
+e 6 7
+e 10 4
+e 10 8
+e 11 9
+e 11 1
+e 12 0
+e 12 8
+e 13 5
+e 13 7
+e 14 2
+e 14 5
+e 15 6
+e 15 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 1
+e 0 13
+e 1 14
+e 1 12
+e 2 14
+e 3 6
+e 3 10
+e 4 2
+e 4 8
+e 5 15
+e 5 10
+e 6 14
+e 7 12
+e 8 12
+e 9 8
+e 9 13
+e 11 7
+e 11 10
+e 15 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 2 12
+e 2 5
+e 3 7
+e 4 1
+e 5 1
+e 6 7
+e 6 1
+e 8 5
+e 8 13
+e 9 3
+e 9 0
+e 10 11
+e 10 0
+e 11 13
+e 12 7
+e 14 6
+e 14 13
+e 15 4
+e 15 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 1 3
+e 1 15
+e 2 6
+e 3 14
+e 4 11
+e 4 8
+e 5 0
+e 7 10
+e 7 14
+e 8 6
+e 9 5
+e 9 15
+e 10 0
+e 10 6
+e 11 0
+e 12 8
+e 12 14
+e 13 2
+e 13 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,20 @@
+p edge 16 19
+e 0 14
+e 0 5
+e 1 11
+e 1 10
+e 2 4
+e 2 5
+e 4 8
+e 6 3
+e 7 6
+e 7 11
+e 9 12
+e 9 10
+e 11 8
+e 12 3
+e 12 8
+e 13 15
+e 13 5
+e 14 3
+e 15 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 4
+e 0 5
+e 1 3
+e 2 5
+e 6 2
+e 8 6
+e 8 3
+e 9 1
+e 10 1
+e 10 5
+e 11 7
+e 11 3
+e 12 9
+e 13 7
+e 13 0
+e 14 2
+e 15 12
+e 15 4
+e 16 14
+e 16 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 14
+e 0 8
+e 2 15
+e 2 8
+e 3 4
+e 3 15
+e 4 16
+e 5 1
+e 5 2
+e 6 9
+e 6 13
+e 7 11
+e 9 11
+e 10 1
+e 10 13
+e 11 8
+e 12 7
+e 12 15
+e 14 13
+e 16 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 11
+e 1 7
+e 1 2
+e 3 12
+e 3 11
+e 4 15
+e 7 0
+e 8 6
+e 8 11
+e 9 5
+e 9 8
+e 10 4
+e 10 6
+e 12 2
+e 13 16
+e 13 6
+e 14 5
+e 14 2
+e 15 12
+e 16 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 5
+e 0 4
+e 1 15
+e 1 5
+e 2 6
+e 2 0
+e 7 10
+e 8 13
+e 8 5
+e 9 6
+e 9 3
+e 10 3
+e 11 14
+e 12 10
+e 12 4
+e 13 14
+e 14 4
+e 15 7
+e 16 11
+e 16 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 10
+e 0 14
+e 1 2
+e 1 3
+e 2 14
+e 4 9
+e 5 9
+e 6 10
+e 6 16
+e 7 4
+e 7 14
+e 8 5
+e 8 12
+e 9 3
+e 11 15
+e 13 11
+e 13 12
+e 15 2
+e 16 12
+e 16 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 12
+e 2 6
+e 3 11
+e 3 4
+e 5 9
+e 5 1
+e 7 13
+e 7 1
+e 8 12
+e 8 6
+e 9 0
+e 10 14
+e 10 4
+e 11 2
+e 12 4
+e 13 2
+e 15 1
+e 15 6
+e 16 14
+e 16 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 2
+e 1 16
+e 2 10
+e 5 3
+e 5 4
+e 6 9
+e 6 5
+e 7 9
+e 7 10
+e 8 14
+e 8 3
+e 11 16
+e 12 2
+e 12 4
+e 13 1
+e 13 10
+e 14 0
+e 15 11
+e 15 3
+e 16 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 16
+e 0 15
+e 2 1
+e 2 3
+e 3 5
+e 3 8
+e 4 11
+e 4 5
+e 6 9
+e 7 1
+e 7 15
+e 9 15
+e 10 9
+e 10 8
+e 11 6
+e 12 8
+e 13 14
+e 13 5
+e 14 12
+e 16 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 1 13
+e 1 0
+e 2 16
+e 4 13
+e 6 11
+e 6 14
+e 7 5
+e 7 9
+e 8 15
+e 8 3
+e 9 3
+e 9 0
+e 10 2
+e 10 3
+e 11 16
+e 12 5
+e 12 14
+e 13 14
+e 15 4
+e 16 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 13
+e 1 8
+e 1 13
+e 2 0
+e 3 7
+e 3 10
+e 5 4
+e 5 16
+e 6 4
+e 6 13
+e 7 2
+e 8 11
+e 9 0
+e 9 14
+e 11 14
+e 12 15
+e 12 10
+e 15 11
+e 16 10
+e 16 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 17 20
+e 0 15
+e 0 3
+e 1 6
+e 1 11
+e 3 12
+e 3 11
+e 4 7
+e 4 2
+e 5 9
+e 5 12
+e 6 2
+e 7 8
+e 8 11
+e 9 8
+e 10 14
+e 13 15
+e 13 2
+e 14 6
+e 16 10
+e 16 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 4
+e 0 5
+e 2 3
+e 2 4
+e 2 5
+e 6 1
+e 6 5
+e 9 7
+e 9 1
+e 11 8
+e 12 10
+e 12 4
+e 13 8
+e 13 3
+e 14 1
+e 14 3
+e 15 11
+e 16 10
+e 16 7
+e 17 15
+e 17 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 12
+e 0 5
+e 1 15
+e 2 1
+e 2 0
+e 3 16
+e 3 4
+e 7 6
+e 7 5
+e 8 16
+e 8 12
+e 10 13
+e 10 12
+e 10 5
+e 11 6
+e 11 13
+e 14 4
+e 14 6
+e 15 9
+e 17 9
+e 17 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 1 11
+e 1 9
+e 2 16
+e 4 3
+e 4 9
+e 6 0
+e 6 3
+e 7 11
+e 7 5
+e 10 8
+e 10 11
+e 12 2
+e 12 4
+e 13 17
+e 13 5
+e 14 5
+e 14 3
+e 14 9
+e 15 0
+e 15 8
+e 16 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 16
+e 2 0
+e 4 11
+e 4 3
+e 5 11
+e 5 1
+e 6 3
+e 6 15
+e 6 1
+e 7 9
+e 7 15
+e 8 16
+e 8 3
+e 12 2
+e 12 17
+e 13 10
+e 13 11
+e 14 9
+e 14 10
+e 17 15
+e 17 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 16
+e 0 5
+e 2 1
+e 2 4
+e 3 12
+e 5 15
+e 5 4
+e 6 14
+e 6 15
+e 8 14
+e 8 10
+e 9 12
+e 9 7
+e 11 1
+e 11 7
+e 13 10
+e 13 1
+e 16 3
+e 17 7
+e 17 15
+e 17 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 12
+e 0 3
+e 2 8
+e 2 7
+e 5 4
+e 6 3
+e 6 7
+e 6 15
+e 9 17
+e 9 11
+e 10 8
+e 10 1
+e 11 7
+e 11 15
+e 13 1
+e 13 12
+e 14 4
+e 14 3
+e 16 12
+e 16 15
+e 17 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 5
+e 0 9
+e 3 9
+e 3 6
+e 4 10
+e 4 5
+e 7 10
+e 7 1
+e 8 9
+e 8 2
+e 11 12
+e 11 2
+e 13 1
+e 13 6
+e 14 2
+e 14 1
+e 14 6
+e 15 12
+e 16 15
+e 17 16
+e 17 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 12
+e 0 8
+e 1 17
+e 1 16
+e 2 7
+e 3 8
+e 3 16
+e 4 7
+e 4 5
+e 9 8
+e 9 5
+e 10 2
+e 11 5
+e 11 17
+e 11 16
+e 13 10
+e 13 1
+e 14 6
+e 14 17
+e 15 6
+e 15 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 1
+e 0 8
+e 3 8
+e 3 2
+e 4 8
+e 4 13
+e 5 2
+e 5 9
+e 5 13
+e 6 16
+e 7 9
+e 7 13
+e 11 15
+e 11 1
+e 12 6
+e 12 7
+e 14 15
+e 14 9
+e 16 10
+e 17 10
+e 17 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 2 0
+e 2 9
+e 3 5
+e 3 4
+e 6 1
+e 6 11
+e 7 13
+e 7 5
+e 8 11
+e 8 4
+e 10 9
+e 10 5
+e 10 4
+e 12 13
+e 12 1
+e 14 16
+e 14 3
+e 15 0
+e 16 15
+e 17 11
+e 17 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 18 21
+e 0 4
+e 0 15
+e 1 11
+e 2 17
+e 2 15
+e 3 12
+e 3 2
+e 5 6
+e 5 17
+e 5 15
+e 8 4
+e 8 6
+e 9 16
+e 9 7
+e 10 11
+e 10 6
+e 12 1
+e 13 16
+e 13 17
+e 14 7
+e 14 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 1 3
+e 1 4
+e 1 5
+e 2 5
+e 6 3
+e 7 6
+e 9 0
+e 9 3
+e 10 4
+e 11 7
+e 11 2
+e 12 8
+e 14 0
+e 14 4
+e 15 8
+e 15 2
+e 16 13
+e 16 10
+e 17 0
+e 17 5
+e 18 13
+e 18 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 0 4
+e 1 16
+e 1 14
+e 2 14
+e 3 7
+e 3 18
+e 4 5
+e 6 7
+e 6 12
+e 9 17
+e 9 2
+e 10 0
+e 10 2
+e 11 5
+e 11 8
+e 11 14
+e 12 17
+e 13 16
+e 13 8
+e 15 16
+e 15 5
+e 18 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 2 11
+e 2 10
+e 4 10
+e 4 0
+e 4 8
+e 5 11
+e 5 8
+e 6 7
+e 7 10
+e 9 11
+e 9 0
+e 12 3
+e 13 0
+e 14 1
+e 14 12
+e 15 8
+e 16 3
+e 16 15
+e 17 6
+e 17 15
+e 18 1
+e 18 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 0 5
+e 2 15
+e 3 13
+e 3 8
+e 3 12
+e 4 12
+e 5 13
+e 6 15
+e 6 4
+e 9 1
+e 9 12
+e 10 0
+e 10 4
+e 11 1
+e 11 8
+e 14 8
+e 16 7
+e 16 14
+e 17 1
+e 17 13
+e 18 7
+e 18 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 2 14
+e 2 7
+e 5 6
+e 7 18
+e 8 1
+e 8 5
+e 9 0
+e 9 18
+e 10 4
+e 10 6
+e 10 18
+e 11 0
+e 11 4
+e 12 3
+e 12 7
+e 13 1
+e 13 17
+e 14 15
+e 15 4
+e 16 0
+e 16 6
+e 17 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 0 16
+e 3 1
+e 4 2
+e 4 0
+e 5 9
+e 6 18
+e 7 18
+e 7 5
+e 8 3
+e 10 17
+e 10 16
+e 11 2
+e 11 6
+e 12 8
+e 12 5
+e 13 17
+e 13 9
+e 14 1
+e 14 16
+e 14 9
+e 15 17
+e 15 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 0 5
+e 0 18
+e 1 5
+e 1 6
+e 6 3
+e 7 4
+e 7 2
+e 7 10
+e 8 13
+e 8 14
+e 9 17
+e 9 10
+e 11 3
+e 11 14
+e 12 17
+e 12 4
+e 13 15
+e 14 10
+e 15 4
+e 16 17
+e 16 2
+e 18 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 1 0
+e 2 18
+e 2 9
+e 3 8
+e 3 9
+e 3 0
+e 4 18
+e 4 0
+e 5 18
+e 5 8
+e 7 12
+e 7 16
+e 10 13
+e 10 1
+e 11 8
+e 13 11
+e 14 12
+e 14 15
+e 15 9
+e 16 6
+e 17 6
+e 17 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 0 14
+e 0 11
+e 1 12
+e 2 13
+e 3 5
+e 4 3
+e 4 1
+e 5 11
+e 6 13
+e 6 1
+e 7 8
+e 7 2
+e 9 10
+e 15 11
+e 15 10
+e 15 12
+e 16 14
+e 16 12
+e 17 8
+e 17 9
+e 18 14
+e 18 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 4 2
+e 4 16
+e 5 0
+e 5 16
+e 5 1
+e 6 2
+e 6 1
+e 7 10
+e 8 3
+e 10 0
+e 11 1
+e 12 16
+e 13 7
+e 13 11
+e 14 9
+e 14 12
+e 15 3
+e 15 11
+e 17 2
+e 17 0
+e 18 9
+e 18 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 19 22
+e 0 13
+e 0 9
+e 2 13
+e 2 1
+e 3 9
+e 3 1
+e 3 12
+e 5 8
+e 5 14
+e 6 15
+e 7 4
+e 7 18
+e 8 16
+e 10 4
+e 10 6
+e 11 13
+e 11 12
+e 14 12
+e 16 9
+e 17 15
+e 17 14
+e 18 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 3
+e 0 4
+e 0 5
+e 1 5
+e 2 3
+e 2 5
+e 8 7
+e 9 6
+e 10 1
+e 10 3
+e 11 6
+e 12 1
+e 13 9
+e 13 7
+e 14 11
+e 15 4
+e 16 14
+e 17 15
+e 17 8
+e 18 2
+e 18 4
+e 19 16
+e 19 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 18
+e 1 7
+e 1 13
+e 2 18
+e 3 8
+e 3 11
+e 4 2
+e 4 14
+e 5 11
+e 5 17
+e 6 10
+e 6 16
+e 7 15
+e 8 17
+e 9 0
+e 10 9
+e 12 11
+e 12 15
+e 12 17
+e 13 14
+e 16 8
+e 19 5
+e 19 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 6
+e 0 4
+e 1 12
+e 2 10
+e 3 14
+e 3 12
+e 5 6
+e 6 11
+e 7 15
+e 7 8
+e 9 8
+e 10 19
+e 13 4
+e 13 8
+e 13 11
+e 14 19
+e 15 4
+e 15 11
+e 16 18
+e 16 5
+e 17 9
+e 17 1
+e 18 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 1 10
+e 3 19
+e 3 0
+e 4 2
+e 5 0
+e 6 11
+e 6 18
+e 8 13
+e 9 5
+e 9 4
+e 10 7
+e 11 1
+e 12 7
+e 14 8
+e 14 15
+e 16 15
+e 16 0
+e 16 13
+e 17 12
+e 17 2
+e 18 8
+e 19 15
+e 19 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 17
+e 0 19
+e 1 18
+e 3 10
+e 3 8
+e 4 9
+e 4 7
+e 5 14
+e 7 8
+e 9 6
+e 10 18
+e 11 12
+e 11 6
+e 12 19
+e 12 2
+e 13 17
+e 14 1
+e 15 5
+e 15 13
+e 16 19
+e 16 6
+e 16 2
+e 17 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 5
+e 0 15
+e 1 17
+e 3 12
+e 3 16
+e 4 10
+e 4 11
+e 5 9
+e 7 19
+e 7 2
+e 8 4
+e 8 6
+e 9 1
+e 12 6
+e 13 10
+e 13 6
+e 13 11
+e 14 18
+e 14 10
+e 15 18
+e 16 2
+e 18 11
+e 19 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 9
+e 0 2
+e 1 15
+e 1 13
+e 1 18
+e 2 16
+e 3 16
+e 3 15
+e 5 8
+e 5 10
+e 7 14
+e 7 4
+e 8 13
+e 9 11
+e 10 4
+e 11 19
+e 12 15
+e 12 18
+e 14 6
+e 16 18
+e 17 12
+e 17 13
+e 19 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 19
+e 0 7
+e 0 17
+e 1 17
+e 2 4
+e 5 19
+e 5 17
+e 6 3
+e 8 1
+e 8 19
+e 9 7
+e 10 3
+e 11 6
+e 11 4
+e 12 10
+e 13 1
+e 14 9
+e 14 2
+e 15 16
+e 15 13
+e 16 12
+e 18 5
+e 18 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 0 14
+e 1 9
+e 1 5
+e 2 0
+e 2 13
+e 3 12
+e 4 7
+e 4 3
+e 6 17
+e 6 12
+e 7 8
+e 10 1
+e 10 8
+e 11 5
+e 13 11
+e 14 19
+e 15 9
+e 15 8
+e 15 5
+e 16 11
+e 16 9
+e 17 18
+e 19 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 1 4
+e 1 6
+e 3 15
+e 4 0
+e 5 12
+e 5 0
+e 6 7
+e 8 10
+e 10 11
+e 12 2
+e 12 11
+e 13 17
+e 13 7
+e 14 3
+e 14 8
+e 15 16
+e 16 9
+e 17 9
+e 18 10
+e 18 2
+e 19 2
+e 19 0
+e 19 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 20 23
+e 1 0
+e 2 14
+e 2 4
+e 3 5
+e 4 11
+e 5 9
+e 6 3
+e 6 7
+e 7 16
+e 8 1
+e 8 11
+e 9 0
+e 10 12
+e 10 15
+e 12 18
+e 12 19
+e 13 16
+e 13 18
+e 14 15
+e 16 19
+e 17 18
+e 17 15
+e 17 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 0 3
+e 2 3
+e 2 5
+e 6 1
+e 8 0
+e 10 9
+e 10 7
+e 11 4
+e 13 8
+e 13 4
+e 14 2
+e 14 4
+e 15 0
+e 15 5
+e 16 7
+e 16 5
+e 17 12
+e 17 9
+e 18 12
+e 18 6
+e 19 1
+e 19 3
+e 20 11
+e 20 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 1 0
+e 2 7
+e 2 16
+e 3 6
+e 3 1
+e 5 19
+e 5 16
+e 7 13
+e 8 6
+e 8 4
+e 10 14
+e 10 0
+e 11 13
+e 11 17
+e 13 9
+e 14 16
+e 15 4
+e 15 12
+e 18 0
+e 18 9
+e 19 9
+e 19 17
+e 20 12
+e 20 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 0 10
+e 0 4
+e 1 14
+e 1 16
+e 3 19
+e 3 2
+e 4 18
+e 5 1
+e 5 2
+e 6 8
+e 6 16
+e 7 10
+e 7 15
+e 9 2
+e 11 14
+e 12 18
+e 12 14
+e 13 11
+e 13 16
+e 17 9
+e 17 18
+e 19 11
+e 20 15
+e 20 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 0 4
+e 0 8
+e 1 9
+e 1 2
+e 3 2
+e 6 18
+e 6 8
+e 9 17
+e 10 7
+e 11 7
+e 11 4
+e 12 3
+e 12 7
+e 13 15
+e 13 5
+e 14 0
+e 14 2
+e 16 5
+e 16 18
+e 17 4
+e 19 15
+e 19 10
+e 20 17
+e 20 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 1 8
+e 1 17
+e 2 3
+e 4 0
+e 4 7
+e 5 12
+e 5 17
+e 9 7
+e 9 12
+e 10 1
+e 10 3
+e 11 19
+e 13 6
+e 14 11
+e 14 3
+e 15 0
+e 15 13
+e 16 19
+e 16 17
+e 18 2
+e 18 6
+e 19 8
+e 20 6
+e 20 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 1 15
+e 2 7
+e 3 14
+e 4 17
+e 4 15
+e 6 0
+e 6 18
+e 8 18
+e 8 5
+e 9 0
+e 9 2
+e 10 5
+e 10 11
+e 13 3
+e 13 15
+e 14 12
+e 16 14
+e 16 11
+e 17 12
+e 17 11
+e 19 1
+e 19 7
+e 20 7
+e 20 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 2 5
+e 3 2
+e 3 0
+e 6 12
+e 6 7
+e 8 15
+e 8 14
+e 9 14
+e 10 14
+e 10 5
+e 12 5
+e 12 0
+e 13 11
+e 13 1
+e 15 7
+e 16 4
+e 16 0
+e 17 18
+e 17 7
+e 18 2
+e 19 1
+e 19 4
+e 20 11
+e 20 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 0 8
+e 0 15
+e 1 9
+e 1 20
+e 2 7
+e 2 6
+e 3 19
+e 3 15
+e 5 18
+e 5 14
+e 6 20
+e 8 4
+e 8 14
+e 9 15
+e 10 13
+e 10 14
+e 11 16
+e 11 13
+e 12 20
+e 12 4
+e 17 7
+e 17 16
+e 18 4
+e 19 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 0 20
+e 1 8
+e 2 0
+e 2 8
+e 3 7
+e 3 17
+e 4 15
+e 4 9
+e 5 1
+e 5 14
+e 10 6
+e 10 9
+e 11 14
+e 12 20
+e 12 9
+e 13 17
+e 13 15
+e 16 7
+e 16 11
+e 18 10
+e 18 8
+e 19 14
+e 19 6
+e 20 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 0 17
+e 1 9
+e 1 19
+e 2 8
+e 2 12
+e 3 10
+e 5 19
+e 5 8
+e 6 13
+e 6 12
+e 7 15
+e 7 17
+e 11 9
+e 11 3
+e 13 4
+e 14 0
+e 14 10
+e 15 13
+e 16 10
+e 16 4
+e 18 20
+e 18 17
+e 20 4
+e 20 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 21 24
+e 0 6
+e 0 7
+e 1 15
+e 2 8
+e 2 19
+e 4 1
+e 4 5
+e 9 17
+e 9 3
+e 10 6
+e 11 8
+e 11 17
+e 12 10
+e 13 3
+e 13 7
+e 14 10
+e 14 7
+e 16 0
+e 16 15
+e 18 5
+e 18 6
+e 19 5
+e 20 12
+e 20 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 0 3
+e 2 3
+e 2 5
+e 6 1
+e 8 0
+e 10 7
+e 11 4
+e 13 8
+e 13 4
+e 14 2
+e 14 4
+e 15 0
+e 15 5
+e 16 7
+e 16 5
+e 17 12
+e 17 9
+e 18 12
+e 18 6
+e 19 1
+e 19 3
+e 20 11
+e 20 1
+e 21 10
+e 21 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 1 0
+e 1 9
+e 2 6
+e 3 17
+e 3 2
+e 4 17
+e 4 11
+e 5 6
+e 5 0
+e 7 10
+e 7 9
+e 8 20
+e 8 6
+e 10 0
+e 13 16
+e 13 11
+e 14 1
+e 14 15
+e 16 12
+e 18 10
+e 19 18
+e 19 15
+e 20 15
+e 21 12
+e 21 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 1 10
+e 1 0
+e 2 14
+e 2 5
+e 4 0
+e 6 3
+e 6 13
+e 7 16
+e 8 18
+e 9 2
+e 9 0
+e 10 20
+e 11 7
+e 11 13
+e 12 4
+e 12 18
+e 15 20
+e 15 5
+e 17 3
+e 17 8
+e 19 16
+e 19 5
+e 20 14
+e 21 18
+e 21 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 1 15
+e 1 16
+e 2 21
+e 2 15
+e 3 12
+e 3 10
+e 4 15
+e 5 16
+e 5 14
+e 6 0
+e 6 7
+e 8 18
+e 8 7
+e 9 5
+e 9 10
+e 12 19
+e 13 11
+e 13 14
+e 17 19
+e 17 14
+e 18 11
+e 19 16
+e 20 0
+e 20 4
+e 21 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 1 12
+e 1 6
+e 2 5
+e 2 6
+e 3 13
+e 3 0
+e 4 8
+e 5 12
+e 9 7
+e 9 6
+e 10 20
+e 10 0
+e 11 1
+e 11 8
+e 14 4
+e 14 15
+e 16 19
+e 16 8
+e 17 13
+e 17 21
+e 18 15
+e 18 12
+e 19 5
+e 20 7
+e 21 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 0 19
+e 0 11
+e 2 13
+e 3 15
+e 3 4
+e 5 7
+e 5 4
+e 6 13
+e 6 12
+e 8 9
+e 8 13
+e 10 11
+e 14 10
+e 14 9
+e 15 1
+e 16 9
+e 17 6
+e 17 11
+e 18 1
+e 18 12
+e 19 2
+e 20 7
+e 20 16
+e 21 2
+e 21 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 1 14
+e 1 7
+e 2 17
+e 2 5
+e 4 19
+e 4 11
+e 6 5
+e 8 0
+e 8 3
+e 10 19
+e 12 14
+e 13 18
+e 13 3
+e 14 11
+e 15 12
+e 15 5
+e 16 9
+e 16 7
+e 17 11
+e 17 7
+e 18 9
+e 20 6
+e 20 19
+e 21 0
+e 21 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 0 8
+e 0 16
+e 2 20
+e 2 1
+e 4 15
+e 4 19
+e 5 7
+e 5 13
+e 7 1
+e 7 19
+e 9 18
+e 9 20
+e 10 15
+e 11 3
+e 12 10
+e 12 13
+e 14 8
+e 14 6
+e 15 1
+e 16 20
+e 17 3
+e 17 19
+e 18 13
+e 21 11
+e 21 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 2 8
+e 3 18
+e 3 17
+e 4 12
+e 4 19
+e 6 14
+e 6 8
+e 7 0
+e 9 2
+e 9 0
+e 10 1
+e 10 17
+e 11 20
+e 11 8
+e 12 1
+e 13 15
+e 13 19
+e 14 18
+e 16 0
+e 16 5
+e 18 5
+e 20 5
+e 20 17
+e 21 15
+e 21 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 2 5
+e 2 17
+e 3 8
+e 3 17
+e 4 10
+e 5 20
+e 5 18
+e 6 0
+e 7 6
+e 7 1
+e 8 15
+e 11 0
+e 11 18
+e 12 10
+e 12 20
+e 13 21
+e 13 10
+e 14 15
+e 14 18
+e 15 20
+e 16 9
+e 16 4
+e 19 9
+e 19 1
+e 21 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 22 25
+e 0 21
+e 1 18
+e 1 8
+e 2 12
+e 4 0
+e 4 10
+e 6 0
+e 7 3
+e 7 10
+e 11 12
+e 11 21
+e 13 15
+e 13 9
+e 14 6
+e 14 9
+e 15 21
+e 15 10
+e 16 19
+e 16 12
+e 17 5
+e 17 2
+e 18 3
+e 19 9
+e 20 5
+e 20 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 1 3
+e 1 5
+e 2 4
+e 2 5
+e 8 7
+e 8 1
+e 10 7
+e 12 2
+e 12 3
+e 13 0
+e 13 5
+e 14 9
+e 14 0
+e 15 6
+e 16 9
+e 16 4
+e 17 10
+e 17 4
+e 18 11
+e 18 3
+e 19 15
+e 19 11
+e 20 0
+e 21 6
+e 22 21
+e 22 20

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 0 2
+e 0 10
+e 3 5
+e 3 1
+e 4 5
+e 4 2
+e 6 1
+e 7 11
+e 7 14
+e 8 16
+e 8 2
+e 11 20
+e 12 1
+e 12 10
+e 13 20
+e 15 13
+e 15 6
+e 16 18
+e 17 18
+e 17 22
+e 19 0
+e 19 9
+e 21 14
+e 21 9
+e 22 9
+e 22 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 1 13
+e 1 14
+e 2 14
+e 2 18
+e 3 21
+e 3 18
+e 4 5
+e 4 18
+e 6 4
+e 6 21
+e 8 9
+e 10 9
+e 10 3
+e 11 13
+e 11 5
+e 12 7
+e 12 21
+e 15 8
+e 15 5
+e 16 0
+e 17 16
+e 17 7
+e 19 20
+e 19 22
+e 20 0
+e 22 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 4 0
+e 5 2
+e 5 3
+e 6 16
+e 6 11
+e 8 10
+e 8 5
+e 9 12
+e 9 7
+e 13 12
+e 13 11
+e 14 7
+e 15 7
+e 15 3
+e 16 10
+e 17 21
+e 17 2
+e 18 0
+e 19 1
+e 19 2
+e 20 18
+e 20 1
+e 21 11
+e 21 3
+e 22 4
+e 22 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 0 20
+e 3 17
+e 4 17
+e 4 22
+e 5 0
+e 5 7
+e 7 15
+e 8 12
+e 8 2
+e 9 19
+e 9 2
+e 10 3
+e 10 18
+e 11 6
+e 11 18
+e 12 18
+e 12 1
+e 13 15
+e 13 1
+e 14 20
+e 16 6
+e 16 15
+e 21 14
+e 21 19
+e 22 2
+e 22 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 1 8
+e 1 2
+e 3 22
+e 6 7
+e 6 10
+e 7 5
+e 9 5
+e 10 0
+e 11 22
+e 11 18
+e 12 9
+e 12 8
+e 13 0
+e 13 4
+e 14 3
+e 14 17
+e 16 15
+e 16 17
+e 18 2
+e 18 4
+e 19 21
+e 19 2
+e 20 15
+e 20 0
+e 21 17
+e 21 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 0 22
+e 2 8
+e 2 15
+e 3 16
+e 3 15
+e 4 5
+e 4 16
+e 5 22
+e 6 0
+e 6 19
+e 7 13
+e 7 17
+e 8 12
+e 8 17
+e 9 15
+e 9 17
+e 10 14
+e 10 12
+e 11 18
+e 11 13
+e 14 1
+e 19 13
+e 20 18
+e 20 12
+e 21 1
+e 21 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 0 9
+e 0 5
+e 1 7
+e 2 5
+e 2 12
+e 3 21
+e 3 5
+e 6 7
+e 10 20
+e 10 8
+e 13 11
+e 14 1
+e 14 13
+e 15 4
+e 15 2
+e 16 6
+e 16 9
+e 17 4
+e 18 17
+e 18 8
+e 19 20
+e 19 11
+e 21 8
+e 21 12
+e 22 11
+e 22 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 0 3
+e 0 17
+e 2 10
+e 2 6
+e 4 18
+e 4 9
+e 8 1
+e 10 16
+e 11 6
+e 11 17
+e 12 9
+e 12 3
+e 13 5
+e 13 7
+e 14 7
+e 15 8
+e 15 14
+e 18 1
+e 19 7
+e 19 17
+e 20 16
+e 20 0
+e 21 5
+e 21 6
+e 22 11
+e 22 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 0 15
+e 0 17
+e 1 9
+e 1 17
+e 2 4
+e 5 8
+e 5 16
+e 6 20
+e 6 18
+e 7 11
+e 7 9
+e 10 3
+e 10 15
+e 11 8
+e 12 15
+e 13 3
+e 13 9
+e 14 2
+e 14 12
+e 16 18
+e 16 17
+e 19 1
+e 19 18
+e 21 22
+e 21 20
+e 22 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 23 26
+e 0 22
+e 1 2
+e 1 4
+e 6 20
+e 7 16
+e 7 5
+e 8 20
+e 8 19
+e 9 3
+e 9 17
+e 10 11
+e 10 4
+e 11 17
+e 11 5
+e 12 16
+e 13 3
+e 13 16
+e 14 6
+e 14 17
+e 15 21
+e 15 2
+e 18 0
+e 18 12
+e 19 4
+e 19 5
+e 21 22

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 3
+e 0 4
+e 0 5
+e 8 2
+e 8 5
+e 10 1
+e 10 5
+e 11 7
+e 11 1
+e 12 9
+e 12 6
+e 15 6
+e 15 4
+e 16 14
+e 16 4
+e 17 1
+e 18 2
+e 18 3
+e 19 17
+e 19 9
+e 20 14
+e 20 13
+e 21 13
+e 21 2
+e 22 7
+e 23 22
+e 23 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 19
+e 0 11
+e 1 7
+e 1 8
+e 2 22
+e 2 16
+e 3 14
+e 3 16
+e 3 9
+e 5 6
+e 5 19
+e 6 12
+e 10 12
+e 10 9
+e 13 20
+e 13 14
+e 15 4
+e 15 12
+e 17 8
+e 17 14
+e 18 11
+e 18 16
+e 20 4
+e 21 8
+e 21 9
+e 23 22
+e 23 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 18
+e 1 3
+e 1 23
+e 2 3
+e 2 7
+e 4 20
+e 4 18
+e 5 13
+e 5 16
+e 6 23
+e 6 13
+e 8 14
+e 8 11
+e 9 0
+e 9 14
+e 10 20
+e 12 13
+e 12 17
+e 15 11
+e 15 7
+e 19 10
+e 19 16
+e 21 18
+e 21 17
+e 22 16
+e 22 7
+e 22 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 23
+e 0 7
+e 1 9
+e 1 12
+e 2 12
+e 2 16
+e 3 20
+e 3 5
+e 4 5
+e 6 4
+e 6 9
+e 8 20
+e 10 8
+e 10 19
+e 11 19
+e 11 16
+e 11 22
+e 13 7
+e 13 19
+e 15 5
+e 15 22
+e 17 14
+e 17 16
+e 18 14
+e 18 23
+e 21 7
+e 21 22

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 20
+e 0 17
+e 3 5
+e 3 2
+e 4 15
+e 4 5
+e 6 1
+e 6 19
+e 7 9
+e 7 20
+e 8 14
+e 8 12
+e 9 19
+e 10 19
+e 10 13
+e 14 1
+e 16 2
+e 16 12
+e 18 17
+e 18 11
+e 21 12
+e 21 11
+e 21 13
+e 22 15
+e 22 11
+e 23 2
+e 23 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 4 2
+e 4 7
+e 5 12
+e 5 11
+e 5 7
+e 6 17
+e 6 3
+e 8 0
+e 8 11
+e 9 3
+e 9 12
+e 10 18
+e 10 2
+e 13 23
+e 13 12
+e 14 2
+e 15 14
+e 15 20
+e 16 3
+e 16 7
+e 19 20
+e 19 0
+e 21 1
+e 21 11
+e 22 1
+e 22 17
+e 23 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 1
+e 0 8
+e 2 11
+e 3 21
+e 3 14
+e 4 2
+e 4 9
+e 5 16
+e 5 8
+e 6 9
+e 6 14
+e 6 8
+e 7 21
+e 7 19
+e 10 22
+e 10 12
+e 13 11
+e 13 16
+e 15 23
+e 15 22
+e 17 1
+e 17 9
+e 18 12
+e 18 14
+e 20 19
+e 20 1
+e 23 16

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 1 12
+e 1 0
+e 2 15
+e 5 15
+e 5 14
+e 6 4
+e 6 0
+e 9 4
+e 9 8
+e 10 8
+e 10 7
+e 13 23
+e 13 0
+e 13 14
+e 16 11
+e 16 15
+e 17 7
+e 17 14
+e 18 7
+e 18 23
+e 19 2
+e 19 3
+e 20 11
+e 21 3
+e 21 12
+e 22 20
+e 22 23

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 7
+e 0 14
+e 2 16
+e 2 14
+e 4 23
+e 4 9
+e 5 8
+e 5 1
+e 6 9
+e 6 1
+e 10 3
+e 10 14
+e 10 1
+e 11 9
+e 11 3
+e 12 15
+e 12 3
+e 13 8
+e 15 20
+e 18 17
+e 18 16
+e 19 7
+e 19 23
+e 21 20
+e 21 8
+e 22 13
+e 22 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 22
+e 0 17
+e 1 17
+e 1 10
+e 2 20
+e 2 16
+e 4 13
+e 4 14
+e 4 6
+e 7 3
+e 7 5
+e 8 3
+e 9 16
+e 9 18
+e 11 18
+e 11 13
+e 12 20
+e 12 14
+e 15 18
+e 15 6
+e 19 10
+e 19 14
+e 21 8
+e 21 13
+e 22 5
+e 23 5
+e 23 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 24 27
+e 0 16
+e 3 4
+e 3 23
+e 3 9
+e 5 15
+e 5 1
+e 7 19
+e 7 15
+e 8 21
+e 10 6
+e 10 2
+e 11 0
+e 11 6
+e 12 1
+e 12 9
+e 13 19
+e 13 23
+e 14 8
+e 14 4
+e 17 16
+e 17 9
+e 18 2
+e 18 23
+e 20 21
+e 20 16
+e 22 1
+e 22 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 1 3
+e 1 4
+e 6 3
+e 8 0
+e 8 4
+e 9 2
+e 9 5
+e 10 2
+e 11 3
+e 13 5
+e 15 10
+e 15 7
+e 16 14
+e 16 2
+e 17 12
+e 17 0
+e 18 14
+e 19 11
+e 19 7
+e 20 6
+e 20 0
+e 21 13
+e 21 1
+e 22 12
+e 22 5
+e 23 4
+e 24 23
+e 24 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 0 4
+e 1 10
+e 1 23
+e 2 9
+e 2 0
+e 5 3
+e 5 7
+e 8 18
+e 8 14
+e 9 7
+e 11 24
+e 11 23
+e 12 19
+e 12 6
+e 13 23
+e 13 7
+e 15 22
+e 15 6
+e 16 21
+e 16 5
+e 17 4
+e 17 18
+e 19 18
+e 20 10
+e 20 14
+e 21 14
+e 22 3
+e 24 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 1 22
+e 1 8
+e 2 14
+e 2 23
+e 4 0
+e 5 23
+e 5 0
+e 6 7
+e 6 3
+e 7 22
+e 10 16
+e 10 3
+e 11 8
+e 12 9
+e 13 14
+e 13 8
+e 15 24
+e 15 23
+e 16 18
+e 17 4
+e 17 12
+e 19 18
+e 19 0
+e 20 9
+e 20 22
+e 21 11
+e 21 19
+e 24 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 1 21
+e 1 2
+e 2 0
+e 4 22
+e 4 13
+e 6 5
+e 6 3
+e 7 5
+e 8 13
+e 8 9
+e 11 15
+e 12 11
+e 12 13
+e 14 16
+e 14 18
+e 16 3
+e 17 22
+e 17 3
+e 18 15
+e 18 9
+e 19 7
+e 19 10
+e 20 15
+e 21 9
+e 23 0
+e 23 5
+e 24 20
+e 24 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 1 20
+e 4 14
+e 4 17
+e 6 20
+e 6 3
+e 7 5
+e 7 12
+e 8 2
+e 8 3
+e 9 20
+e 10 13
+e 10 0
+e 11 13
+e 14 0
+e 15 24
+e 15 6
+e 16 21
+e 16 11
+e 18 0
+e 18 12
+e 19 1
+e 19 2
+e 21 3
+e 22 9
+e 22 17
+e 23 5
+e 23 2
+e 24 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 1 24
+e 2 4
+e 3 18
+e 3 19
+e 5 4
+e 5 0
+e 6 22
+e 8 0
+e 8 24
+e 9 11
+e 9 10
+e 11 0
+e 12 22
+e 12 19
+e 13 7
+e 13 24
+e 14 7
+e 14 18
+e 15 22
+e 16 1
+e 16 12
+e 17 19
+e 20 15
+e 20 10
+e 21 6
+e 21 18
+e 23 17
+e 23 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 1 12
+e 1 5
+e 2 19
+e 2 21
+e 3 8
+e 3 22
+e 4 10
+e 4 17
+e 5 0
+e 5 17
+e 8 0
+e 9 20
+e 9 10
+e 12 7
+e 13 6
+e 13 7
+e 14 16
+e 14 6
+e 15 6
+e 18 11
+e 18 10
+e 19 17
+e 20 0
+e 21 16
+e 23 15
+e 23 22
+e 24 11
+e 24 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 2 6
+e 2 17
+e 3 6
+e 4 0
+e 5 8
+e 5 1
+e 7 18
+e 7 2
+e 9 10
+e 9 4
+e 10 17
+e 11 8
+e 11 16
+e 12 23
+e 12 16
+e 14 23
+e 15 19
+e 15 1
+e 18 16
+e 19 6
+e 20 0
+e 20 23
+e 21 14
+e 21 13
+e 22 3
+e 22 13
+e 24 1
+e 24 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 0 13
+e 1 21
+e 1 16
+e 2 11
+e 2 22
+e 3 23
+e 4 13
+e 6 13
+e 6 7
+e 8 20
+e 8 6
+e 9 11
+e 9 5
+e 10 3
+e 10 15
+e 12 23
+e 12 22
+e 14 0
+e 14 5
+e 16 18
+e 17 18
+e 17 23
+e 19 5
+e 19 7
+e 20 22
+e 21 7
+e 24 4
+e 24 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 2 0
+e 3 12
+e 3 0
+e 4 22
+e 5 8
+e 5 12
+e 6 13
+e 6 15
+e 7 17
+e 8 19
+e 10 2
+e 10 7
+e 11 9
+e 13 19
+e 14 19
+e 14 0
+e 16 4
+e 16 14
+e 18 1
+e 18 22
+e 20 17
+e 20 9
+e 21 11
+e 21 15
+e 23 9
+e 23 22
+e 24 1
+e 24 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 25 28
+e 1 11
+e 1 15
+e 3 9
+e 3 19
+e 4 11
+e 5 20
+e 5 9
+e 6 19
+e 7 15
+e 12 10
+e 12 11
+e 13 0
+e 13 19
+e 14 24
+e 14 2
+e 16 7
+e 16 13
+e 17 8
+e 17 9
+e 18 10
+e 20 0
+e 21 6
+e 21 18
+e 22 8
+e 22 15
+e 23 4
+e 23 2
+e 24 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 1 4
+e 1 5
+e 2 3
+e 2 5
+e 8 0
+e 9 6
+e 12 7
+e 12 4
+e 15 1
+e 15 3
+e 16 11
+e 16 8
+e 17 14
+e 18 13
+e 18 5
+e 19 14
+e 19 0
+e 20 9
+e 20 3
+e 21 7
+e 21 0
+e 22 2
+e 22 4
+e 23 17
+e 23 10
+e 24 13
+e 24 10
+e 25 11
+e 25 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 0 6
+e 0 22
+e 2 11
+e 2 4
+e 3 11
+e 3 1
+e 4 8
+e 5 17
+e 5 6
+e 7 23
+e 7 6
+e 9 0
+e 9 21
+e 10 15
+e 10 8
+e 12 17
+e 12 8
+e 13 15
+e 14 13
+e 14 18
+e 19 16
+e 19 18
+e 20 25
+e 20 21
+e 23 21
+e 23 22
+e 24 16
+e 24 22
+e 25 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 1 18
+e 1 14
+e 2 10
+e 2 19
+e 3 19
+e 3 22
+e 4 13
+e 4 6
+e 5 13
+e 7 20
+e 7 19
+e 10 9
+e 10 22
+e 11 18
+e 11 0
+e 12 5
+e 12 25
+e 14 6
+e 16 8
+e 16 9
+e 17 8
+e 17 6
+e 20 0
+e 21 3
+e 21 9
+e 23 15
+e 23 22
+e 24 15
+e 24 25

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 1 9
+e 1 25
+e 2 12
+e 2 0
+e 3 9
+e 3 8
+e 5 19
+e 5 18
+e 6 5
+e 6 20
+e 7 4
+e 7 20
+e 10 14
+e 10 19
+e 11 12
+e 13 11
+e 13 22
+e 14 8
+e 16 21
+e 16 19
+e 17 15
+e 17 22
+e 21 20
+e 21 18
+e 23 4
+e 23 0
+e 24 15
+e 24 18
+e 25 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 1 11
+e 1 10
+e 3 24
+e 3 13
+e 4 2
+e 4 15
+e 5 2
+e 9 21
+e 11 7
+e 11 6
+e 12 5
+e 12 8
+e 13 15
+e 14 25
+e 14 7
+e 16 0
+e 16 7
+e 17 20
+e 17 8
+e 18 0
+e 18 15
+e 19 9
+e 19 10
+e 22 24
+e 22 21
+e 23 20
+e 23 6
+e 25 10
+e 25 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 3 9
+e 3 22
+e 5 24
+e 5 1
+e 6 0
+e 6 25
+e 7 4
+e 7 25
+e 10 24
+e 10 4
+e 11 1
+e 12 22
+e 13 8
+e 13 1
+e 14 6
+e 14 4
+e 15 19
+e 15 17
+e 16 12
+e 16 0
+e 18 9
+e 18 11
+e 19 8
+e 20 2
+e 20 17
+e 21 2
+e 21 25
+e 23 7
+e 23 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 1 14
+e 1 25
+e 2 0
+e 3 10
+e 3 0
+e 5 16
+e 5 0
+e 7 16
+e 7 6
+e 8 22
+e 8 9
+e 11 6
+e 11 25
+e 12 11
+e 12 14
+e 13 21
+e 13 4
+e 15 10
+e 17 20
+e 17 14
+e 18 1
+e 18 6
+e 19 21
+e 19 2
+e 20 4
+e 23 22
+e 23 25
+e 24 15
+e 24 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 0 4
+e 0 15
+e 3 2
+e 3 15
+e 5 13
+e 5 21
+e 6 4
+e 6 21
+e 7 20
+e 7 1
+e 8 12
+e 9 24
+e 9 12
+e 11 20
+e 11 10
+e 13 19
+e 13 1
+e 14 8
+e 14 19
+e 16 17
+e 16 19
+e 17 21
+e 17 1
+e 18 25
+e 18 10
+e 22 15
+e 23 24
+e 23 22
+e 25 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 2 20
+e 2 10
+e 3 8
+e 3 1
+e 4 5
+e 4 12
+e 6 10
+e 6 24
+e 11 25
+e 11 9
+e 12 1
+e 14 8
+e 14 19
+e 15 16
+e 15 10
+e 16 19
+e 16 24
+e 17 0
+e 17 24
+e 18 6
+e 18 19
+e 20 7
+e 21 0
+e 21 9
+e 22 13
+e 22 1
+e 23 5
+e 23 7
+e 25 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 1 14
+e 1 20
+e 2 24
+e 2 6
+e 4 17
+e 5 14
+e 5 4
+e 7 19
+e 7 3
+e 8 20
+e 9 0
+e 9 11
+e 10 3
+e 10 11
+e 12 10
+e 12 6
+e 13 16
+e 13 18
+e 15 0
+e 15 18
+e 16 23
+e 19 6
+e 19 11
+e 21 23
+e 21 17
+e 22 24
+e 22 17
+e 25 8
+e 25 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 26 29
+e 1 14
+e 1 24
+e 4 2
+e 4 18
+e 5 2
+e 5 8
+e 6 16
+e 6 10
+e 11 3
+e 11 10
+e 13 6
+e 13 7
+e 14 0
+e 15 0
+e 15 12
+e 17 19
+e 17 16
+e 18 12
+e 19 7
+e 19 10
+e 20 8
+e 21 20
+e 21 7
+e 22 3
+e 22 24
+e 23 9
+e 23 12
+e 25 9
+e 25 16

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 1 5
+e 2 3
+e 2 4
+e 2 5
+e 8 1
+e 12 7
+e 12 3
+e 14 0
+e 16 6
+e 17 16
+e 17 15
+e 19 13
+e 19 6
+e 20 9
+e 20 5
+e 21 1
+e 21 4
+e 22 0
+e 23 11
+e 24 3
+e 25 23
+e 25 22
+e 26 14
+e 26 10
+e 27 18
+e 27 8
+e 29 28
+e 29 13
+e 30 24
+e 30 18
+e 31 10
+e 31 7
+e 32 4
+e 33 28
+e 33 9
+e 34 32
+e 34 11
+e 35 15
+e 35 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 0 30
+e 1 26
+e 1 7
+e 3 29
+e 3 31
+e 3 2
+e 4 19
+e 5 12
+e 5 6
+e 9 8
+e 9 30
+e 10 14
+e 10 28
+e 11 21
+e 11 19
+e 12 29
+e 13 7
+e 13 2
+e 14 31
+e 15 30
+e 16 2
+e 17 6
+e 17 32
+e 18 27
+e 18 25
+e 20 24
+e 20 15
+e 22 0
+e 22 27
+e 23 4
+e 23 8
+e 24 28
+e 32 16
+e 33 26
+e 33 21
+e 34 16
+e 34 31
+e 35 25
+e 35 29

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 0 35
+e 0 15
+e 2 22
+e 2 5
+e 4 3
+e 4 20
+e 5 20
+e 6 20
+e 7 24
+e 7 28
+e 9 17
+e 10 32
+e 10 1
+e 12 9
+e 12 33
+e 13 15
+e 13 18
+e 14 11
+e 14 30
+e 16 28
+e 19 34
+e 19 17
+e 21 6
+e 21 32
+e 22 33
+e 23 35
+e 23 24
+e 25 16
+e 25 3
+e 26 8
+e 26 17
+e 26 18
+e 27 31
+e 27 11
+e 29 1
+e 29 8
+e 30 34
+e 31 8
+e 34 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 0 10
+e 1 28
+e 1 10
+e 2 18
+e 3 6
+e 3 34
+e 5 31
+e 7 29
+e 8 5
+e 8 17
+e 9 2
+e 9 19
+e 11 7
+e 11 16
+e 12 20
+e 12 31
+e 13 32
+e 13 4
+e 14 31
+e 14 16
+e 14 29
+e 21 18
+e 23 4
+e 23 18
+e 24 17
+e 24 30
+e 25 15
+e 25 22
+e 26 15
+e 26 6
+e 27 0
+e 27 21
+e 28 16
+e 30 7
+e 32 34
+e 33 19
+e 33 20
+e 35 22
+e 35 29

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 1 26
+e 1 19
+e 4 35
+e 4 21
+e 5 29
+e 5 19
+e 5 12
+e 7 2
+e 7 31
+e 9 22
+e 9 25
+e 10 20
+e 11 8
+e 11 13
+e 14 6
+e 14 0
+e 15 25
+e 15 20
+e 16 27
+e 16 32
+e 17 29
+e 18 34
+e 18 3
+e 21 20
+e 22 32
+e 23 13
+e 23 12
+e 24 10
+e 24 6
+e 26 12
+e 28 8
+e 28 27
+e 30 0
+e 30 29
+e 31 26
+e 33 17
+e 33 2
+e 34 19
+e 35 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 1 0
+e 1 16
+e 2 20
+e 2 24
+e 3 17
+e 3 13
+e 4 18
+e 4 11
+e 5 23
+e 5 34
+e 6 25
+e 9 15
+e 9 10
+e 12 7
+e 12 25
+e 14 17
+e 15 16
+e 17 11
+e 19 34
+e 20 13
+e 21 33
+e 21 18
+e 22 19
+e 22 8
+e 26 33
+e 26 7
+e 27 24
+e 28 27
+e 28 35
+e 29 16
+e 29 13
+e 29 11
+e 30 6
+e 30 23
+e 31 8
+e 31 0
+e 32 10
+e 32 14
+e 35 34

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 2 11
+e 2 12
+e 5 32
+e 5 11
+e 6 3
+e 6 14
+e 6 33
+e 7 25
+e 8 28
+e 8 4
+e 9 34
+e 9 17
+e 10 33
+e 12 10
+e 13 4
+e 13 29
+e 15 7
+e 15 20
+e 16 14
+e 18 16
+e 18 0
+e 19 35
+e 19 31
+e 22 17
+e 22 25
+e 23 29
+e 23 3
+e 24 21
+e 24 33
+e 26 20
+e 26 1
+e 27 34
+e 27 21
+e 28 1
+e 30 10
+e 30 14
+e 31 1
+e 32 3
+e 35 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 0 16
+e 2 27
+e 2 1
+e 5 23
+e 5 6
+e 7 33
+e 8 10
+e 8 4
+e 9 13
+e 9 16
+e 10 6
+e 12 15
+e 12 28
+e 13 19
+e 14 29
+e 14 3
+e 15 34
+e 17 11
+e 17 29
+e 20 3
+e 21 6
+e 22 0
+e 22 21
+e 24 18
+e 24 34
+e 25 28
+e 25 7
+e 26 20
+e 26 23
+e 30 33
+e 30 19
+e 31 4
+e 31 18
+e 32 11
+e 32 27
+e 33 1
+e 35 34
+e 35 19
+e 35 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 0 6
+e 0 25
+e 1 28
+e 1 7
+e 4 18
+e 4 27
+e 5 13
+e 5 32
+e 6 15
+e 10 29
+e 11 12
+e 11 19
+e 14 32
+e 14 29
+e 16 7
+e 16 8
+e 17 31
+e 17 15
+e 20 9
+e 20 12
+e 21 29
+e 21 2
+e 21 19
+e 22 30
+e 23 8
+e 24 30
+e 24 2
+e 25 8
+e 26 3
+e 26 22
+e 28 27
+e 30 19
+e 31 2
+e 33 9
+e 33 18
+e 34 23
+e 34 13
+e 35 10
+e 35 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 0 8
+e 0 19
+e 1 20
+e 1 17
+e 6 27
+e 6 31
+e 7 26
+e 7 9
+e 10 28
+e 10 2
+e 11 31
+e 13 12
+e 13 4
+e 14 3
+e 14 8
+e 15 11
+e 15 29
+e 18 3
+e 18 34
+e 20 4
+e 21 35
+e 21 12
+e 22 34
+e 22 16
+e 23 33
+e 23 5
+e 24 17
+e 24 33
+e 25 26
+e 26 16
+e 27 9
+e 28 5
+e 29 4
+e 30 2
+e 30 25
+e 32 5
+e 32 9
+e 32 16
+e 35 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,40 @@
+p edge 36 39
+e 0 31
+e 0 30
+e 1 31
+e 1 25
+e 2 11
+e 4 9
+e 6 5
+e 7 23
+e 8 16
+e 8 15
+e 12 4
+e 12 20
+e 13 28
+e 13 23
+e 14 10
+e 14 16
+e 17 6
+e 18 33
+e 18 10
+e 19 15
+e 22 19
+e 22 21
+e 24 21
+e 24 17
+e 26 25
+e 26 9
+e 27 20
+e 27 11
+e 28 3
+e 29 6
+e 29 3
+e 32 15
+e 32 3
+e 32 5
+e 33 11
+e 34 7
+e 34 2
+e 35 30
+e 35 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 4
+e 1 4
+e 9 6
+e 9 2
+e 13 2
+e 14 11
+e 17 3
+e 18 7
+e 19 13
+e 19 12
+e 20 12
+e 20 10
+e 21 17
+e 23 14
+e 24 15
+e 25 8
+e 25 5
+e 26 3
+e 27 0
+e 27 3
+e 28 16
+e 29 8
+e 29 7
+e 31 2
+e 31 4
+e 32 30
+e 32 15
+e 34 22
+e 35 21
+e 35 10
+e 36 34
+e 36 1
+e 37 23
+e 37 16
+e 38 24
+e 38 11
+e 39 28
+e 40 33
+e 40 18
+e 41 1
+e 41 5
+e 42 26
+e 42 22
+e 43 33
+e 43 30
+e 44 39
+e 44 6
+e 45 0
+e 45 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 1 16
+e 1 0
+e 2 4
+e 2 28
+e 3 43
+e 3 5
+e 7 18
+e 7 15
+e 8 38
+e 8 40
+e 9 13
+e 9 0
+e 10 6
+e 11 39
+e 11 24
+e 13 5
+e 14 26
+e 16 5
+e 17 24
+e 20 14
+e 20 19
+e 21 37
+e 21 43
+e 22 25
+e 22 37
+e 23 28
+e 23 12
+e 25 44
+e 27 34
+e 27 15
+e 29 4
+e 29 17
+e 30 36
+e 30 6
+e 31 13
+e 31 26
+e 32 39
+e 32 0
+e 33 19
+e 34 41
+e 35 42
+e 35 18
+e 36 12
+e 38 10
+e 41 26
+e 42 43
+e 44 40
+e 45 33
+e 45 16

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 4
+e 3 39
+e 5 17
+e 6 3
+e 6 20
+e 7 38
+e 8 28
+e 8 35
+e 9 7
+e 9 28
+e 10 21
+e 10 4
+e 11 14
+e 11 31
+e 12 29
+e 12 43
+e 13 15
+e 14 0
+e 15 30
+e 18 39
+e 21 40
+e 22 1
+e 22 5
+e 23 25
+e 23 17
+e 24 1
+e 24 2
+e 26 18
+e 26 20
+e 27 35
+e 29 30
+e 32 13
+e 32 16
+e 33 35
+e 33 39
+e 34 19
+e 34 16
+e 36 27
+e 36 19
+e 37 2
+e 37 40
+e 38 31
+e 41 25
+e 41 20
+e 42 3
+e 42 30
+e 44 43
+e 45 44
+e 45 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 35
+e 2 7
+e 2 35
+e 3 18
+e 3 10
+e 4 42
+e 4 27
+e 9 12
+e 9 30
+e 11 7
+e 12 13
+e 13 29
+e 15 8
+e 16 11
+e 16 18
+e 17 5
+e 17 8
+e 19 14
+e 19 5
+e 20 0
+e 20 27
+e 21 6
+e 22 21
+e 22 0
+e 23 45
+e 25 32
+e 26 36
+e 26 6
+e 28 34
+e 28 27
+e 31 15
+e 31 24
+e 33 30
+e 33 7
+e 36 1
+e 37 14
+e 37 25
+e 38 39
+e 39 1
+e 40 42
+e 40 1
+e 41 23
+e 41 29
+e 42 35
+e 43 38
+e 43 10
+e 44 34
+e 44 32
+e 45 24

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 40
+e 4 15
+e 4 1
+e 6 2
+e 7 28
+e 7 34
+e 8 1
+e 8 36
+e 9 5
+e 10 3
+e 10 2
+e 13 20
+e 14 23
+e 14 11
+e 17 28
+e 17 16
+e 18 34
+e 21 24
+e 21 3
+e 22 41
+e 22 42
+e 23 18
+e 25 34
+e 26 19
+e 26 11
+e 27 31
+e 27 19
+e 28 2
+e 29 15
+e 29 39
+e 30 6
+e 30 16
+e 31 3
+e 32 12
+e 32 38
+e 33 12
+e 33 16
+e 35 25
+e 35 5
+e 37 36
+e 39 38
+e 40 42
+e 41 13
+e 43 37
+e 43 20
+e 44 9
+e 44 6
+e 45 0
+e 45 24

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 29
+e 0 23
+e 1 26
+e 1 19
+e 2 11
+e 3 7
+e 7 22
+e 9 6
+e 10 6
+e 11 16
+e 12 37
+e 12 38
+e 13 4
+e 13 29
+e 14 10
+e 14 43
+e 15 28
+e 15 38
+e 18 40
+e 18 28
+e 20 5
+e 20 38
+e 21 5
+e 21 30
+e 24 25
+e 24 22
+e 25 23
+e 27 37
+e 27 6
+e 28 19
+e 31 30
+e 33 34
+e 33 32
+e 34 9
+e 35 4
+e 35 31
+e 36 3
+e 36 16
+e 37 19
+e 39 2
+e 39 17
+e 40 43
+e 41 8
+e 41 32
+e 42 17
+e 42 26
+e 44 45
+e 44 8
+e 45 26

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 7
+e 0 43
+e 1 8
+e 1 20
+e 2 40
+e 2 39
+e 3 33
+e 3 36
+e 4 11
+e 4 22
+e 5 43
+e 6 38
+e 8 42
+e 9 24
+e 10 39
+e 10 23
+e 11 6
+e 12 16
+e 12 18
+e 13 41
+e 14 44
+e 15 14
+e 16 36
+e 17 15
+e 17 38
+e 19 33
+e 20 36
+e 21 16
+e 21 41
+e 24 41
+e 25 13
+e 25 42
+e 26 27
+e 26 29
+e 28 40
+e 28 5
+e 30 7
+e 30 18
+e 31 22
+e 31 33
+e 32 20
+e 32 18
+e 34 37
+e 34 44
+e 35 19
+e 35 27
+e 37 23
+e 45 9
+e 45 29

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 23
+e 1 44
+e 3 14
+e 3 26
+e 4 34
+e 4 15
+e 5 14
+e 5 0
+e 7 24
+e 7 40
+e 8 11
+e 9 38
+e 11 25
+e 12 18
+e 12 28
+e 13 25
+e 16 29
+e 16 23
+e 19 6
+e 20 29
+e 20 32
+e 21 8
+e 21 39
+e 22 17
+e 22 39
+e 24 2
+e 27 28
+e 27 38
+e 30 1
+e 30 6
+e 31 36
+e 31 18
+e 33 28
+e 34 10
+e 35 33
+e 35 17
+e 36 19
+e 37 9
+e 37 25
+e 40 38
+e 41 40
+e 41 32
+e 42 13
+e 42 2
+e 43 9
+e 43 32
+e 44 15
+e 45 26
+e 45 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 9
+e 2 23
+e 2 3
+e 5 20
+e 7 44
+e 8 18
+e 8 32
+e 9 1
+e 10 26
+e 10 20
+e 11 43
+e 11 3
+e 12 26
+e 12 3
+e 13 27
+e 13 29
+e 14 17
+e 14 37
+e 15 45
+e 16 32
+e 16 45
+e 17 27
+e 19 28
+e 21 15
+e 21 41
+e 22 42
+e 23 29
+e 24 25
+e 24 28
+e 25 1
+e 30 23
+e 30 1
+e 31 22
+e 31 4
+e 33 37
+e 33 34
+e 35 19
+e 35 43
+e 36 4
+e 36 27
+e 38 7
+e 38 6
+e 39 0
+e 39 34
+e 40 18
+e 40 5
+e 42 6
+e 43 29
+e 44 41

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 1 2
+e 5 2
+e 5 30
+e 7 45
+e 9 8
+e 9 23
+e 10 17
+e 14 6
+e 15 14
+e 15 12
+e 16 30
+e 18 31
+e 19 4
+e 21 3
+e 22 32
+e 22 24
+e 25 45
+e 26 11
+e 26 0
+e 27 21
+e 27 32
+e 28 19
+e 29 20
+e 29 17
+e 31 12
+e 32 30
+e 33 7
+e 34 16
+e 34 24
+e 35 18
+e 35 4
+e 36 1
+e 36 11
+e 37 33
+e 37 0
+e 38 23
+e 38 6
+e 39 8
+e 39 10
+e 40 13
+e 40 2
+e 41 25
+e 41 3
+e 42 16
+e 42 45
+e 43 20
+e 43 24
+e 44 28
+e 44 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,50 @@
+p edge 46 49
+e 0 14
+e 0 15
+e 1 18
+e 1 32
+e 3 23
+e 6 25
+e 6 30
+e 7 9
+e 7 28
+e 8 3
+e 8 40
+e 10 31
+e 11 36
+e 12 16
+e 14 24
+e 15 5
+e 17 15
+e 17 4
+e 20 42
+e 20 19
+e 21 35
+e 21 29
+e 22 13
+e 22 2
+e 23 16
+e 25 28
+e 26 37
+e 26 9
+e 27 28
+e 27 5
+e 32 2
+e 33 39
+e 33 4
+e 34 18
+e 34 35
+e 36 19
+e 37 10
+e 38 30
+e 38 40
+e 39 5
+e 41 13
+e 41 4
+e 42 29
+e 43 11
+e 43 31
+e 44 12
+e 44 24
+e 45 39
+e 45 16

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 1 4
+e 7 6
+e 8 6
+e 8 4
+e 9 5
+e 11 1
+e 12 0
+e 12 5
+e 13 9
+e 13 2
+e 16 4
+e 17 2
+e 22 15
+e 25 23
+e 25 21
+e 26 10
+e 26 0
+e 27 16
+e 27 0
+e 29 20
+e 30 29
+e 31 7
+e 31 2
+e 32 20
+e 32 18
+e 33 19
+e 34 3
+e 35 23
+e 35 17
+e 37 19
+e 37 11
+e 38 21
+e 39 22
+e 39 1
+e 41 18
+e 42 40
+e 42 3
+e 43 40
+e 43 36
+e 44 24
+e 45 33
+e 45 14
+e 46 28
+e 46 5
+e 47 28
+e 48 38
+e 49 48
+e 49 3
+e 50 47
+e 50 15
+e 51 44
+e 51 36
+e 52 41
+e 52 10
+e 53 30
+e 54 53
+e 54 24
+e 55 34
+e 55 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 0 49
+e 0 28
+e 1 52
+e 1 33
+e 2 13
+e 2 16
+e 3 26
+e 3 20
+e 4 14
+e 6 29
+e 6 48
+e 8 51
+e 9 54
+e 10 46
+e 11 55
+e 11 35
+e 12 18
+e 12 43
+e 13 30
+e 15 31
+e 15 54
+e 17 14
+e 17 9
+e 18 33
+e 19 47
+e 19 37
+e 21 8
+e 21 34
+e 22 16
+e 22 5
+e 23 40
+e 23 20
+e 24 40
+e 24 33
+e 25 44
+e 25 7
+e 26 48
+e 27 35
+e 29 10
+e 31 34
+e 32 4
+e 32 43
+e 36 38
+e 39 51
+e 39 5
+e 41 44
+e 41 27
+e 42 7
+e 45 38
+e 45 30
+e 46 49
+e 47 28
+e 50 37
+e 50 16
+e 52 42
+e 53 36
+e 53 35
+e 54 30
+e 55 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 0 52
+e 0 8
+e 1 12
+e 3 51
+e 3 22
+e 4 32
+e 4 12
+e 5 25
+e 6 34
+e 6 25
+e 7 22
+e 9 17
+e 9 12
+e 10 35
+e 10 54
+e 13 11
+e 13 44
+e 18 34
+e 19 48
+e 19 27
+e 21 2
+e 21 16
+e 23 15
+e 23 40
+e 24 20
+e 24 53
+e 26 38
+e 26 28
+e 29 17
+e 29 28
+e 30 7
+e 30 39
+e 31 46
+e 31 14
+e 32 47
+e 33 18
+e 33 27
+e 36 42
+e 37 20
+e 37 55
+e 38 14
+e 39 25
+e 40 39
+e 41 54
+e 41 44
+e 42 2
+e 43 1
+e 43 8
+e 45 5
+e 45 54
+e 46 36
+e 47 53
+e 48 44
+e 49 50
+e 49 35
+e 50 16
+e 51 11
+e 52 15
+e 55 27

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 3 39
+e 3 36
+e 4 20
+e 7 40
+e 7 8
+e 10 20
+e 11 8
+e 12 34
+e 12 36
+e 14 55
+e 14 20
+e 15 11
+e 15 38
+e 16 50
+e 16 9
+e 17 32
+e 17 47
+e 18 2
+e 19 6
+e 21 13
+e 22 24
+e 22 6
+e 23 21
+e 23 10
+e 24 33
+e 25 55
+e 26 31
+e 27 18
+e 27 9
+e 28 0
+e 28 19
+e 29 1
+e 30 25
+e 30 6
+e 31 48
+e 32 49
+e 35 42
+e 35 33
+e 37 40
+e 39 47
+e 41 1
+e 41 33
+e 43 34
+e 43 5
+e 44 29
+e 44 13
+e 45 2
+e 45 53
+e 46 0
+e 46 48
+e 49 37
+e 50 5
+e 51 4
+e 51 42
+e 52 26
+e 52 5
+e 53 10
+e 54 38
+e 54 42

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 2 37
+e 2 49
+e 5 25
+e 5 19
+e 8 32
+e 8 54
+e 9 22
+e 9 29
+e 10 19
+e 10 3
+e 11 51
+e 12 22
+e 12 49
+e 17 13
+e 18 11
+e 18 7
+e 20 14
+e 23 15
+e 24 0
+e 25 6
+e 26 36
+e 27 14
+e 27 6
+e 28 42
+e 28 45
+e 30 54
+e 31 3
+e 31 16
+e 32 7
+e 33 51
+e 33 16
+e 34 17
+e 34 29
+e 35 41
+e 35 1
+e 36 20
+e 37 23
+e 38 47
+e 38 0
+e 39 21
+e 39 46
+e 40 24
+e 40 3
+e 41 49
+e 42 47
+e 43 44
+e 43 1
+e 44 4
+e 46 45
+e 48 16
+e 50 48
+e 50 45
+e 52 26
+e 52 13
+e 53 4
+e 53 30
+e 54 0
+e 55 21
+e 55 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 0 38
+e 0 47
+e 2 40
+e 2 28
+e 3 41
+e 4 43
+e 7 45
+e 7 37
+e 8 46
+e 9 16
+e 9 43
+e 10 3
+e 11 13
+e 11 6
+e 12 47
+e 14 5
+e 14 6
+e 15 6
+e 17 10
+e 17 1
+e 18 8
+e 18 43
+e 20 1
+e 21 35
+e 21 29
+e 23 40
+e 24 48
+e 24 33
+e 25 15
+e 25 49
+e 26 38
+e 27 12
+e 27 13
+e 28 37
+e 29 49
+e 31 53
+e 31 52
+e 32 20
+e 32 42
+e 34 51
+e 34 19
+e 36 26
+e 36 49
+e 37 47
+e 39 16
+e 39 42
+e 41 51
+e 44 35
+e 44 22
+e 45 33
+e 46 22
+e 48 5
+e 50 52
+e 50 13
+e 53 19
+e 54 4
+e 54 30
+e 55 23
+e 55 30

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 1 34
+e 1 43
+e 2 45
+e 3 48
+e 4 31
+e 5 0
+e 6 9
+e 6 7
+e 8 35
+e 9 15
+e 10 43
+e 11 36
+e 12 2
+e 12 36
+e 14 31
+e 16 40
+e 17 5
+e 17 36
+e 18 48
+e 18 40
+e 20 44
+e 20 4
+e 21 15
+e 21 45
+e 22 32
+e 22 46
+e 24 13
+e 25 50
+e 25 19
+e 26 13
+e 26 39
+e 27 3
+e 28 10
+e 28 54
+e 29 38
+e 29 23
+e 33 16
+e 33 50
+e 34 27
+e 35 30
+e 38 46
+e 39 4
+e 41 0
+e 41 31
+e 42 37
+e 42 30
+e 44 7
+e 47 19
+e 47 45
+e 49 32
+e 49 54
+e 51 37
+e 51 11
+e 52 24
+e 52 23
+e 53 8
+e 53 46
+e 55 14
+e 55 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 0 45
+e 2 7
+e 2 10
+e 3 47
+e 3 29
+e 5 47
+e 6 35
+e 8 23
+e 8 4
+e 9 22
+e 9 48
+e 10 27
+e 11 38
+e 11 28
+e 13 37
+e 14 55
+e 15 34
+e 16 15
+e 17 40
+e 18 37
+e 18 40
+e 19 14
+e 19 27
+e 20 36
+e 20 54
+e 22 1
+e 24 13
+e 24 55
+e 25 5
+e 26 29
+e 27 35
+e 30 17
+e 30 12
+e 31 21
+e 31 34
+e 32 16
+e 32 54
+e 33 53
+e 33 1
+e 38 54
+e 39 7
+e 41 6
+e 41 4
+e 42 21
+e 42 49
+e 43 26
+e 43 23
+e 44 0
+e 44 12
+e 46 4
+e 46 40
+e 49 12
+e 50 39
+e 50 28
+e 51 36
+e 51 48
+e 52 45
+e 52 35
+e 53 25

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 0 22
+e 1 39
+e 3 37
+e 4 3
+e 4 5
+e 6 24
+e 6 22
+e 7 42
+e 7 2
+e 12 25
+e 14 19
+e 14 41
+e 16 39
+e 16 17
+e 18 51
+e 18 0
+e 19 9
+e 21 35
+e 21 17
+e 23 1
+e 23 9
+e 24 17
+e 26 20
+e 26 10
+e 27 13
+e 29 25
+e 29 30
+e 31 5
+e 32 48
+e 32 11
+e 33 28
+e 34 30
+e 37 55
+e 38 8
+e 40 34
+e 40 35
+e 41 30
+e 42 27
+e 43 38
+e 43 11
+e 44 33
+e 44 15
+e 45 12
+e 45 22
+e 46 8
+e 46 49
+e 47 31
+e 47 10
+e 48 2
+e 49 41
+e 50 36
+e 50 28
+e 52 20
+e 52 2
+e 53 51
+e 53 13
+e 54 15
+e 54 35
+e 55 36

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 0 30
+e 0 19
+e 1 35
+e 2 32
+e 2 48
+e 3 25
+e 3 22
+e 4 54
+e 4 38
+e 5 32
+e 6 39
+e 6 48
+e 7 55
+e 9 1
+e 9 21
+e 10 54
+e 10 34
+e 11 18
+e 11 35
+e 12 19
+e 13 12
+e 13 16
+e 20 44
+e 20 15
+e 23 8
+e 24 8
+e 24 29
+e 25 7
+e 26 33
+e 27 17
+e 27 19
+e 28 41
+e 28 14
+e 29 26
+e 30 52
+e 31 43
+e 34 15
+e 36 49
+e 36 33
+e 37 45
+e 37 39
+e 40 42
+e 40 15
+e 41 22
+e 42 49
+e 44 48
+e 45 33
+e 46 17
+e 46 14
+e 47 31
+e 47 26
+e 50 23
+e 50 16
+e 51 21
+e 51 39
+e 52 38
+e 53 5
+e 53 43
+e 55 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,60 @@
+p edge 56 59
+e 0 22
+e 1 29
+e 1 16
+e 3 14
+e 3 36
+e 5 2
+e 6 11
+e 7 39
+e 7 50
+e 8 16
+e 9 48
+e 9 2
+e 10 24
+e 12 29
+e 13 34
+e 13 32
+e 15 51
+e 15 5
+e 17 10
+e 17 30
+e 18 0
+e 18 52
+e 20 33
+e 20 44
+e 21 48
+e 22 36
+e 23 37
+e 23 35
+e 25 8
+e 25 53
+e 26 4
+e 28 26
+e 28 11
+e 31 12
+e 33 52
+e 34 19
+e 37 2
+e 38 35
+e 38 4
+e 40 27
+e 40 52
+e 41 27
+e 41 30
+e 42 21
+e 42 11
+e 43 14
+e 43 6
+e 45 31
+e 46 53
+e 46 35
+e 47 19
+e 47 4
+e 49 39
+e 50 5
+e 51 32
+e 54 45
+e 54 24
+e 55 49
+e 55 44

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 3
+e 0 4
+e 1 4
+e 1 5
+e 2 4
+e 6 0
+e 8 2
+e 8 5
+e 9 1
+e 9 3
+e 10 2
+e 10 3
+e 11 7
+e 11 5
+e 12 7
+e 12 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 1 9
+e 1 0
+e 2 9
+e 2 6
+e 3 4
+e 5 3
+e 5 0
+e 6 11
+e 7 8
+e 7 12
+e 8 4
+e 8 0
+e 10 3
+e 10 12
+e 11 12
+e 11 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 2
+e 0 4
+e 1 3
+e 3 6
+e 3 2
+e 5 0
+e 5 6
+e 7 12
+e 7 4
+e 8 12
+e 8 6
+e 9 11
+e 9 4
+e 10 11
+e 10 1
+e 12 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 12
+e 2 3
+e 4 3
+e 4 5
+e 6 1
+e 6 0
+e 7 2
+e 7 5
+e 9 2
+e 9 8
+e 10 4
+e 10 8
+e 11 1
+e 11 5
+e 12 8
+e 12 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 4
+e 0 11
+e 1 10
+e 1 2
+e 3 9
+e 3 2
+e 5 0
+e 6 11
+e 6 2
+e 7 6
+e 7 4
+e 8 10
+e 8 5
+e 9 11
+e 12 9
+e 12 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 1 2
+e 3 6
+e 3 0
+e 4 12
+e 5 1
+e 5 11
+e 6 2
+e 6 11
+e 7 10
+e 7 4
+e 8 10
+e 8 11
+e 9 1
+e 9 0
+e 12 0
+e 12 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 1 11
+e 1 4
+e 2 3
+e 2 11
+e 5 0
+e 5 4
+e 6 8
+e 6 4
+e 7 2
+e 8 11
+e 9 0
+e 9 7
+e 10 8
+e 10 3
+e 12 1
+e 12 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 2
+e 0 11
+e 1 10
+e 1 5
+e 3 8
+e 3 11
+e 4 8
+e 4 7
+e 5 12
+e 6 10
+e 6 11
+e 8 2
+e 9 0
+e 9 7
+e 12 7
+e 12 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 8
+e 0 4
+e 1 4
+e 1 7
+e 2 0
+e 3 9
+e 3 7
+e 5 10
+e 5 8
+e 6 1
+e 6 8
+e 10 4
+e 11 9
+e 11 2
+e 12 10
+e 12 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 1
+e 1 2
+e 1 4
+e 3 7
+e 3 2
+e 5 12
+e 5 2
+e 6 11
+e 6 8
+e 7 4
+e 9 7
+e 9 8
+e 10 11
+e 10 0
+e 12 4
+e 12 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,17 @@
+p edge 13 16
+e 0 8
+e 0 10
+e 3 4
+e 3 7
+e 4 2
+e 5 1
+e 5 7
+e 6 1
+e 6 12
+e 8 2
+e 8 7
+e 9 4
+e 9 10
+e 11 10
+e 11 2
+e 12 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 3
+e 0 4
+e 1 3
+e 1 4
+e 2 4
+e 7 0
+e 7 5
+e 8 1
+e 8 5
+e 9 6
+e 9 3
+e 10 6
+e 11 10
+e 12 11
+e 12 2
+e 13 2
+e 13 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 1
+e 0 6
+e 1 3
+e 4 5
+e 4 3
+e 7 8
+e 7 6
+e 8 5
+e 8 3
+e 9 4
+e 9 6
+e 10 11
+e 11 2
+e 12 2
+e 12 5
+e 13 10
+e 13 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 1 10
+e 1 0
+e 2 11
+e 2 0
+e 3 13
+e 3 5
+e 4 12
+e 4 11
+e 6 3
+e 6 0
+e 7 8
+e 9 8
+e 9 13
+e 10 13
+e 10 5
+e 11 5
+e 12 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 4
+e 2 1
+e 2 4
+e 3 1
+e 3 4
+e 5 12
+e 6 8
+e 6 1
+e 7 5
+e 7 0
+e 9 2
+e 9 13
+e 10 0
+e 10 13
+e 11 3
+e 11 13
+e 12 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 1 7
+e 2 5
+e 3 12
+e 3 0
+e 4 7
+e 4 10
+e 6 9
+e 6 0
+e 8 2
+e 8 0
+e 9 10
+e 9 5
+e 11 1
+e 12 10
+e 12 5
+e 13 11
+e 13 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 1 3
+e 1 9
+e 3 13
+e 4 11
+e 4 7
+e 5 2
+e 5 12
+e 6 5
+e 6 7
+e 8 0
+e 8 2
+e 9 12
+e 10 9
+e 10 7
+e 11 2
+e 11 12
+e 13 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 12
+e 1 0
+e 1 11
+e 2 9
+e 2 12
+e 3 6
+e 3 0
+e 4 9
+e 4 12
+e 5 2
+e 5 11
+e 6 8
+e 7 13
+e 7 9
+e 8 13
+e 10 4
+e 10 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 11
+e 0 13
+e 1 7
+e 1 13
+e 3 4
+e 5 3
+e 6 8
+e 6 2
+e 7 2
+e 9 5
+e 9 7
+e 10 6
+e 10 13
+e 11 8
+e 11 2
+e 12 4
+e 12 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 13
+e 1 12
+e 1 7
+e 2 9
+e 2 7
+e 3 0
+e 3 12
+e 5 10
+e 5 8
+e 6 11
+e 6 7
+e 9 8
+e 9 4
+e 11 8
+e 11 4
+e 12 4
+e 13 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 3
+e 0 5
+e 2 7
+e 2 1
+e 3 13
+e 5 10
+e 6 8
+e 6 1
+e 7 4
+e 7 10
+e 8 4
+e 8 10
+e 11 9
+e 11 4
+e 12 5
+e 12 1
+e 13 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,18 @@
+p edge 14 17
+e 0 8
+e 0 2
+e 1 6
+e 4 3
+e 4 12
+e 5 4
+e 5 2
+e 6 9
+e 7 3
+e 7 12
+e 8 12
+e 10 7
+e 10 2
+e 11 1
+e 11 8
+e 13 9
+e 13 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 1 4
+e 2 3
+e 2 4
+e 2 5
+e 6 0
+e 6 5
+e 8 7
+e 8 0
+e 10 0
+e 10 3
+e 11 9
+e 11 1
+e 12 9
+e 12 5
+e 13 1
+e 13 3
+e 14 7
+e 14 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 0 10
+e 0 4
+e 1 13
+e 1 4
+e 2 10
+e 2 7
+e 3 7
+e 3 6
+e 3 4
+e 8 5
+e 8 6
+e 9 6
+e 11 5
+e 11 10
+e 12 13
+e 12 9
+e 14 9
+e 14 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 1 2
+e 1 9
+e 2 8
+e 3 9
+e 3 8
+e 3 13
+e 4 12
+e 4 2
+e 5 12
+e 5 13
+e 6 0
+e 6 9
+e 7 14
+e 7 8
+e 10 0
+e 10 13
+e 11 14
+e 11 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 0 2
+e 0 5
+e 0 1
+e 3 11
+e 3 10
+e 4 11
+e 4 1
+e 6 10
+e 6 2
+e 7 9
+e 7 2
+e 10 5
+e 12 8
+e 12 5
+e 13 9
+e 13 1
+e 14 8
+e 14 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 0 3
+e 0 14
+e 2 9
+e 2 13
+e 4 9
+e 4 1
+e 6 5
+e 6 1
+e 8 3
+e 8 5
+e 10 5
+e 10 7
+e 11 7
+e 11 14
+e 11 1
+e 12 13
+e 12 7
+e 13 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 3 0
+e 4 7
+e 4 1
+e 6 5
+e 6 1
+e 8 2
+e 8 0
+e 8 1
+e 9 14
+e 9 0
+e 10 5
+e 10 3
+e 11 14
+e 11 7
+e 12 3
+e 12 2
+e 13 7
+e 13 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 0 1
+e 0 8
+e 5 14
+e 5 4
+e 6 2
+e 6 9
+e 7 9
+e 7 8
+e 9 4
+e 10 1
+e 10 3
+e 11 8
+e 11 4
+e 11 3
+e 12 2
+e 12 3
+e 13 14
+e 13 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 2 14
+e 2 12
+e 3 1
+e 4 3
+e 4 8
+e 5 14
+e 5 3
+e 7 6
+e 7 8
+e 9 6
+e 9 12
+e 10 0
+e 10 6
+e 11 8
+e 11 1
+e 11 12
+e 13 0
+e 13 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 0 13
+e 0 3
+e 4 13
+e 4 9
+e 5 2
+e 5 14
+e 6 1
+e 6 3
+e 7 12
+e 7 14
+e 7 3
+e 8 1
+e 8 12
+e 9 14
+e 10 9
+e 10 12
+e 11 2
+e 11 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 0 5
+e 0 3
+e 1 3
+e 1 14
+e 1 2
+e 5 14
+e 6 4
+e 6 2
+e 8 13
+e 8 4
+e 9 13
+e 9 14
+e 10 7
+e 10 2
+e 11 7
+e 11 5
+e 12 4
+e 12 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,19 @@
+p edge 15 18
+e 0 4
+e 0 1
+e 3 2
+e 3 7
+e 3 6
+e 8 5
+e 8 10
+e 9 1
+e 9 2
+e 10 7
+e 11 4
+e 11 7
+e 12 5
+e 12 6
+e 13 1
+e 13 6
+e 14 10
+e 14 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 1 4
+e 1 0
+e 1 2
+e 3 4
+e 3 0
+e 3 2
+e 5 4
+e 5 0
+e 5 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 0 5
+e 0 4
+e 0 1
+e 2 5
+e 2 4
+e 2 1
+e 3 5
+e 3 4
+e 3 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 0 5
+e 0 3
+e 0 1
+e 2 5
+e 2 3
+e 2 1
+e 4 5
+e 4 3
+e 4 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 1 0
+e 1 5
+e 1 3
+e 2 0
+e 2 5
+e 2 3
+e 4 0
+e 4 5
+e 4 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 0 3
+e 0 1
+e 0 4
+e 2 3
+e 2 1
+e 2 4
+e 5 3
+e 5 1
+e 5 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 0 5
+e 0 2
+e 0 3
+e 1 5
+e 1 2
+e 1 3
+e 4 5
+e 4 2
+e 4 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 0 1
+e 0 4
+e 0 3
+e 2 1
+e 2 4
+e 2 3
+e 5 1
+e 5 4
+e 5 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 0 2
+e 0 5
+e 0 1
+e 3 2
+e 3 5
+e 3 1
+e 4 2
+e 4 5
+e 4 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 1 4
+e 1 0
+e 1 2
+e 3 4
+e 3 0
+e 3 2
+e 5 4
+e 5 0
+e 5 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,10 @@
+p edge 6 9
+e 0 4
+e 0 5
+e 0 3
+e 1 4
+e 1 5
+e 1 3
+e 2 4
+e 2 5
+e 2 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,14 @@
+c A subgraph of K_5
+
+p edge 5 9
+
+e 0 1
+e 0 2
+e 0 3
+e 0 4
+e 1 2
+e 1 3
+e 1 4
+e 2 3
+e 2 4
+e 3 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 1
+e 0 2
+e 0 3
+e 1 2
+e 5 1
+e 6 4
+e 7 3
+e 8 2
+e 8 3
+e 9 7
+e 9 1
+e 10 5
+e 11 0
+e 11 4
+e 12 6
+e 12 2
+e 13 10
+e 13 4
+e 14 3
+e 14 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 0 1
+e 0 4
+e 6 5
+e 6 3
+e 9 2
+e 15 12
+e 15 10
+e 16 3
+e 25 3
+e 28 23
+e 28 4
+e 30 18
+e 30 16
+e 35 26
+e 35 5
+e 36 8
+e 38 27
+e 38 11
+e 43 36
+e 43 24
+e 45 21
+e 45 1
+e 47 39
+e 47 31
+e 48 39
+e 50 33
+e 51 17
+e 52 33
+e 53 37
+e 53 4
+e 54 52
+e 54 34
+e 55 46
+e 57 13
+e 59 14
+e 59 12
+e 60 14
+e 61 31
+e 61 2
+e 62 58
+e 62 48
+e 63 41
+e 63 7
+e 64 32
+e 65 51
+e 66 56
+e 66 1
+e 68 42
+e 68 19
+e 69 37
+e 69 21
+e 71 41
+e 71 3
+e 72 20
+e 73 49
+e 73 29
+e 74 9
+e 75 34
+e 75 27
+e 77 40
+e 78 7
+e 79 44
+e 79 1
+e 80 20
+e 80 19
+e 81 58
+e 81 26
+e 82 65
+e 82 46
+e 83 17
+e 83 4
+e 84 57
+e 85 67
+e 85 24
+e 86 70
+e 86 49
+e 87 42
+e 88 64
+e 88 2
+e 89 44
+e 89 40
+e 90 29
+e 91 22
+e 91 11
+e 92 76
+e 92 60
+e 93 72
+e 93 18
+e 94 76
+e 94 8
+e 95 50
+e 95 13
+e 96 32
+e 96 0
+e 97 87
+e 97 22
+e 98 25
+e 98 0
+e 99 74
+e 99 56
+e 100 70
+e 100 23
+e 101 78
+e 101 77
+e 102 55
+e 102 10
+e 103 67
+e 103 2
+e 104 90
+e 104 84

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 0 46
+e 0 12
+e 1 11
+e 1 91
+e 2 79
+e 2 77
+e 3 43
+e 3 62
+e 6 4
+e 6 36
+e 9 24
+e 9 85
+e 10 36
+e 10 77
+e 12 8
+e 13 30
+e 13 34
+e 15 45
+e 15 83
+e 17 21
+e 17 89
+e 18 35
+e 19 7
+e 20 54
+e 22 96
+e 22 93
+e 23 40
+e 25 50
+e 25 54
+e 26 57
+e 26 84
+e 27 91
+e 27 36
+e 28 93
+e 28 14
+e 32 94
+e 33 104
+e 33 35
+e 37 103
+e 38 29
+e 38 79
+e 39 21
+e 39 103
+e 40 53
+e 41 42
+e 41 10
+e 42 103
+e 44 19
+e 44 67
+e 46 89
+e 47 31
+e 47 37
+e 48 20
+e 50 69
+e 51 101
+e 51 10
+e 52 5
+e 52 53
+e 55 14
+e 55 83
+e 56 85
+e 56 53
+e 58 30
+e 59 16
+e 59 99
+e 60 98
+e 60 34
+e 61 23
+e 61 4
+e 63 49
+e 63 36
+e 64 88
+e 64 48
+e 66 62
+e 66 74
+e 68 16
+e 68 7
+e 70 65
+e 70 71
+e 72 58
+e 72 45
+e 73 98
+e 75 24
+e 76 101
+e 78 81
+e 78 103
+e 80 11
+e 80 77
+e 82 76
+e 82 53
+e 86 18
+e 86 74
+e 87 94
+e 87 77
+e 88 71
+e 90 73
+e 90 31
+e 92 84
+e 92 81
+e 95 49
+e 95 8
+e 96 69
+e 97 5
+e 97 67
+e 99 43
+e 100 57
+e 100 75
+e 102 29
+e 102 65
+e 104 32

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 0 26
+e 0 51
+e 1 89
+e 1 67
+e 2 104
+e 2 67
+e 3 20
+e 3 86
+e 4 14
+e 4 11
+e 5 78
+e 6 92
+e 6 32
+e 7 22
+e 7 52
+e 8 57
+e 8 22
+e 9 97
+e 9 39
+e 15 31
+e 15 52
+e 16 46
+e 16 60
+e 17 21
+e 17 11
+e 18 63
+e 18 86
+e 19 62
+e 21 103
+e 23 59
+e 23 104
+e 25 54
+e 25 64
+e 28 32
+e 29 69
+e 33 12
+e 34 74
+e 34 10
+e 35 100
+e 35 101
+e 37 77
+e 37 66
+e 38 10
+e 38 67
+e 40 31
+e 40 84
+e 41 47
+e 41 20
+e 43 89
+e 43 88
+e 44 56
+e 44 73
+e 45 47
+e 45 24
+e 46 42
+e 48 57
+e 49 51
+e 50 95
+e 50 14
+e 53 27
+e 53 13
+e 55 19
+e 55 93
+e 56 97
+e 58 98
+e 60 82
+e 61 33
+e 61 54
+e 65 59
+e 65 86
+e 68 29
+e 68 103
+e 69 63
+e 70 5
+e 70 27
+e 71 30
+e 71 48
+e 72 30
+e 72 77
+e 74 80
+e 75 92
+e 75 62
+e 76 24
+e 76 42
+e 79 66
+e 79 32
+e 80 52
+e 81 94
+e 81 36
+e 82 36
+e 83 26
+e 83 99
+e 85 49
+e 85 84
+e 87 78
+e 87 39
+e 90 64
+e 90 13
+e 91 98
+e 91 101
+e 93 88
+e 94 12
+e 96 73
+e 96 28
+e 99 95
+e 100 32
+e 101 67
+e 101 86
+e 102 58
+e 102 52

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 1 69
+e 1 22
+e 2 71
+e 2 45
+e 3 17
+e 3 63
+e 5 90
+e 5 75
+e 6 84
+e 6 94
+e 7 86
+e 7 80
+e 8 79
+e 8 99
+e 10 102
+e 10 66
+e 12 85
+e 12 73
+e 14 87
+e 14 17
+e 16 15
+e 16 94
+e 18 52
+e 18 36
+e 19 48
+e 19 20
+e 21 36
+e 21 63
+e 26 75
+e 27 96
+e 28 25
+e 28 24
+e 29 87
+e 29 94
+e 31 42
+e 31 26
+e 32 100
+e 32 84
+e 33 43
+e 33 92
+e 35 72
+e 35 101
+e 37 15
+e 38 73
+e 39 66
+e 39 24
+e 40 4
+e 40 73
+e 41 44
+e 45 88
+e 46 13
+e 46 20
+e 47 78
+e 48 101
+e 49 41
+e 49 42
+e 50 34
+e 51 96
+e 52 38
+e 53 51
+e 53 83
+e 54 55
+e 54 62
+e 55 75
+e 56 65
+e 56 57
+e 57 99
+e 58 97
+e 58 9
+e 59 92
+e 59 23
+e 60 50
+e 60 73
+e 62 63
+e 62 94
+e 64 86
+e 64 61
+e 65 0
+e 67 79
+e 67 63
+e 68 23
+e 68 75
+e 70 85
+e 70 11
+e 71 9
+e 72 37
+e 74 100
+e 74 97
+e 76 77
+e 76 13
+e 80 77
+e 81 90
+e 81 0
+e 82 93
+e 82 11
+e 88 30
+e 89 43
+e 89 47
+e 91 27
+e 91 30
+e 93 61
+e 95 44
+e 95 22
+e 98 78
+e 98 4
+e 102 69
+e 103 83
+e 103 25
+e 104 34
+e 104 62

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 0 100
+e 0 103
+e 1 14
+e 3 95
+e 5 71
+e 5 16
+e 6 61
+e 6 50
+e 9 90
+e 9 31
+e 10 48
+e 12 76
+e 12 2
+e 15 91
+e 15 65
+e 17 89
+e 17 20
+e 18 49
+e 18 85
+e 19 7
+e 21 11
+e 21 13
+e 23 53
+e 23 63
+e 25 44
+e 25 85
+e 28 24
+e 28 30
+e 29 59
+e 29 78
+e 32 73
+e 32 99
+e 33 8
+e 33 86
+e 34 101
+e 34 7
+e 36 2
+e 36 35
+e 37 16
+e 38 30
+e 38 65
+e 39 104
+e 39 81
+e 40 42
+e 40 69
+e 42 31
+e 43 92
+e 43 27
+e 45 3
+e 45 49
+e 46 64
+e 46 94
+e 47 11
+e 47 35
+e 50 59
+e 51 61
+e 51 41
+e 52 82
+e 52 35
+e 54 82
+e 57 10
+e 57 70
+e 60 26
+e 60 71
+e 62 19
+e 62 56
+e 64 16
+e 66 8
+e 67 48
+e 68 55
+e 68 37
+e 69 22
+e 72 76
+e 72 100
+e 74 70
+e 75 1
+e 75 55
+e 77 13
+e 77 85
+e 79 58
+e 79 65
+e 80 66
+e 80 53
+e 81 74
+e 83 67
+e 83 89
+e 84 4
+e 84 94
+e 87 14
+e 87 86
+e 88 20
+e 88 63
+e 91 4
+e 92 41
+e 93 73
+e 93 26
+e 94 85
+e 94 35
+e 95 65
+e 96 90
+e 96 16
+e 97 78
+e 97 56
+e 98 44
+e 98 22
+e 99 24
+e 101 54
+e 102 58
+e 102 27
+e 104 103

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 2 0
+e 2 90
+e 3 20
+e 3 15
+e 4 89
+e 4 51
+e 6 10
+e 6 61
+e 9 96
+e 11 37
+e 11 99
+e 13 66
+e 16 72
+e 16 81
+e 17 23
+e 18 10
+e 18 97
+e 21 33
+e 21 48
+e 24 49
+e 24 55
+e 25 41
+e 26 43
+e 26 37
+e 27 61
+e 27 48
+e 28 67
+e 28 48
+e 29 15
+e 29 98
+e 32 30
+e 32 33
+e 34 36
+e 34 49
+e 36 52
+e 39 25
+e 39 23
+e 40 103
+e 40 42
+e 41 67
+e 42 45
+e 43 93
+e 44 14
+e 44 70
+e 45 31
+e 46 97
+e 46 77
+e 47 90
+e 51 72
+e 53 20
+e 54 7
+e 54 98
+e 55 75
+e 56 76
+e 56 104
+e 57 9
+e 57 22
+e 58 0
+e 58 75
+e 59 19
+e 59 14
+e 60 38
+e 60 21
+e 62 52
+e 62 12
+e 63 81
+e 63 100
+e 64 30
+e 64 1
+e 65 1
+e 66 98
+e 68 96
+e 69 50
+e 69 48
+e 71 17
+e 71 100
+e 73 8
+e 73 33
+e 76 35
+e 78 89
+e 78 35
+e 79 13
+e 79 5
+e 80 22
+e 80 74
+e 82 70
+e 82 75
+e 83 19
+e 83 53
+e 84 101
+e 84 21
+e 85 86
+e 85 98
+e 86 38
+e 87 74
+e 87 99
+e 88 50
+e 88 8
+e 91 7
+e 91 104
+e 92 47
+e 92 65
+e 94 93
+e 94 12
+e 95 68
+e 95 31
+e 101 75
+e 102 5
+e 102 33
+e 103 77

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 0 78
+e 0 60
+e 1 56
+e 1 97
+e 2 4
+e 2 3
+e 3 93
+e 3 69
+e 5 86
+e 5 3
+e 6 76
+e 6 11
+e 7 89
+e 7 16
+e 8 13
+e 8 47
+e 9 92
+e 10 100
+e 10 33
+e 12 62
+e 12 79
+e 15 49
+e 15 68
+e 16 32
+e 18 96
+e 20 4
+e 21 44
+e 21 80
+e 22 70
+e 22 42
+e 23 85
+e 25 58
+e 26 79
+e 27 14
+e 27 69
+e 28 48
+e 28 13
+e 29 40
+e 29 69
+e 30 97
+e 30 91
+e 31 52
+e 31 62
+e 35 47
+e 35 42
+e 38 80
+e 39 25
+e 39 96
+e 41 99
+e 41 17
+e 45 73
+e 45 87
+e 46 68
+e 48 58
+e 51 23
+e 51 36
+e 53 24
+e 53 100
+e 54 19
+e 54 92
+e 55 14
+e 55 37
+e 56 83
+e 57 26
+e 57 101
+e 59 82
+e 61 89
+e 61 24
+e 64 46
+e 64 38
+e 65 32
+e 65 76
+e 66 20
+e 66 11
+e 67 34
+e 67 69
+e 71 63
+e 71 43
+e 72 37
+e 72 93
+e 74 36
+e 74 93
+e 75 73
+e 77 83
+e 77 50
+e 78 103
+e 81 59
+e 81 70
+e 84 49
+e 84 33
+e 85 11
+e 86 33
+e 88 44
+e 88 93
+e 90 9
+e 90 43
+e 91 33
+e 94 63
+e 94 11
+e 95 52
+e 95 34
+e 98 87
+e 98 17
+e 99 60
+e 101 18
+e 102 19
+e 102 75
+e 103 40
+e 104 82
+e 104 50

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 2 69
+e 3 47
+e 3 56
+e 6 88
+e 6 15
+e 7 4
+e 8 99
+e 9 53
+e 9 75
+e 10 60
+e 10 65
+e 11 64
+e 14 13
+e 16 38
+e 17 71
+e 17 16
+e 18 38
+e 20 2
+e 20 0
+e 22 8
+e 22 26
+e 23 91
+e 23 65
+e 24 69
+e 25 52
+e 25 56
+e 27 80
+e 27 52
+e 29 35
+e 29 70
+e 30 97
+e 30 21
+e 31 86
+e 33 81
+e 33 96
+e 35 51
+e 36 88
+e 37 48
+e 37 12
+e 40 26
+e 40 52
+e 42 15
+e 42 39
+e 44 19
+e 44 38
+e 46 13
+e 46 57
+e 49 50
+e 49 94
+e 50 31
+e 53 12
+e 54 41
+e 55 28
+e 55 56
+e 58 19
+e 58 51
+e 59 0
+e 59 45
+e 60 94
+e 61 41
+e 61 25
+e 62 100
+e 62 32
+e 63 34
+e 63 39
+e 66 74
+e 66 47
+e 67 64
+e 67 91
+e 68 21
+e 68 5
+e 70 93
+e 72 54
+e 72 39
+e 73 83
+e 73 52
+e 75 7
+e 76 32
+e 76 1
+e 77 18
+e 77 25
+e 78 34
+e 78 96
+e 79 43
+e 79 11
+e 81 104
+e 82 86
+e 82 56
+e 84 14
+e 84 71
+e 85 92
+e 85 57
+e 87 28
+e 87 80
+e 89 24
+e 89 4
+e 90 83
+e 90 93
+e 95 45
+e 95 1
+e 98 74
+e 98 48
+e 99 39
+e 100 92
+e 101 5
+e 101 38
+e 102 43
+e 102 104
+e 103 97
+e 103 36

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 0 32
+e 2 101
+e 2 99
+e 3 67
+e 3 31
+e 5 85
+e 5 78
+e 6 43
+e 6 38
+e 9 95
+e 10 37
+e 10 51
+e 11 40
+e 11 78
+e 13 98
+e 13 77
+e 17 70
+e 18 84
+e 18 82
+e 19 103
+e 19 33
+e 20 57
+e 20 81
+e 21 55
+e 21 70
+e 22 34
+e 22 4
+e 23 39
+e 23 102
+e 24 53
+e 25 85
+e 25 81
+e 27 66
+e 27 14
+e 28 16
+e 28 26
+e 30 97
+e 30 67
+e 31 15
+e 32 16
+e 35 81
+e 36 102
+e 36 77
+e 37 95
+e 39 7
+e 40 4
+e 41 33
+e 41 26
+e 42 62
+e 42 12
+e 44 90
+e 44 17
+e 48 61
+e 48 41
+e 50 51
+e 52 7
+e 52 14
+e 54 47
+e 54 98
+e 56 49
+e 56 41
+e 57 49
+e 59 45
+e 59 83
+e 60 34
+e 60 89
+e 61 15
+e 63 58
+e 63 53
+e 64 91
+e 64 29
+e 65 12
+e 65 1
+e 68 55
+e 68 33
+e 69 101
+e 69 58
+e 71 46
+e 72 29
+e 72 33
+e 73 99
+e 73 26
+e 74 71
+e 74 1
+e 75 45
+e 76 8
+e 76 43
+e 79 0
+e 79 46
+e 80 91
+e 80 26
+e 86 92
+e 86 103
+e 87 84
+e 87 15
+e 88 8
+e 88 75
+e 89 62
+e 90 82
+e 92 35
+e 93 50
+e 94 83
+e 94 81
+e 96 24
+e 96 93
+e 97 66
+e 100 9
+e 100 47
+e 104 38
+e 104 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 1 23
+e 1 91
+e 3 100
+e 3 60
+e 7 29
+e 8 83
+e 8 54
+e 9 6
+e 9 11
+e 12 43
+e 12 68
+e 14 93
+e 14 5
+e 15 89
+e 15 39
+e 16 46
+e 16 67
+e 17 54
+e 17 32
+e 19 5
+e 20 33
+e 20 30
+e 24 22
+e 25 81
+e 25 32
+e 26 21
+e 26 27
+e 31 23
+e 31 18
+e 33 67
+e 34 83
+e 34 35
+e 36 91
+e 36 101
+e 38 4
+e 38 5
+e 40 51
+e 40 49
+e 42 37
+e 42 66
+e 43 22
+e 44 53
+e 44 92
+e 45 24
+e 45 10
+e 46 73
+e 47 39
+e 47 94
+e 48 41
+e 48 11
+e 49 98
+e 50 18
+e 50 35
+e 52 103
+e 55 79
+e 55 30
+e 56 89
+e 56 7
+e 57 61
+e 57 60
+e 58 28
+e 58 5
+e 59 102
+e 59 74
+e 60 32
+e 60 35
+e 62 13
+e 62 63
+e 64 28
+e 64 0
+e 65 94
+e 65 2
+e 66 2
+e 70 80
+e 70 37
+e 71 86
+e 71 0
+e 72 63
+e 73 69
+e 75 21
+e 75 32
+e 77 10
+e 77 53
+e 78 69
+e 78 35
+e 80 41
+e 82 88
+e 82 81
+e 84 29
+e 84 4
+e 85 101
+e 86 76
+e 87 51
+e 87 76
+e 88 19
+e 90 72
+e 90 95
+e 93 61
+e 95 27
+e 96 13
+e 96 2
+e 97 85
+e 97 52
+e 99 98
+e 99 79
+e 100 2
+e 102 6
+e 103 68
+e 104 74
+e 104 92

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,111 @@
+p edge 105 110
+e 0 34
+e 0 33
+e 1 72
+e 2 96
+e 2 89
+e 3 28
+e 3 86
+e 4 57
+e 7 37
+e 7 33
+e 8 29
+e 8 65
+e 10 36
+e 10 13
+e 11 103
+e 11 13
+e 13 33
+e 13 89
+e 14 79
+e 15 45
+e 15 47
+e 16 100
+e 16 89
+e 17 104
+e 17 50
+e 18 88
+e 19 101
+e 19 70
+e 20 58
+e 20 37
+e 22 25
+e 22 40
+e 25 72
+e 26 71
+e 26 27
+e 27 55
+e 29 98
+e 30 76
+e 30 86
+e 31 85
+e 31 98
+e 32 21
+e 32 6
+e 35 101
+e 35 48
+e 36 86
+e 38 6
+e 39 93
+e 42 24
+e 42 23
+e 43 53
+e 43 74
+e 44 24
+e 45 92
+e 46 12
+e 46 74
+e 47 56
+e 49 34
+e 49 56
+e 50 86
+e 51 81
+e 51 9
+e 52 5
+e 52 76
+e 53 9
+e 54 28
+e 54 92
+e 58 38
+e 59 66
+e 59 91
+e 60 64
+e 60 6
+e 62 41
+e 62 33
+e 63 93
+e 63 23
+e 64 103
+e 67 96
+e 67 41
+e 69 71
+e 69 5
+e 73 61
+e 73 91
+e 75 68
+e 75 65
+e 77 68
+e 77 6
+e 78 44
+e 78 104
+e 79 95
+e 80 4
+e 80 14
+e 81 87
+e 82 88
+e 82 12
+e 83 1
+e 83 95
+e 84 48
+e 84 57
+e 87 100
+e 90 55
+e 90 21
+e 94 40
+e 94 61
+e 97 85
+e 97 18
+e 99 39
+e 99 66
+e 102 70
+e 102 89

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 14
+e 0 10
+e 1 11
+e 2 14
+e 3 2
+e 3 14
+e 3 10
+e 4 3
+e 4 11
+e 5 10
+e 6 5
+e 6 2
+e 7 2
+e 8 1
+e 8 14
+e 9 7
+e 12 10
+e 12 11
+e 13 9
+e 13 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 14
+e 1 8
+e 1 10
+e 1 6
+e 2 6
+e 2 14
+e 3 13
+e 4 3
+e 4 14
+e 5 7
+e 5 8
+e 7 6
+e 8 10
+e 9 10
+e 9 6
+e 11 0
+e 11 10
+e 12 1
+e 12 14
+e 13 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 11
+e 0 13
+e 1 3
+e 2 11
+e 3 4
+e 4 14
+e 5 1
+e 5 13
+e 6 2
+e 6 4
+e 7 13
+e 8 7
+e 8 14
+e 9 14
+e 9 11
+e 10 12
+e 10 13
+e 12 4
+e 12 14
+e 12 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 14
+e 1 6
+e 1 4
+e 2 12
+e 2 6
+e 3 7
+e 3 8
+e 5 8
+e 5 12
+e 5 6
+e 7 6
+e 8 12
+e 9 10
+e 9 12
+e 10 4
+e 11 0
+e 11 4
+e 13 5
+e 13 4
+e 14 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 5
+e 0 8
+e 1 2
+e 1 7
+e 2 8
+e 3 14
+e 3 8
+e 4 14
+e 5 11
+e 5 7
+e 5 14
+e 6 13
+e 6 8
+e 9 11
+e 10 7
+e 10 14
+e 11 7
+e 12 4
+e 12 11
+e 13 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 5
+e 0 11
+e 1 10
+e 2 12
+e 2 11
+e 3 11
+e 4 8
+e 5 14
+e 6 8
+e 6 11
+e 7 4
+e 7 1
+e 9 10
+e 9 8
+e 12 1
+e 12 10
+e 12 8
+e 13 3
+e 13 10
+e 14 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 1 0
+e 2 7
+e 3 2
+e 4 6
+e 4 7
+e 6 14
+e 7 5
+e 8 7
+e 8 5
+e 8 14
+e 9 1
+e 9 5
+e 10 3
+e 10 0
+e 11 5
+e 11 14
+e 12 14
+e 12 0
+e 13 8
+e 13 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 4
+e 0 8
+e 0 5
+e 1 14
+e 2 5
+e 3 13
+e 3 14
+e 4 8
+e 6 4
+e 7 8
+e 7 5
+e 9 5
+e 9 14
+e 10 1
+e 10 8
+e 11 2
+e 11 4
+e 12 0
+e 12 14
+e 13 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 10
+e 0 2
+e 1 9
+e 1 2
+e 3 4
+e 3 13
+e 4 9
+e 5 2
+e 6 5
+e 6 12
+e 7 14
+e 7 2
+e 8 12
+e 8 9
+e 10 13
+e 10 12
+e 10 9
+e 11 13
+e 13 12
+e 14 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,21 @@
+p edge 15 20
+e 0 8
+e 0 9
+e 1 13
+e 1 9
+e 2 9
+e 3 10
+e 3 13
+e 4 6
+e 5 12
+e 5 14
+e 6 14
+e 7 2
+e 7 10
+e 8 14
+e 8 10
+e 8 13
+e 11 4
+e 11 9
+e 12 13
+e 14 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 3
+e 0 4
+e 1 2
+e 1 3
+e 2 4
+e 7 4
+e 8 5
+e 8 1
+e 9 0
+e 10 6
+e 10 3
+e 11 6
+e 11 2
+e 12 7
+e 12 5
+e 13 3
+e 13 4
+e 14 9
+e 14 1
+e 15 0
+e 15 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 1
+e 3 6
+e 3 1
+e 4 6
+e 4 1
+e 5 7
+e 5 6
+e 8 4
+e 9 8
+e 9 15
+e 10 1
+e 11 2
+e 11 15
+e 12 7
+e 12 10
+e 13 4
+e 13 10
+e 14 0
+e 14 2
+e 15 10
+e 15 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 7
+e 0 3
+e 1 7
+e 1 5
+e 3 10
+e 4 11
+e 4 3
+e 6 9
+e 6 2
+e 8 5
+e 8 10
+e 9 10
+e 11 5
+e 11 10
+e 12 11
+e 13 3
+e 13 5
+e 14 2
+e 14 13
+e 15 12
+e 15 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 8
+e 0 9
+e 1 0
+e 2 15
+e 2 7
+e 3 9
+e 4 13
+e 4 5
+e 5 9
+e 6 3
+e 6 15
+e 7 5
+e 7 8
+e 10 8
+e 10 9
+e 11 0
+e 11 5
+e 12 13
+e 12 8
+e 14 1
+e 14 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 12
+e 2 3
+e 2 12
+e 4 11
+e 5 4
+e 5 14
+e 7 1
+e 7 0
+e 8 6
+e 8 14
+e 9 1
+e 9 3
+e 10 11
+e 10 0
+e 11 3
+e 11 12
+e 13 15
+e 13 6
+e 14 0
+e 14 3
+e 15 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 1 13
+e 1 3
+e 2 4
+e 2 0
+e 4 9
+e 5 7
+e 6 3
+e 6 9
+e 7 3
+e 7 9
+e 8 5
+e 8 10
+e 10 12
+e 10 3
+e 11 13
+e 11 12
+e 12 9
+e 14 7
+e 14 12
+e 15 0
+e 15 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 9
+e 0 1
+e 2 11
+e 3 11
+e 3 9
+e 4 6
+e 4 10
+e 6 15
+e 7 1
+e 7 15
+e 8 5
+e 8 1
+e 9 15
+e 11 1
+e 11 15
+e 12 2
+e 12 0
+e 13 5
+e 13 9
+e 14 10
+e 14 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 4
+e 0 1
+e 1 13
+e 4 3
+e 4 13
+e 5 3
+e 5 13
+e 6 9
+e 6 15
+e 7 13
+e 8 2
+e 8 15
+e 9 4
+e 10 12
+e 10 1
+e 11 12
+e 11 3
+e 14 7
+e 14 2
+e 15 1
+e 15 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 12
+e 0 10
+e 1 7
+e 1 6
+e 2 4
+e 2 8
+e 4 3
+e 5 10
+e 5 3
+e 6 9
+e 6 10
+e 7 13
+e 9 3
+e 11 13
+e 11 9
+e 13 10
+e 13 3
+e 14 12
+e 14 9
+e 15 8
+e 15 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 3
+e 0 7
+e 1 4
+e 2 7
+e 2 4
+e 5 4
+e 6 2
+e 8 3
+e 8 5
+e 9 10
+e 9 11
+e 11 5
+e 11 7
+e 12 7
+e 12 4
+e 13 2
+e 13 5
+e 14 1
+e 14 10
+e 15 6
+e 15 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,22 @@
+p edge 16 21
+e 0 1
+e 0 3
+e 2 13
+e 2 3
+e 3 11
+e 3 5
+e 6 10
+e 6 1
+e 7 5
+e 7 12
+e 8 4
+e 8 11
+e 9 5
+e 9 12
+e 10 12
+e 11 12
+e 13 7
+e 14 4
+e 14 5
+e 15 7
+e 15 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 1
+e 0 2
+e 0 4
+e 1 2
+e 1 3
+e 5 1
+e 7 6
+e 8 3
+e 9 7
+e 9 3
+e 10 5
+e 10 4
+e 11 2
+e 11 4
+e 12 0
+e 12 3
+e 13 8
+e 14 13
+e 15 6
+e 15 4
+e 16 14
+e 16 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 2 16
+e 2 0
+e 3 0
+e 3 11
+e 4 15
+e 5 13
+e 5 11
+e 6 0
+e 6 1
+e 7 15
+e 7 1
+e 8 11
+e 9 8
+e 10 4
+e 10 11
+e 12 14
+e 12 1
+e 13 3
+e 13 0
+e 13 1
+e 14 3
+e 16 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 2
+e 0 9
+e 1 11
+e 1 5
+e 2 1
+e 3 12
+e 3 9
+e 4 5
+e 6 14
+e 7 6
+e 7 11
+e 8 11
+e 8 9
+e 10 12
+e 13 1
+e 13 11
+e 13 9
+e 14 4
+e 15 13
+e 15 5
+e 16 10
+e 16 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 6
+e 1 9
+e 1 4
+e 2 15
+e 2 5
+e 3 5
+e 6 4
+e 6 5
+e 7 0
+e 7 13
+e 9 12
+e 10 16
+e 10 5
+e 11 8
+e 11 13
+e 12 3
+e 14 4
+e 14 13
+e 15 6
+e 15 4
+e 15 13
+e 16 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 1 9
+e 1 0
+e 3 12
+e 4 8
+e 4 0
+e 5 2
+e 5 16
+e 6 7
+e 6 16
+e 7 4
+e 9 4
+e 9 8
+e 9 16
+e 10 13
+e 10 8
+e 11 2
+e 12 0
+e 13 3
+e 14 8
+e 14 16
+e 15 11
+e 15 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 1 16
+e 1 2
+e 3 13
+e 4 12
+e 4 5
+e 6 10
+e 6 13
+e 7 0
+e 7 5
+e 8 2
+e 8 13
+e 9 8
+e 9 2
+e 9 5
+e 10 0
+e 11 9
+e 11 13
+e 12 8
+e 14 3
+e 15 2
+e 15 5
+e 16 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 2
+e 1 9
+e 1 10
+e 1 11
+e 2 16
+e 3 1
+e 3 5
+e 4 14
+e 4 11
+e 6 0
+e 6 10
+e 7 10
+e 7 11
+e 8 14
+e 9 10
+e 9 5
+e 12 15
+e 12 11
+e 13 8
+e 13 5
+e 15 9
+e 16 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 9
+e 0 8
+e 1 16
+e 2 3
+e 2 8
+e 3 16
+e 3 7
+e 3 5
+e 4 15
+e 6 1
+e 6 5
+e 9 10
+e 11 10
+e 11 5
+e 12 14
+e 12 7
+e 13 7
+e 13 5
+e 14 4
+e 15 8
+e 16 7
+e 16 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 11
+e 0 12
+e 1 8
+e 1 13
+e 2 13
+e 2 10
+e 3 16
+e 4 2
+e 4 13
+e 4 12
+e 6 14
+e 6 10
+e 7 5
+e 7 12
+e 8 3
+e 9 13
+e 9 12
+e 11 2
+e 14 5
+e 15 4
+e 15 10
+e 16 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 14
+e 1 3
+e 1 13
+e 2 4
+e 4 11
+e 5 9
+e 5 13
+e 6 16
+e 6 3
+e 7 14
+e 7 13
+e 8 0
+e 8 11
+e 9 15
+e 10 12
+e 10 11
+e 12 15
+e 12 3
+e 12 13
+e 15 3
+e 15 11
+e 16 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,23 @@
+p edge 17 22
+e 0 13
+e 0 6
+e 0 15
+e 1 7
+e 2 16
+e 2 7
+e 4 5
+e 4 15
+e 5 13
+e 8 3
+e 8 15
+e 9 1
+e 10 6
+e 10 15
+e 11 0
+e 11 7
+e 12 9
+e 13 6
+e 13 7
+e 14 12
+e 14 6
+e 16 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 3
+e 1 2
+e 1 3
+e 1 4
+e 6 5
+e 6 3
+e 7 0
+e 8 3
+e 9 0
+e 9 1
+e 10 8
+e 10 2
+e 11 5
+e 12 11
+e 12 4
+e 13 4
+e 14 2
+e 15 7
+e 15 4
+e 16 14
+e 16 13
+e 17 0
+e 17 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 1 15
+e 2 1
+e 2 3
+e 4 15
+e 4 0
+e 5 11
+e 5 17
+e 6 12
+e 6 8
+e 7 10
+e 7 8
+e 9 12
+e 9 13
+e 10 0
+e 11 8
+e 12 0
+e 13 8
+e 13 0
+e 13 3
+e 14 12
+e 16 14
+e 16 3
+e 17 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 4
+e 0 1
+e 1 10
+e 1 13
+e 1 2
+e 3 6
+e 3 13
+e 4 13
+e 5 10
+e 7 2
+e 8 4
+e 9 5
+e 9 7
+e 11 6
+e 12 8
+e 12 2
+e 14 17
+e 14 10
+e 15 4
+e 15 10
+e 16 11
+e 16 2
+e 17 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 6
+e 0 13
+e 1 2
+e 1 8
+e 2 15
+e 3 2
+e 3 13
+e 5 7
+e 5 10
+e 6 15
+e 7 13
+e 8 13
+e 8 15
+e 8 4
+e 9 2
+e 10 4
+e 12 9
+e 12 4
+e 14 11
+e 14 15
+e 16 11
+e 17 16
+e 17 4

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 10
+e 0 16
+e 2 3
+e 2 17
+e 3 1
+e 5 7
+e 6 16
+e 7 1
+e 8 17
+e 9 17
+e 9 1
+e 9 16
+e 10 4
+e 11 8
+e 11 6
+e 12 7
+e 12 9
+e 13 4
+e 13 1
+e 14 5
+e 14 16
+e 15 7
+e 15 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 1 6
+e 1 10
+e 2 10
+e 2 5
+e 2 0
+e 3 5
+e 4 3
+e 4 2
+e 6 5
+e 7 14
+e 7 5
+e 8 14
+e 9 11
+e 9 16
+e 11 10
+e 12 3
+e 13 12
+e 13 0
+e 15 3
+e 15 10
+e 16 0
+e 17 8
+e 17 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 9
+e 0 3
+e 1 3
+e 2 6
+e 2 14
+e 4 1
+e 4 17
+e 5 17
+e 5 3
+e 5 14
+e 6 7
+e 7 3
+e 8 16
+e 8 10
+e 10 14
+e 11 13
+e 11 14
+e 12 7
+e 12 5
+e 13 9
+e 15 7
+e 15 17
+e 16 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 5
+e 0 6
+e 0 1
+e 2 5
+e 3 17
+e 3 5
+e 7 4
+e 7 6
+e 8 9
+e 8 5
+e 9 6
+e 10 2
+e 10 15
+e 11 17
+e 12 17
+e 12 0
+e 13 4
+e 14 11
+e 14 1
+e 15 1
+e 16 13
+e 16 1
+e 17 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 6
+e 0 9
+e 1 17
+e 1 2
+e 3 4
+e 3 2
+e 4 6
+e 5 9
+e 7 10
+e 7 16
+e 8 12
+e 10 9
+e 11 8
+e 11 14
+e 13 10
+e 13 12
+e 14 2
+e 15 5
+e 15 12
+e 16 12
+e 16 9
+e 16 2
+e 17 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 2 15
+e 3 1
+e 4 11
+e 5 16
+e 6 12
+e 6 1
+e 7 0
+e 7 11
+e 8 5
+e 8 1
+e 9 16
+e 9 13
+e 10 2
+e 10 3
+e 12 0
+e 13 15
+e 13 11
+e 13 1
+e 14 16
+e 14 15
+e 16 11
+e 17 4
+e 17 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,24 @@
+p edge 18 23
+e 0 14
+e 1 3
+e 2 15
+e 4 16
+e 5 8
+e 6 8
+e 6 16
+e 6 14
+e 7 3
+e 7 16
+e 9 15
+e 9 6
+e 10 1
+e 10 14
+e 11 15
+e 11 8
+e 12 5
+e 12 0
+e 13 2
+e 13 14
+e 15 16
+e 17 4
+e 17 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 0 1
+e 0 2
+e 1 4
+e 3 4
+e 5 0
+e 5 3
+e 6 2
+e 6 4
+e 8 3
+e 9 2
+e 12 11
+e 12 8
+e 13 11
+e 13 1
+e 14 10
+e 14 3
+e 15 7
+e 15 2
+e 16 9
+e 16 1
+e 17 0
+e 17 4
+e 18 10
+e 18 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 0 13
+e 0 6
+e 1 13
+e 1 18
+e 2 6
+e 2 4
+e 3 4
+e 3 12
+e 5 9
+e 5 7
+e 6 12
+e 7 12
+e 8 2
+e 8 7
+e 10 9
+e 10 11
+e 14 17
+e 14 6
+e 15 2
+e 15 12
+e 16 11
+e 16 4
+e 17 4
+e 18 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 1 5
+e 1 9
+e 2 17
+e 2 12
+e 4 0
+e 4 7
+e 6 3
+e 6 12
+e 7 9
+e 8 12
+e 9 12
+e 10 11
+e 10 3
+e 13 16
+e 13 8
+e 14 17
+e 14 9
+e 15 5
+e 15 11
+e 16 3
+e 17 8
+e 17 3
+e 18 0
+e 18 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 1 6
+e 1 15
+e 2 0
+e 3 11
+e 3 2
+e 4 15
+e 4 16
+e 5 17
+e 5 7
+e 6 16
+e 7 2
+e 8 4
+e 8 0
+e 9 11
+e 9 12
+e 10 12
+e 10 16
+e 13 16
+e 13 0
+e 14 4
+e 14 2
+e 15 0
+e 18 17
+e 18 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 0 10
+e 1 16
+e 2 11
+e 3 7
+e 3 0
+e 4 7
+e 4 2
+e 5 13
+e 5 10
+e 6 17
+e 6 12
+e 8 13
+e 8 11
+e 9 16
+e 9 10
+e 11 10
+e 13 0
+e 13 16
+e 14 1
+e 14 0
+e 15 12
+e 15 16
+e 18 17
+e 18 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 0 16
+e 1 5
+e 1 16
+e 2 8
+e 3 7
+e 3 2
+e 4 6
+e 4 0
+e 5 2
+e 5 17
+e 7 17
+e 9 10
+e 9 17
+e 11 5
+e 11 8
+e 12 17
+e 12 8
+e 14 13
+e 14 10
+e 15 13
+e 15 16
+e 16 8
+e 18 6
+e 18 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 0 12
+e 0 17
+e 2 10
+e 2 3
+e 3 17
+e 4 14
+e 5 9
+e 5 12
+e 6 3
+e 6 12
+e 8 7
+e 8 4
+e 10 12
+e 11 6
+e 11 17
+e 13 7
+e 13 3
+e 14 17
+e 15 1
+e 15 14
+e 16 1
+e 16 9
+e 18 6
+e 18 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 0 2
+e 0 1
+e 2 16
+e 2 15
+e 3 2
+e 3 17
+e 5 9
+e 5 16
+e 6 12
+e 6 7
+e 7 17
+e 8 15
+e 8 1
+e 9 15
+e 10 4
+e 10 17
+e 11 12
+e 11 16
+e 14 13
+e 14 15
+e 16 1
+e 17 1
+e 18 4
+e 18 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 0 3
+e 0 11
+e 1 11
+e 1 15
+e 2 17
+e 2 15
+e 4 5
+e 5 13
+e 6 1
+e 6 13
+e 7 3
+e 7 4
+e 9 8
+e 9 17
+e 10 15
+e 10 13
+e 11 13
+e 12 8
+e 12 5
+e 14 15
+e 16 1
+e 16 5
+e 18 14
+e 18 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 1 0
+e 1 16
+e 2 8
+e 2 7
+e 3 10
+e 3 5
+e 4 8
+e 4 0
+e 5 18
+e 6 12
+e 6 5
+e 7 18
+e 9 17
+e 9 7
+e 11 10
+e 11 14
+e 12 16
+e 13 16
+e 13 18
+e 14 7
+e 15 17
+e 15 18
+e 17 5
+e 17 16

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,25 @@
+p edge 19 24
+e 1 13
+e 1 17
+e 2 18
+e 5 0
+e 5 3
+e 6 4
+e 7 4
+e 7 18
+e 8 18
+e 9 13
+e 9 2
+e 10 3
+e 10 4
+e 11 6
+e 11 2
+e 12 0
+e 12 8
+e 14 16
+e 14 8
+e 15 16
+e 15 18
+e 16 2
+e 16 4
+e 17 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 2
+e 0 3
+e 0 4
+e 2 3
+e 8 0
+e 8 1
+e 9 7
+e 10 3
+e 11 10
+e 11 1
+e 12 7
+e 12 4
+e 13 3
+e 13 4
+e 14 5
+e 14 1
+e 15 6
+e 15 2
+e 16 5
+e 16 4
+e 17 9
+e 18 17
+e 18 2
+e 19 6
+e 19 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 14
+e 0 2
+e 1 3
+e 1 2
+e 4 5
+e 5 15
+e 6 4
+e 6 13
+e 7 14
+e 7 19
+e 8 15
+e 8 2
+e 9 13
+e 9 3
+e 9 2
+e 10 12
+e 10 13
+e 11 9
+e 11 19
+e 13 3
+e 16 18
+e 16 19
+e 17 12
+e 17 19
+e 18 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 16
+e 1 16
+e 2 9
+e 2 0
+e 3 17
+e 3 15
+e 4 5
+e 4 15
+e 5 0
+e 5 16
+e 5 12
+e 6 7
+e 6 15
+e 8 17
+e 8 0
+e 9 11
+e 10 7
+e 10 12
+e 11 18
+e 13 1
+e 13 15
+e 14 18
+e 14 12
+e 19 16
+e 19 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 13
+e 0 16
+e 0 19
+e 1 7
+e 1 13
+e 2 15
+e 3 16
+e 3 19
+e 4 16
+e 6 4
+e 6 5
+e 9 7
+e 9 5
+e 10 2
+e 10 13
+e 12 0
+e 12 5
+e 13 16
+e 14 8
+e 14 19
+e 15 8
+e 17 11
+e 17 5
+e 18 11
+e 18 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 3
+e 0 15
+e 1 17
+e 1 8
+e 2 10
+e 2 15
+e 5 13
+e 5 16
+e 6 4
+e 6 15
+e 7 19
+e 7 16
+e 8 19
+e 9 14
+e 9 15
+e 10 19
+e 11 13
+e 12 3
+e 12 16
+e 14 8
+e 14 19
+e 14 16
+e 17 11
+e 18 4
+e 18 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 1
+e 0 7
+e 3 8
+e 3 2
+e 5 8
+e 5 19
+e 6 15
+e 6 2
+e 9 10
+e 10 4
+e 11 12
+e 11 7
+e 13 9
+e 13 19
+e 14 4
+e 14 7
+e 15 19
+e 15 12
+e 15 7
+e 16 18
+e 16 2
+e 17 1
+e 17 2
+e 18 12
+e 19 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 2
+e 1 2
+e 1 19
+e 4 15
+e 4 19
+e 5 7
+e 5 3
+e 6 7
+e 6 19
+e 8 16
+e 8 3
+e 9 0
+e 9 3
+e 10 18
+e 10 13
+e 11 14
+e 11 13
+e 12 15
+e 13 2
+e 14 12
+e 16 13
+e 16 2
+e 16 19
+e 17 18
+e 17 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 1
+e 0 15
+e 2 3
+e 5 2
+e 6 3
+e 6 15
+e 7 11
+e 8 1
+e 8 12
+e 9 7
+e 9 12
+e 10 4
+e 10 14
+e 13 4
+e 13 12
+e 14 11
+e 16 14
+e 16 11
+e 16 15
+e 17 5
+e 17 14
+e 18 11
+e 18 15
+e 19 16
+e 19 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 9
+e 0 6
+e 2 12
+e 2 14
+e 2 6
+e 3 14
+e 5 13
+e 5 12
+e 7 13
+e 7 4
+e 8 3
+e 8 4
+e 10 1
+e 11 1
+e 11 6
+e 12 14
+e 15 9
+e 15 4
+e 16 14
+e 16 6
+e 17 2
+e 17 4
+e 18 19
+e 18 12
+e 19 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 1 5
+e 2 13
+e 2 14
+e 3 5
+e 3 16
+e 6 13
+e 6 0
+e 7 14
+e 7 12
+e 7 16
+e 8 12
+e 8 16
+e 9 11
+e 9 14
+e 10 4
+e 10 16
+e 11 1
+e 14 12
+e 15 17
+e 15 0
+e 17 12
+e 18 7
+e 18 0
+e 19 4
+e 19 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,26 @@
+p edge 20 25
+e 0 13
+e 1 11
+e 2 13
+e 3 0
+e 3 13
+e 3 4
+e 5 6
+e 5 9
+e 7 1
+e 7 0
+e 8 2
+e 8 9
+e 10 6
+e 10 4
+e 11 17
+e 12 15
+e 12 0
+e 14 3
+e 14 9
+e 16 17
+e 16 4
+e 18 13
+e 18 4
+e 19 15
+e 19 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 1
+e 0 2
+e 0 4
+e 1 2
+e 5 4
+e 7 6
+e 8 2
+e 9 7
+e 9 3
+e 10 4
+e 11 3
+e 12 1
+e 14 1
+e 14 4
+e 15 6
+e 15 2
+e 16 13
+e 16 3
+e 17 5
+e 17 3
+e 18 10
+e 18 8
+e 19 13
+e 19 12
+e 20 11
+e 20 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 1 20
+e 1 9
+e 2 0
+e 6 20
+e 7 9
+e 8 4
+e 8 0
+e 10 4
+e 11 13
+e 11 15
+e 12 18
+e 12 5
+e 13 5
+e 14 10
+e 14 5
+e 15 20
+e 15 0
+e 15 9
+e 16 7
+e 16 2
+e 17 3
+e 17 6
+e 18 9
+e 19 3
+e 19 5
+e 20 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 5
+e 0 11
+e 1 8
+e 1 18
+e 2 14
+e 2 13
+e 4 20
+e 5 13
+e 6 9
+e 6 15
+e 7 10
+e 7 19
+e 8 19
+e 10 13
+e 11 3
+e 12 20
+e 12 3
+e 14 3
+e 15 14
+e 16 4
+e 16 19
+e 17 9
+e 17 19
+e 18 14
+e 18 3
+e 18 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 4
+e 0 15
+e 0 11
+e 1 4
+e 1 11
+e 3 2
+e 3 10
+e 4 15
+e 5 7
+e 5 10
+e 6 2
+e 6 8
+e 7 18
+e 8 4
+e 9 18
+e 9 15
+e 12 19
+e 12 17
+e 13 11
+e 14 13
+e 14 10
+e 16 20
+e 16 0
+e 17 15
+e 19 11
+e 20 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 6
+e 2 20
+e 2 1
+e 3 7
+e 3 0
+e 7 5
+e 8 10
+e 9 8
+e 9 1
+e 11 19
+e 11 13
+e 12 4
+e 12 1
+e 13 17
+e 13 6
+e 13 5
+e 14 17
+e 14 5
+e 15 10
+e 15 6
+e 16 17
+e 17 6
+e 18 4
+e 18 16
+e 19 1
+e 20 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 16
+e 0 18
+e 4 13
+e 4 3
+e 6 20
+e 7 1
+e 7 20
+e 8 3
+e 9 1
+e 10 5
+e 10 11
+e 11 6
+e 12 5
+e 12 3
+e 13 2
+e 14 6
+e 14 2
+e 15 6
+e 15 20
+e 15 2
+e 16 2
+e 17 8
+e 17 15
+e 18 20
+e 19 9
+e 19 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 18
+e 0 13
+e 0 10
+e 1 5
+e 2 16
+e 2 5
+e 3 12
+e 3 13
+e 4 9
+e 4 6
+e 6 18
+e 7 12
+e 8 15
+e 8 14
+e 11 9
+e 11 5
+e 14 13
+e 15 10
+e 16 10
+e 17 1
+e 17 0
+e 18 13
+e 19 18
+e 19 10
+e 20 7
+e 20 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 19
+e 0 18
+e 2 20
+e 3 4
+e 3 6
+e 5 13
+e 7 2
+e 8 11
+e 8 14
+e 9 5
+e 9 6
+e 10 4
+e 10 7
+e 11 1
+e 12 13
+e 12 20
+e 14 20
+e 15 2
+e 15 1
+e 16 17
+e 16 6
+e 17 1
+e 18 2
+e 18 20
+e 18 1
+e 19 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 1 3
+e 2 9
+e 4 6
+e 6 3
+e 7 11
+e 8 7
+e 8 12
+e 10 18
+e 10 11
+e 12 6
+e 12 3
+e 12 9
+e 13 5
+e 13 11
+e 14 9
+e 15 14
+e 15 11
+e 16 2
+e 16 1
+e 17 0
+e 17 3
+e 18 0
+e 19 5
+e 19 4
+e 20 6
+e 20 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 6
+e 0 12
+e 1 9
+e 3 14
+e 3 1
+e 4 15
+e 4 13
+e 5 12
+e 6 9
+e 7 5
+e 7 20
+e 8 6
+e 10 16
+e 10 8
+e 11 19
+e 11 20
+e 13 6
+e 13 9
+e 13 12
+e 14 12
+e 15 20
+e 17 2
+e 17 9
+e 18 16
+e 18 20
+e 19 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,27 @@
+p edge 21 26
+e 0 6
+e 1 2
+e 1 14
+e 4 3
+e 5 20
+e 5 3
+e 7 14
+e 8 2
+e 9 6
+e 10 9
+e 10 7
+e 11 17
+e 11 6
+e 12 20
+e 12 13
+e 13 17
+e 15 8
+e 15 3
+e 16 17
+e 16 14
+e 16 6
+e 17 14
+e 18 4
+e 18 16
+e 19 0
+e 19 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 1 2
+e 1 3
+e 1 4
+e 2 4
+e 7 3
+e 7 4
+e 8 5
+e 8 3
+e 9 6
+e 11 4
+e 12 0
+e 12 2
+e 13 0
+e 14 10
+e 14 1
+e 15 10
+e 15 0
+e 16 3
+e 17 2
+e 18 16
+e 18 0
+e 19 6
+e 19 5
+e 20 17
+e 20 9
+e 21 13
+e 21 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 18
+e 0 3
+e 1 15
+e 2 9
+e 2 19
+e 4 7
+e 4 8
+e 5 17
+e 5 15
+e 6 21
+e 6 16
+e 8 13
+e 8 17
+e 8 15
+e 9 17
+e 10 19
+e 10 13
+e 11 7
+e 11 19
+e 12 3
+e 12 17
+e 13 15
+e 14 19
+e 16 18
+e 20 14
+e 20 1
+e 21 13

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 18
+e 1 2
+e 3 6
+e 3 17
+e 4 14
+e 4 17
+e 6 16
+e 7 17
+e 7 0
+e 8 5
+e 8 16
+e 9 12
+e 9 1
+e 10 14
+e 10 21
+e 11 17
+e 12 0
+e 13 11
+e 13 20
+e 15 16
+e 15 18
+e 19 2
+e 19 5
+e 20 18
+e 21 0
+e 21 16
+e 21 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 1 17
+e 1 12
+e 3 0
+e 3 10
+e 4 2
+e 4 7
+e 6 10
+e 8 5
+e 9 0
+e 9 13
+e 11 10
+e 11 14
+e 12 19
+e 13 14
+e 13 7
+e 13 5
+e 14 5
+e 15 16
+e 15 10
+e 16 7
+e 17 14
+e 18 19
+e 18 2
+e 20 7
+e 20 5
+e 21 6
+e 21 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 9
+e 0 11
+e 1 3
+e 2 16
+e 2 6
+e 4 11
+e 5 17
+e 5 9
+e 6 1
+e 6 11
+e 6 3
+e 8 3
+e 10 20
+e 10 8
+e 12 16
+e 12 7
+e 13 11
+e 13 3
+e 14 4
+e 14 7
+e 15 17
+e 18 7
+e 18 1
+e 19 21
+e 19 15
+e 20 7
+e 21 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 1 16
+e 1 19
+e 2 19
+e 3 20
+e 3 2
+e 4 6
+e 6 19
+e 8 9
+e 8 15
+e 9 16
+e 10 15
+e 10 6
+e 11 5
+e 12 6
+e 12 16
+e 12 19
+e 13 5
+e 13 7
+e 14 7
+e 14 16
+e 17 0
+e 17 15
+e 18 0
+e 18 12
+e 20 15
+e 21 4
+e 21 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 6
+e 0 13
+e 1 2
+e 1 5
+e 3 20
+e 3 4
+e 4 8
+e 5 12
+e 5 9
+e 5 14
+e 6 21
+e 7 9
+e 11 10
+e 11 9
+e 12 14
+e 13 14
+e 15 8
+e 15 10
+e 16 7
+e 16 21
+e 17 9
+e 17 14
+e 18 2
+e 18 21
+e 19 21
+e 19 12
+e 20 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 17
+e 0 11
+e 1 18
+e 1 21
+e 2 4
+e 2 15
+e 4 11
+e 5 9
+e 6 13
+e 6 12
+e 7 21
+e 7 8
+e 9 3
+e 10 11
+e 10 9
+e 12 9
+e 12 8
+e 12 3
+e 14 8
+e 14 3
+e 15 3
+e 16 13
+e 16 11
+e 17 8
+e 19 5
+e 19 20
+e 20 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 10
+e 0 2
+e 0 20
+e 1 8
+e 1 13
+e 3 4
+e 3 0
+e 5 4
+e 5 21
+e 7 9
+e 7 21
+e 8 10
+e 9 2
+e 10 20
+e 11 20
+e 13 6
+e 14 12
+e 14 2
+e 15 2
+e 15 20
+e 16 21
+e 17 16
+e 17 11
+e 18 21
+e 18 10
+e 19 6
+e 19 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 16
+e 2 16
+e 2 21
+e 3 13
+e 3 0
+e 4 1
+e 4 8
+e 5 12
+e 5 9
+e 6 21
+e 6 1
+e 7 8
+e 10 7
+e 10 1
+e 10 8
+e 11 8
+e 13 7
+e 14 9
+e 14 7
+e 15 9
+e 17 12
+e 17 10
+e 18 1
+e 19 15
+e 19 11
+e 20 18
+e 20 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,28 @@
+p edge 22 27
+e 0 20
+e 0 9
+e 2 9
+e 2 19
+e 4 16
+e 5 3
+e 5 14
+e 6 1
+e 6 20
+e 7 14
+e 8 16
+e 8 9
+e 8 19
+e 10 1
+e 11 4
+e 11 10
+e 12 3
+e 12 8
+e 13 9
+e 15 13
+e 15 14
+e 16 19
+e 17 19
+e 18 14
+e 18 16
+e 21 7
+e 21 17

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 0 2
+e 0 3
+e 0 4
+e 5 3
+e 6 1
+e 6 4
+e 7 1
+e 9 2
+e 9 4
+e 10 2
+e 10 3
+e 12 11
+e 13 11
+e 13 4
+e 14 2
+e 15 5
+e 16 1
+e 17 14
+e 17 7
+e 18 8
+e 18 1
+e 19 15
+e 19 8
+e 20 0
+e 21 12
+e 21 3
+e 22 20
+e 22 16

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 2 3
+e 2 0
+e 3 7
+e 5 21
+e 5 13
+e 5 11
+e 6 4
+e 6 11
+e 7 13
+e 8 18
+e 8 20
+e 9 15
+e 9 13
+e 10 21
+e 12 21
+e 12 13
+e 14 21
+e 14 11
+e 15 4
+e 16 1
+e 17 0
+e 17 1
+e 18 5
+e 19 10
+e 19 16
+e 20 1
+e 22 1
+e 22 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 2 0
+e 3 11
+e 4 22
+e 4 2
+e 5 9
+e 6 0
+e 6 1
+e 8 18
+e 8 1
+e 9 10
+e 12 11
+e 12 10
+e 12 1
+e 13 11
+e 13 10
+e 14 0
+e 15 18
+e 16 15
+e 16 10
+e 17 11
+e 17 1
+e 19 5
+e 19 7
+e 20 7
+e 20 0
+e 21 3
+e 21 14
+e 22 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 0 20
+e 0 9
+e 1 7
+e 1 16
+e 2 11
+e 2 12
+e 4 6
+e 4 9
+e 5 20
+e 7 6
+e 8 5
+e 8 17
+e 10 3
+e 10 9
+e 11 18
+e 12 3
+e 13 14
+e 14 17
+e 15 6
+e 15 17
+e 16 3
+e 18 6
+e 18 17
+e 18 9
+e 21 19
+e 21 3
+e 22 13
+e 22 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 0 2
+e 1 5
+e 1 16
+e 2 22
+e 2 14
+e 2 11
+e 4 22
+e 4 11
+e 6 14
+e 7 21
+e 7 5
+e 8 22
+e 8 14
+e 9 3
+e 9 11
+e 10 16
+e 12 0
+e 12 18
+e 13 16
+e 13 11
+e 15 19
+e 15 14
+e 17 22
+e 18 16
+e 19 3
+e 20 17
+e 20 10
+e 21 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 0 9
+e 1 22
+e 1 17
+e 4 12
+e 4 2
+e 5 14
+e 5 17
+e 5 2
+e 6 14
+e 6 17
+e 7 5
+e 8 21
+e 8 16
+e 9 17
+e 10 0
+e 10 19
+e 11 12
+e 13 7
+e 13 11
+e 15 19
+e 15 12
+e 16 12
+e 18 14
+e 18 2
+e 20 3
+e 20 2
+e 21 14
+e 22 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 0 11
+e 0 5
+e 1 19
+e 2 1
+e 4 8
+e 4 17
+e 5 17
+e 6 17
+e 9 17
+e 9 3
+e 10 15
+e 11 16
+e 12 16
+e 12 19
+e 13 7
+e 13 3
+e 14 10
+e 14 6
+e 15 16
+e 15 19
+e 15 3
+e 18 7
+e 20 16
+e 20 3
+e 21 2
+e 21 8
+e 22 18
+e 22 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 0 15
+e 0 17
+e 1 2
+e 1 21
+e 2 5
+e 4 10
+e 4 19
+e 5 10
+e 5 14
+e 5 19
+e 6 13
+e 6 14
+e 7 17
+e 7 19
+e 8 12
+e 8 15
+e 9 10
+e 11 17
+e 12 18
+e 13 3
+e 16 9
+e 16 11
+e 18 14
+e 20 3
+e 20 19
+e 21 17
+e 22 10
+e 22 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 0 2
+e 4 21
+e 5 1
+e 5 9
+e 6 0
+e 6 12
+e 7 1
+e 8 3
+e 10 4
+e 10 8
+e 11 2
+e 11 9
+e 13 19
+e 13 15
+e 14 3
+e 16 3
+e 16 9
+e 17 7
+e 17 14
+e 18 1
+e 18 12
+e 19 20
+e 20 12
+e 21 1
+e 21 12
+e 21 9
+e 22 15
+e 22 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 2 22
+e 2 0
+e 4 0
+e 5 0
+e 7 19
+e 8 1
+e 8 6
+e 9 7
+e 9 5
+e 10 0
+e 10 3
+e 11 14
+e 11 4
+e 12 16
+e 13 1
+e 13 3
+e 14 1
+e 16 6
+e 17 20
+e 17 6
+e 18 12
+e 18 22
+e 19 1
+e 19 6
+e 19 3
+e 20 15
+e 21 15
+e 21 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,29 @@
+p edge 23 28
+e 1 2
+e 1 10
+e 2 5
+e 3 0
+e 3 19
+e 4 0
+e 5 9
+e 5 17
+e 5 19
+e 6 17
+e 7 18
+e 8 9
+e 8 17
+e 10 0
+e 11 22
+e 11 13
+e 12 18
+e 12 19
+e 14 16
+e 14 4
+e 15 9
+e 15 19
+e 16 9
+e 20 13
+e 20 0
+e 21 7
+e 21 17
+e 22 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 1
+e 0 2
+e 0 4
+e 1 3
+e 6 1
+e 7 3
+e 8 5
+e 8 4
+e 10 9
+e 10 5
+e 12 2
+e 12 4
+e 13 11
+e 15 13
+e 16 7
+e 16 0
+e 17 6
+e 17 4
+e 18 15
+e 18 1
+e 19 14
+e 19 2
+e 20 3
+e 21 20
+e 21 9
+e 22 2
+e 22 3
+e 23 14
+e 23 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 21
+e 0 12
+e 1 3
+e 1 9
+e 2 14
+e 3 12
+e 4 11
+e 4 15
+e 5 17
+e 5 9
+e 6 22
+e 6 11
+e 7 10
+e 7 17
+e 12 14
+e 13 10
+e 13 8
+e 16 15
+e 16 9
+e 18 8
+e 19 2
+e 19 23
+e 20 17
+e 20 14
+e 21 18
+e 22 14
+e 23 12
+e 23 17
+e 23 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 14
+e 1 14
+e 2 3
+e 2 12
+e 4 13
+e 7 13
+e 7 12
+e 7 21
+e 8 12
+e 8 14
+e 10 12
+e 10 21
+e 11 1
+e 11 6
+e 13 14
+e 15 3
+e 15 9
+e 16 22
+e 17 0
+e 17 7
+e 18 16
+e 18 13
+e 19 4
+e 19 21
+e 20 5
+e 20 21
+e 22 9
+e 23 6
+e 23 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 7
+e 0 10
+e 2 23
+e 2 19
+e 2 6
+e 3 19
+e 3 6
+e 4 12
+e 4 6
+e 5 18
+e 5 2
+e 8 22
+e 8 1
+e 11 19
+e 11 16
+e 12 23
+e 13 7
+e 13 19
+e 14 9
+e 14 6
+e 15 20
+e 15 23
+e 17 1
+e 17 9
+e 18 16
+e 20 21
+e 21 10
+e 22 16
+e 23 16

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 1 11
+e 1 7
+e 2 0
+e 2 6
+e 3 11
+e 3 12
+e 4 21
+e 4 7
+e 5 12
+e 8 5
+e 8 9
+e 9 19
+e 9 11
+e 9 7
+e 10 16
+e 13 23
+e 13 16
+e 14 6
+e 14 7
+e 15 10
+e 17 12
+e 18 15
+e 18 19
+e 19 12
+e 20 23
+e 20 11
+e 21 19
+e 22 17
+e 22 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 15
+e 1 15
+e 2 0
+e 2 20
+e 2 12
+e 4 20
+e 4 15
+e 5 17
+e 5 11
+e 6 11
+e 6 19
+e 7 3
+e 7 21
+e 8 22
+e 8 0
+e 9 19
+e 9 12
+e 10 3
+e 10 20
+e 13 14
+e 13 12
+e 14 0
+e 16 21
+e 17 15
+e 18 20
+e 18 12
+e 22 16
+e 23 1
+e 23 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 8
+e 0 9
+e 1 3
+e 1 2
+e 3 19
+e 4 23
+e 5 4
+e 5 22
+e 6 14
+e 6 23
+e 7 10
+e 7 22
+e 11 16
+e 11 22
+e 12 23
+e 12 10
+e 12 22
+e 13 8
+e 13 10
+e 14 21
+e 15 19
+e 17 10
+e 17 19
+e 18 2
+e 18 16
+e 20 15
+e 20 12
+e 21 9
+e 23 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 5
+e 0 23
+e 1 23
+e 2 16
+e 2 15
+e 3 15
+e 3 9
+e 4 23
+e 6 20
+e 6 4
+e 7 19
+e 7 16
+e 8 1
+e 8 10
+e 10 4
+e 10 5
+e 10 9
+e 11 22
+e 12 17
+e 12 22
+e 13 5
+e 13 9
+e 14 18
+e 14 9
+e 18 4
+e 19 23
+e 20 11
+e 21 17
+e 21 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 13
+e 0 7
+e 2 17
+e 2 9
+e 3 10
+e 4 9
+e 7 9
+e 7 5
+e 7 21
+e 8 6
+e 9 6
+e 11 16
+e 11 10
+e 12 15
+e 12 21
+e 13 6
+e 14 5
+e 14 21
+e 17 3
+e 18 8
+e 18 1
+e 19 16
+e 19 5
+e 20 1
+e 20 15
+e 22 5
+e 22 6
+e 23 4
+e 23 21

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 1 19
+e 1 0
+e 4 14
+e 4 13
+e 5 12
+e 5 3
+e 6 2
+e 6 12
+e 7 20
+e 7 12
+e 7 0
+e 9 13
+e 9 22
+e 10 8
+e 11 17
+e 11 7
+e 14 3
+e 15 18
+e 15 20
+e 16 12
+e 16 0
+e 17 3
+e 18 10
+e 19 20
+e 20 3
+e 21 2
+e 21 8
+e 23 22
+e 23 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,30 @@
+p edge 24 29
+e 0 8
+e 0 22
+e 0 14
+e 2 3
+e 2 14
+e 5 7
+e 6 5
+e 6 8
+e 7 21
+e 8 1
+e 9 11
+e 9 3
+e 10 8
+e 12 1
+e 13 12
+e 13 0
+e 15 10
+e 15 14
+e 16 1
+e 17 22
+e 17 1
+e 18 4
+e 18 22
+e 19 4
+e 19 21
+e 20 16
+e 20 11
+e 23 22
+e 23 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 2
+e 1 2
+e 1 4
+e 2 3
+e 2 4
+e 5 0
+e 5 1
+e 6 4
+e 9 8
+e 12 7
+e 13 9
+e 14 10
+e 15 10
+e 15 0
+e 16 6
+e 17 14
+e 17 4
+e 18 12
+e 18 11
+e 19 3
+e 20 11
+e 20 3
+e 21 13
+e 21 3
+e 22 7
+e 22 0
+e 23 19
+e 23 1
+e 24 16
+e 24 8

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 1 9
+e 1 22
+e 2 23
+e 2 3
+e 3 16
+e 4 16
+e 4 0
+e 5 10
+e 5 3
+e 7 17
+e 7 0
+e 8 0
+e 9 8
+e 11 10
+e 12 3
+e 12 4
+e 13 22
+e 14 15
+e 14 6
+e 16 6
+e 16 0
+e 17 23
+e 18 6
+e 19 13
+e 20 18
+e 20 4
+e 21 19
+e 21 6
+e 24 11
+e 24 15

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 14
+e 1 11
+e 2 15
+e 3 19
+e 4 7
+e 4 5
+e 6 19
+e 6 16
+e 7 9
+e 7 5
+e 8 1
+e 12 3
+e 12 10
+e 13 9
+e 14 5
+e 16 7
+e 17 13
+e 17 4
+e 18 15
+e 18 16
+e 20 0
+e 20 11
+e 21 16
+e 21 4
+e 22 10
+e 22 9
+e 23 8
+e 23 9
+e 24 2
+e 24 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 21
+e 0 16
+e 2 16
+e 3 22
+e 3 19
+e 5 15
+e 5 1
+e 6 11
+e 7 4
+e 9 8
+e 10 6
+e 10 8
+e 11 1
+e 12 4
+e 12 20
+e 13 14
+e 13 20
+e 15 2
+e 17 7
+e 17 16
+e 18 9
+e 18 0
+e 20 21
+e 21 8
+e 21 16
+e 22 14
+e 23 19
+e 23 8
+e 24 20
+e 24 0

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 7
+e 2 1
+e 3 1
+e 3 19
+e 4 20
+e 5 4
+e 6 0
+e 6 20
+e 7 19
+e 8 14
+e 8 19
+e 9 3
+e 10 22
+e 10 9
+e 11 21
+e 11 1
+e 13 24
+e 13 21
+e 14 12
+e 15 3
+e 15 19
+e 16 9
+e 16 15
+e 17 12
+e 17 9
+e 18 2
+e 18 15
+e 23 5
+e 23 1
+e 24 22

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 16
+e 0 11
+e 1 13
+e 2 14
+e 2 18
+e 3 18
+e 3 10
+e 4 5
+e 4 10
+e 5 11
+e 7 22
+e 7 17
+e 8 20
+e 9 1
+e 9 20
+e 10 12
+e 10 17
+e 12 11
+e 12 17
+e 13 17
+e 15 19
+e 16 8
+e 18 12
+e 21 19
+e 21 18
+e 22 14
+e 23 6
+e 23 11
+e 24 15
+e 24 6

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 7
+e 1 5
+e 2 20
+e 3 2
+e 4 16
+e 4 18
+e 6 7
+e 6 20
+e 7 19
+e 7 20
+e 8 5
+e 8 0
+e 9 0
+e 9 6
+e 10 22
+e 11 19
+e 13 21
+e 13 19
+e 14 12
+e 14 0
+e 15 3
+e 15 22
+e 16 12
+e 17 18
+e 17 19
+e 21 10
+e 23 11
+e 23 6
+e 24 1
+e 24 20

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 8
+e 0 5
+e 1 19
+e 1 7
+e 2 11
+e 3 5
+e 4 15
+e 4 18
+e 6 16
+e 6 21
+e 7 14
+e 8 22
+e 10 21
+e 10 5
+e 11 18
+e 12 7
+e 12 24
+e 13 2
+e 13 20
+e 14 5
+e 14 18
+e 15 19
+e 16 9
+e 17 3
+e 17 24
+e 22 20
+e 23 9
+e 23 7
+e 24 14
+e 24 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 3
+e 0 19
+e 1 14
+e 1 24
+e 3 17
+e 3 19
+e 4 3
+e 5 23
+e 6 10
+e 6 4
+e 7 24
+e 7 17
+e 8 10
+e 9 11
+e 12 4
+e 12 0
+e 13 2
+e 13 4
+e 14 2
+e 15 8
+e 15 19
+e 16 18
+e 16 17
+e 18 9
+e 20 5
+e 20 11
+e 21 17
+e 22 21
+e 22 0
+e 23 19

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 2
+e 0 13
+e 1 3
+e 2 9
+e 3 21
+e 4 10
+e 4 21
+e 6 14
+e 6 2
+e 7 8
+e 9 5
+e 9 19
+e 10 17
+e 11 1
+e 11 5
+e 12 14
+e 13 9
+e 13 19
+e 16 15
+e 16 5
+e 17 19
+e 18 12
+e 18 15
+e 20 8
+e 20 2
+e 22 24
+e 22 13
+e 23 7
+e 23 19
+e 24 5

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,31 @@
+p edge 25 30
+e 0 17
+e 1 9
+e 1 23
+e 2 3
+e 2 15
+e 3 20
+e 4 15
+e 4 17
+e 5 0
+e 5 14
+e 6 20
+e 6 10
+e 8 22
+e 9 7
+e 10 12
+e 11 18
+e 12 17
+e 12 23
+e 13 10
+e 13 14
+e 14 12
+e 14 23
+e 16 7
+e 16 10
+e 19 8
+e 19 18
+e 21 24
+e 21 17
+e 22 23
+e 24 11

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 1
+e 0 2
+e 5 3
+e 11 6
+e 11 3
+e 12 1
+e 13 9
+e 13 2
+e 15 1
+e 15 4
+e 16 14
+e 16 3
+e 19 18
+e 19 2
+e 20 0
+e 21 18
+e 21 1
+e 22 14
+e 22 7
+e 23 17
+e 23 3
+e 24 12
+e 25 5
+e 25 4
+e 26 6
+e 26 2
+e 27 20
+e 27 10
+e 28 8
+e 29 4
+e 30 28
+e 30 4
+e 31 9
+e 31 8
+e 32 17
+e 32 10
+e 33 29
+e 33 0
+e 34 24
+e 34 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 17
+e 0 11
+e 2 31
+e 2 11
+e 3 29
+e 3 34
+e 4 7
+e 6 26
+e 6 7
+e 8 12
+e 8 33
+e 10 31
+e 10 33
+e 12 28
+e 13 14
+e 13 34
+e 16 23
+e 16 7
+e 18 30
+e 18 1
+e 19 4
+e 19 28
+e 20 5
+e 20 15
+e 21 30
+e 21 15
+e 22 14
+e 22 11
+e 23 11
+e 24 17
+e 24 15
+e 25 1
+e 25 7
+e 26 9
+e 27 1
+e 28 1
+e 28 15
+e 29 27
+e 32 5
+e 32 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 27
+e 2 11
+e 2 1
+e 4 11
+e 4 27
+e 5 26
+e 5 1
+e 6 8
+e 7 21
+e 7 19
+e 8 27
+e 8 1
+e 9 12
+e 9 25
+e 10 15
+e 13 16
+e 14 26
+e 14 16
+e 17 12
+e 17 16
+e 18 6
+e 18 25
+e 20 30
+e 20 19
+e 21 0
+e 22 3
+e 22 34
+e 23 30
+e 23 16
+e 24 34
+e 28 13
+e 28 15
+e 29 10
+e 29 8
+e 31 27
+e 31 15
+e 32 24
+e 32 15
+e 33 3
+e 33 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 2 17
+e 3 1
+e 4 20
+e 4 17
+e 5 16
+e 5 10
+e 6 7
+e 6 27
+e 8 18
+e 8 28
+e 9 16
+e 9 22
+e 11 33
+e 11 0
+e 12 25
+e 12 27
+e 13 21
+e 13 10
+e 14 2
+e 14 32
+e 15 10
+e 19 21
+e 19 0
+e 20 28
+e 23 18
+e 23 27
+e 24 1
+e 24 17
+e 26 25
+e 26 10
+e 29 3
+e 30 15
+e 30 17
+e 31 29
+e 31 22
+e 32 1
+e 32 27
+e 33 32
+e 34 7
+e 34 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 11
+e 0 7
+e 3 30
+e 3 8
+e 4 5
+e 4 8
+e 5 24
+e 6 18
+e 6 12
+e 9 1
+e 9 33
+e 10 23
+e 10 7
+e 14 13
+e 14 2
+e 15 16
+e 16 28
+e 17 28
+e 17 12
+e 19 27
+e 19 17
+e 20 18
+e 20 28
+e 21 13
+e 21 12
+e 22 34
+e 22 24
+e 23 17
+e 25 28
+e 25 8
+e 26 15
+e 26 33
+e 27 8
+e 29 11
+e 29 2
+e 30 2
+e 31 1
+e 31 2
+e 32 34
+e 32 12

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 10
+e 0 30
+e 1 10
+e 1 33
+e 2 7
+e 4 32
+e 4 7
+e 6 22
+e 6 5
+e 8 14
+e 11 14
+e 11 7
+e 12 30
+e 13 3
+e 13 33
+e 15 31
+e 15 5
+e 16 17
+e 17 14
+e 17 33
+e 18 21
+e 18 33
+e 19 12
+e 19 7
+e 23 21
+e 23 14
+e 24 2
+e 24 17
+e 25 16
+e 25 29
+e 26 9
+e 26 20
+e 27 22
+e 27 20
+e 28 3
+e 28 20
+e 31 8
+e 32 20
+e 34 9
+e 34 29

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 31
+e 0 32
+e 1 12
+e 1 30
+e 3 17
+e 4 29
+e 4 23
+e 5 14
+e 5 30
+e 6 21
+e 6 20
+e 8 29
+e 8 12
+e 10 31
+e 10 9
+e 11 27
+e 11 23
+e 13 30
+e 14 32
+e 15 12
+e 16 7
+e 16 2
+e 17 12
+e 17 23
+e 18 13
+e 18 17
+e 19 15
+e 22 21
+e 22 23
+e 24 7
+e 24 32
+e 25 26
+e 25 30
+e 26 20
+e 28 19
+e 28 2
+e 33 3
+e 33 9
+e 34 27
+e 34 32

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 24
+e 3 22
+e 3 19
+e 6 22
+e 6 1
+e 7 21
+e 8 10
+e 8 12
+e 9 32
+e 11 10
+e 11 1
+e 13 1
+e 14 28
+e 14 19
+e 15 5
+e 15 12
+e 16 5
+e 16 32
+e 17 9
+e 17 15
+e 20 7
+e 20 31
+e 21 5
+e 23 2
+e 23 31
+e 25 18
+e 25 12
+e 26 0
+e 26 32
+e 27 18
+e 27 24
+e 28 15
+e 29 4
+e 29 5
+e 30 13
+e 30 32
+e 33 4
+e 33 12
+e 34 2
+e 34 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 14
+e 0 23
+e 1 18
+e 1 34
+e 2 28
+e 2 33
+e 3 26
+e 3 6
+e 5 17
+e 7 14
+e 7 6
+e 8 4
+e 8 25
+e 9 15
+e 9 29
+e 12 11
+e 12 34
+e 13 21
+e 13 19
+e 15 33
+e 16 11
+e 16 6
+e 18 5
+e 20 4
+e 20 23
+e 21 6
+e 22 25
+e 24 10
+e 24 17
+e 27 26
+e 27 29
+e 28 19
+e 30 22
+e 30 19
+e 31 17
+e 31 19
+e 32 10
+e 32 23
+e 33 17
+e 33 23

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 0 23
+e 2 0
+e 2 28
+e 3 22
+e 3 29
+e 4 12
+e 4 9
+e 5 6
+e 5 7
+e 8 15
+e 8 29
+e 10 22
+e 10 27
+e 11 16
+e 11 7
+e 12 28
+e 13 19
+e 14 7
+e 17 14
+e 17 23
+e 18 27
+e 19 24
+e 20 18
+e 20 23
+e 25 15
+e 25 7
+e 26 16
+e 26 21
+e 28 24
+e 28 29
+e 30 24
+e 30 23
+e 31 1
+e 31 24
+e 32 13
+e 32 21
+e 33 6
+e 33 9
+e 34 1
+e 34 29

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,41 @@
+p edge 35 40
+e 2 11
+e 2 29
+e 3 14
+e 3 30
+e 4 8
+e 5 29
+e 7 33
+e 7 0
+e 9 20
+e 9 24
+e 10 17
+e 10 22
+e 12 31
+e 12 6
+e 13 11
+e 13 30
+e 15 21
+e 15 1
+e 16 8
+e 16 1
+e 17 4
+e 19 23
+e 19 6
+e 20 1
+e 21 6
+e 24 8
+e 24 30
+e 25 18
+e 25 6
+e 26 18
+e 26 22
+e 27 14
+e 27 8
+e 28 31
+e 28 30
+e 32 23
+e 32 0
+e 33 24
+e 34 5
+e 34 1

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 1 2
+e 1 4
+e 9 5
+e 10 2
+e 15 3
+e 16 5
+e 16 4
+e 17 13
+e 17 3
+e 18 11
+e 18 6
+e 19 15
+e 20 0
+e 20 1
+e 22 14
+e 22 12
+e 24 12
+e 24 11
+e 26 10
+e 26 4
+e 27 21
+e 27 13
+e 28 25
+e 28 4
+e 29 8
+e 29 2
+e 30 7
+e 30 0
+e 31 7
+e 32 14
+e 33 32
+e 33 19
+e 34 25
+e 35 23
+e 36 35
+e 36 0
+e 38 8
+e 38 6
+e 39 34
+e 39 23
+e 40 37
+e 40 3
+e 41 21
+e 41 1
+e 42 37
+e 42 0
+e 43 9
+e 43 3
+e 44 31
+e 44 2

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 4
+e 0 13
+e 1 36
+e 1 40
+e 2 17
+e 2 11
+e 3 21
+e 3 11
+e 5 7
+e 5 25
+e 6 42
+e 6 4
+e 8 9
+e 8 25
+e 9 44
+e 10 39
+e 10 34
+e 12 26
+e 13 25
+e 13 11
+e 14 38
+e 14 13
+e 15 29
+e 15 19
+e 16 38
+e 16 29
+e 20 19
+e 21 25
+e 22 18
+e 22 36
+e 23 12
+e 23 19
+e 24 20
+e 27 42
+e 27 19
+e 28 26
+e 28 11
+e 30 44
+e 30 4
+e 31 41
+e 32 31
+e 32 24
+e 33 37
+e 33 4
+e 35 7
+e 35 40
+e 37 34
+e 39 17
+e 43 41
+e 43 18

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 8
+e 0 25
+e 2 29
+e 3 5
+e 4 1
+e 4 9
+e 6 11
+e 6 9
+e 12 11
+e 13 10
+e 13 24
+e 14 25
+e 14 7
+e 16 39
+e 18 15
+e 18 17
+e 20 12
+e 20 29
+e 21 2
+e 21 10
+e 23 22
+e 24 5
+e 24 9
+e 27 16
+e 28 32
+e 28 10
+e 30 26
+e 30 39
+e 31 15
+e 31 5
+e 33 1
+e 34 32
+e 34 39
+e 35 23
+e 35 5
+e 36 33
+e 36 39
+e 37 3
+e 37 9
+e 38 8
+e 40 19
+e 40 26
+e 41 38
+e 41 27
+e 42 22
+e 42 10
+e 43 7
+e 43 17
+e 44 19
+e 44 24

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p2.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p2.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 25
+e 0 44
+e 1 31
+e 1 34
+e 3 44
+e 4 37
+e 4 34
+e 6 2
+e 6 34
+e 7 20
+e 7 41
+e 8 24
+e 9 24
+e 9 32
+e 10 17
+e 10 2
+e 11 19
+e 11 5
+e 13 32
+e 13 26
+e 14 8
+e 14 28
+e 17 39
+e 18 15
+e 18 44
+e 19 31
+e 20 5
+e 21 2
+e 22 16
+e 22 15
+e 23 38
+e 23 12
+e 25 37
+e 27 26
+e 27 12
+e 28 3
+e 30 21
+e 30 34
+e 33 16
+e 33 6
+e 35 29
+e 35 41
+e 36 38
+e 36 2
+e 40 41
+e 40 6
+e 42 39
+e 42 41
+e 43 29
+e 43 44

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p3.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p3.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 33
+e 0 25
+e 1 42
+e 1 8
+e 2 40
+e 3 17
+e 3 16
+e 4 26
+e 5 2
+e 5 15
+e 6 4
+e 6 24
+e 7 11
+e 9 36
+e 10 14
+e 10 8
+e 12 40
+e 12 31
+e 13 34
+e 13 16
+e 16 24
+e 16 31
+e 18 23
+e 18 24
+e 19 15
+e 20 32
+e 21 32
+e 21 31
+e 22 7
+e 22 9
+e 27 37
+e 27 31
+e 28 14
+e 28 17
+e 29 11
+e 29 44
+e 30 19
+e 30 17
+e 35 20
+e 35 8
+e 36 8
+e 37 24
+e 38 23
+e 38 25
+e 39 44
+e 39 33
+e 41 26
+e 41 17
+e 43 34
+e 43 42

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p4.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p4.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 1 39
+e 1 20
+e 2 32
+e 3 30
+e 3 9
+e 4 42
+e 4 19
+e 5 35
+e 5 39
+e 8 16
+e 8 6
+e 9 28
+e 10 32
+e 10 39
+e 11 34
+e 12 31
+e 12 40
+e 15 31
+e 15 20
+e 18 13
+e 20 34
+e 20 17
+e 21 6
+e 21 0
+e 22 25
+e 22 39
+e 23 14
+e 24 42
+e 24 34
+e 26 2
+e 26 34
+e 28 7
+e 29 0
+e 29 19
+e 30 16
+e 33 40
+e 33 7
+e 35 27
+e 36 18
+e 36 27
+e 37 23
+e 37 7
+e 38 14
+e 38 17
+e 41 13
+e 41 17
+e 43 11
+e 43 17
+e 44 25
+e 44 7

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p5.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p5.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 33
+e 1 7
+e 2 36
+e 2 10
+e 3 4
+e 3 14
+e 6 0
+e 6 18
+e 8 26
+e 8 12
+e 9 4
+e 9 18
+e 11 35
+e 12 40
+e 13 38
+e 15 5
+e 15 18
+e 16 31
+e 16 20
+e 17 13
+e 17 14
+e 21 32
+e 21 5
+e 22 14
+e 22 43
+e 23 35
+e 23 24
+e 25 19
+e 25 29
+e 26 36
+e 27 7
+e 27 14
+e 28 32
+e 28 43
+e 30 33
+e 30 24
+e 34 42
+e 34 24
+e 37 10
+e 37 19
+e 39 11
+e 39 38
+e 40 18
+e 41 31
+e 41 29
+e 42 20
+e 43 20
+e 43 24
+e 44 1
+e 44 20

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p6.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p6.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 23
+e 0 22
+e 1 14
+e 1 22
+e 4 37
+e 4 13
+e 5 8
+e 5 15
+e 7 17
+e 9 3
+e 9 2
+e 12 3
+e 12 19
+e 14 19
+e 15 19
+e 15 22
+e 16 23
+e 18 17
+e 18 13
+e 21 13
+e 21 15
+e 24 37
+e 24 20
+e 26 10
+e 26 41
+e 27 32
+e 28 25
+e 28 20
+e 29 16
+e 29 20
+e 30 20
+e 31 30
+e 33 11
+e 33 10
+e 34 27
+e 34 13
+e 35 8
+e 35 25
+e 36 38
+e 36 31
+e 38 11
+e 39 41
+e 39 2
+e 40 6
+e 40 22
+e 42 6
+e 43 7
+e 43 19
+e 44 42
+e 44 32

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p7.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p7.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 2 7
+e 2 42
+e 3 28
+e 4 21
+e 6 27
+e 6 33
+e 8 10
+e 8 25
+e 10 11
+e 12 30
+e 13 18
+e 14 27
+e 14 11
+e 15 3
+e 15 11
+e 16 4
+e 16 26
+e 17 12
+e 17 42
+e 18 42
+e 19 38
+e 20 5
+e 20 42
+e 22 1
+e 22 0
+e 23 0
+e 23 33
+e 24 30
+e 24 25
+e 29 31
+e 29 7
+e 32 21
+e 32 25
+e 34 31
+e 34 43
+e 35 38
+e 35 1
+e 36 19
+e 36 13
+e 37 5
+e 37 9
+e 39 9
+e 39 43
+e 40 28
+e 40 9
+e 41 26
+e 43 11
+e 43 25
+e 44 41
+e 44 9

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p8.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p8.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 1
+e 0 16
+e 2 27
+e 2 15
+e 3 24
+e 4 40
+e 4 15
+e 7 5
+e 7 1
+e 8 42
+e 8 6
+e 9 14
+e 9 23
+e 10 22
+e 10 19
+e 11 37
+e 11 14
+e 12 43
+e 12 17
+e 13 28
+e 13 25
+e 18 43
+e 18 23
+e 19 3
+e 20 21
+e 20 14
+e 21 6
+e 22 5
+e 23 25
+e 23 15
+e 26 40
+e 27 25
+e 29 44
+e 29 15
+e 30 39
+e 30 24
+e 31 16
+e 31 38
+e 32 37
+e 33 26
+e 33 24
+e 34 32
+e 34 25
+e 35 39
+e 35 14
+e 36 28
+e 36 38
+e 41 17
+e 41 24
+e 42 44

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p9.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p9.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,51 @@
+p edge 45 50
+e 0 28
+e 3 32
+e 3 19
+e 5 27
+e 6 30
+e 6 29
+e 7 20
+e 7 2
+e 8 24
+e 8 43
+e 10 31
+e 10 43
+e 11 0
+e 11 5
+e 13 28
+e 13 20
+e 15 30
+e 15 37
+e 16 17
+e 16 9
+e 17 29
+e 18 32
+e 18 12
+e 19 29
+e 19 9
+e 21 14
+e 21 19
+e 22 42
+e 23 25
+e 23 42
+e 24 4
+e 25 1
+e 26 22
+e 26 14
+e 27 43
+e 33 4
+e 33 9
+e 35 1
+e 35 9
+e 36 31
+e 36 14
+e 38 34
+e 39 2
+e 39 37
+e 40 12
+e 40 43
+e 41 38
+e 41 29
+e 44 34
+e 44 14

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,61 @@
+p edge 55 60
+e 1 4
+e 7 3
+e 8 4
+e 9 2
+e 10 0
+e 12 8
+e 13 4
+e 18 0
+e 20 3
+e 23 17
+e 23 1
+e 25 20
+e 26 14
+e 26 3
+e 27 25
+e 28 11
+e 28 4
+e 29 21
+e 29 15
+e 30 15
+e 30 6
+e 31 24
+e 31 1
+e 33 3
+e 34 32
+e 35 22
+e 35 6
+e 36 22
+e 36 9
+e 37 14
+e 38 0
+e 38 1
+e 39 34
+e 39 24
+e 40 32
+e 40 2
+e 41 13
+e 42 11
+e 43 0
+e 44 16
+e 45 12
+e 45 5
+e 46 33
+e 46 5
+e 47 42
+e 47 18
+e 48 27
+e 48 17
+e 49 21
+e 49 16
+e 50 19
+e 50 2
+e 51 41
+e 51 19
+e 52 43
+e 52 2
+e 53 44
+e 53 7
+e 54 37
+e 54 10

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p0.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p0.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,61 @@
+p edge 55 60
+e 0 40
+e 0 4
+e 1 41
+e 1 52
+e 2 14
+e 2 4
+e 3 21
+e 4 31
+e 6 34
+e 7 36
+e 8 34
+e 8 31
+e 9 53
+e 9 39
+e 10 31
+e 11 40
+e 12 26
+e 12 32
+e 13 24
+e 13 38
+e 15 27
+e 16 23
+e 16 19
+e 17 39
+e 17 4
+e 18 20
+e 21 20
+e 22 31
+e 23 22
+e 25 44
+e 25 54
+e 28 40
+e 29 42
+e 29 14
+e 30 18
+e 30 19
+e 33 15
+e 33 51
+e 35 26
+e 35 24
+e 37 5
+e 37 38
+e 41 32
+e 42 49
+e 43 49
+e 43 36
+e 44 10
+e 45 54
+e 45 36
+e 46 6
+e 46 28
+e 47 27
+e 47 20
+e 48 5
+e 48 7
+e 50 11
+e 50 36
+e 51 40
+e 52 20
+e 53 3

Added: trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p1.dimacs
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p1.dimacs 2007-08-25 17:11:06 EDT (Sat, 25 Aug 2007)
@@ -0,0 +1,61 @@
+p edge 55 60
+e 0 18
+e 0 15
+e 1 41
+e 3 24
+e 3 52
+e 4 37
+e 4 49
+e 5 21
+e 6 9
+e 7 14
+e 7 35
+e 8 34
+e 8 33
+e 9 19
+e 11 6
+e 11 35
+e 12 10
+e 12 2
+e 13 10
+e 13 54
+e 14 20
+e 16 26
+e 16 50
+e 17 19
+e 22 18
+e 22 1
+e 23 48
+e 24 40
+e 25 2
+e 25 15
+e 26 42
+e 27 53
+e 28 42
+e 28 20
+e 29 5
+e 29 38
+e 30 23
+e 30 41
+e 31 38
+e 31 17
+e 32 52
+e 32 41
+e 34 27
+e 36 54
+e 37 39
+e 40 19
+e 43 36
+e 43 44
+e 44 20
+e 45 48
+e 45 17
+e 46 39
+e 46 19
+e 47 21
+e 47 41
+e 49 48
+e 50 48
+e 51 33