add OpenID logo and a little styling to the login forms
[scpubgit/stemmatology.git] / t / text_tradition_analysis.t
index fe8ef2f..4828b68 100644 (file)
@@ -19,28 +19,28 @@ my $s = $tradition->add_stemma( 'dotfile' => 't/data/florilegium.dot' );
 is( ref( $s ), 'Text::Tradition::Stemma', "Added stemma to tradition" );
 
 my %expected_genealogical = (
-       1 => '',
+       1 => 0,
        2 => 1,
-       3 =>  '',
-       5 =>  '',
-       7 =>  '',
-       8 =>  '',
-       10 => '',
+       3 =>  0,
+       5 =>  0,
+       7 =>  0,
+       8 =>  0,
+       10 => 0,
        13 => 1,
-       33 => '',
-       34 => '',
-       37 => '',
-       60 => '',
+       33 => 0,
+       34 => 0,
+       37 => 0,
+       60 => 0,
        81 => 1,
-       84 => '',
-       87 => '',
-       101 => '',
-       102 => '',
+       84 => 0,
+       87 => 0,
+       101 => 0,
+       102 => 0,
        122 => 1,
-       157 => '',
+       157 => 0,
        166 => 1,
        169 => 1,
-       200 => 1,
+       200 => 0,
        216 => 1,
        217 => 1,
        219 => 1,
@@ -50,12 +50,31 @@ my %expected_genealogical = (
 );
 
 my $data = run_analysis( $tradition );
+my $c = $tradition->collation;
 foreach my $row ( @{$data->{'variants'}} ) {
-       is( $row->{'genealogical'}, $expected_genealogical{$row->{'id'}}, 
+       # Account for rows that used to be "not useful"
+       unless( exists $expected_genealogical{$row->{'id'}} ) {
+               $expected_genealogical{$row->{'id'}} = 1;
+       }
+       my $gen_bool = $row->{'genealogical'} ? 1 : 0;
+       is( $gen_bool, $expected_genealogical{$row->{'id'}}, 
                "Got correct genealogical flag for row " . $row->{'id'} );
+       # Check that we have the right row with the right groups
+       my $rank = $row->{'id'};
+       foreach my $rdghash ( @{$row->{'readings'}} ) {
+               # Skip 'readings' that aren't really
+               next unless $c->reading( $rdghash->{'readingid'} );
+               # Check the rank
+               is( $c->reading( $rdghash->{'readingid'} )->rank, $rank, 
+                       "Got correct reading rank" );
+               # Check the witnesses
+               my @realwits = sort $c->reading_witnesses( $rdghash->{'readingid'} );
+               my @sgrp = sort @{$rdghash->{'group'}};
+               is_deeply( \@sgrp, \@realwits, "Reading analyzed with correct groups" );
+       }
 }
-is( $data->{'conflict_count'}, 16, "Got right conflict count" );
-is( $data->{'variant_count'}, 28, "Got right total variant number" );
+is( $data->{'variant_count'}, 58, "Got right total variant number" );
+# TODO Make something meaningful of conflict count, maybe test other bits
 }