X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Ftext_tradition_analysis.t;h=4828b68074f194d253cac7ddb1b93e32b13b3458;hb=397f3cf456fe5baf57f53a1d352c19dde8a3dac4;hp=fe8ef2f2868f0de54ea95357c448b1e5be7ed844;hpb=f00cefe8896fd0f118dea165da64e9f178ee645b;p=scpubgit%2Fstemmatology.git diff --git a/t/text_tradition_analysis.t b/t/text_tradition_analysis.t index fe8ef2f..4828b68 100644 --- a/t/text_tradition_analysis.t +++ b/t/text_tradition_analysis.t @@ -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 }