chiark / gitweb /
Use unionfind=>0 since that works.
[ypp-sc-tools.db-live.git] / yarrg / yppedia-chart-parser
index 8bcf3c9cb980b238f1255190cb41501f3e3b3896..8b5c50828a4e79996f4d20dc1fbc572d3887fd9c 100755 (executable)
@@ -8,7 +8,7 @@ use Graph::Undirected;
 use CommodsDatabase;
 
 my $widists= Graph::Undirected->new();
-my $wiarchs= Graph::Undirected->new(unionfind => 1);
+my $wiarchs= Graph::Undirected->new();
 my @wiarchlabels;
 my %wiisland2node;
 my %winode2island;
@@ -32,8 +32,8 @@ sub error ($) {
     $errors++;
 }
 
-open PO, ">/dev/null" or die $!;
-#open PO, ">&STDOUT" or die $!;
+#open PO, ">/dev/null" or die $!;
+open PO, ">&STDOUT" or die $!;
 select(PO); $|=1;
 select(STDOUT); $|=1;
 
@@ -74,7 +74,7 @@ sub parse_yppedia_map () {
            $winode2island{$n}= $island;
            $widists->add_vertex($n);
            $wiarchs->add_vertex($n);
-print "\$g->add_vertex('$n');\n";
+#print "\$g->add_vertex('$n');\n";
            printf PO "%d,%d island %s\n", $x,$y,$island;
        } elsif (($solid,$x,$y,$dirn) =
            m/^\{\{ chart\ league((?:\ solid)?) \|(\d+)\|(\d+)\|
@@ -90,7 +90,7 @@ print "\$g->add_vertex('$n');\n";
            $widists->add_weighted_edge($nn->(), nn_xy($bx,$by), 1);
            $wiarchs->add_edge($nn->(), nn_xy($bx,$by)) if $solid;
            $wiarchs->add_edge($nn->(), nn_xy($bx,$by)) if $solid;
-print "\$g->add_edge('".$nn->()."','".nn_xy($bx,$by)."');\n" if $solid;
+#print "\$g->add_edge('".$nn->()."','".nn_xy($bx,$by)."');\n" if $solid;
 
            printf PO "%d,%d league %s %s \n", $x,$y,
                $solid?'solid':'dotted', $dirn;
@@ -175,7 +175,7 @@ sub process_yppedia_graphs () {
        } sort $wiarchs->connected_component_by_index($ccix);
 
        if (exists $wiccix2arch{$ccix}) {
-           error("architecture determination failed:\n".
+           error("archipelago determination failed, wrongly merged:\n".
                  "    archipelago $arch\n".
                  "    archipelago $wiccix2arch{$ccix}\n".
                  $desc);
@@ -198,8 +198,3 @@ parse_yppedia_map();
 parse_database_map();
 process_yppedia_graphs();
 compare_island_lists();
-
-printf "%d %d %d %d\n", $wiarchs->has_edge('32,17','33,18'),
-    $wiarchs->connected_component_by_vertex('32,17'),
-    $wiarchs->connected_component_by_vertex('33,18'),
-    $wiarchs->same_connected_components('32,17','33,18');