Commit | Line | Data |
a731e73a |
1 | #!/usr/bin/perl -w |
2 | |
3 | use strict; |
4 | use Test::More 'no_plan'; |
5 | $| = 1; |
6 | |
7 | |
8 | |
9 | # =begin testing |
10 | { |
11 | use Text::Tradition; |
12 | binmode STDOUT, ":utf8"; |
13 | binmode STDERR, ":utf8"; |
14 | eval { no warnings; binmode $DB::OUT, ":utf8"; }; |
15 | |
16 | use_ok( 'Text::Tradition::Parser::JSON' ); |
17 | |
18 | open( JSFILE, 't/data/cx16.json' ); |
19 | binmode JSFILE, ':utf8'; |
20 | my @lines = <JSFILE>; |
21 | close JSFILE; |
22 | |
23 | my $t = Text::Tradition->new( |
24 | 'name' => 'json', |
25 | 'input' => 'JSON', |
26 | 'string' => join( '', @lines ), |
27 | ); |
28 | |
29 | is( ref( $t ), 'Text::Tradition', "Parsed a JSON alignment" ); |
30 | if( $t ) { |
31 | is( scalar $t->collation->readings, 26, "Collation has all readings" ); |
32 | is( scalar $t->collation->paths, 32, "Collation has all paths" ); |
33 | is( scalar $t->witnesses, 3, "Collation has all witnesses" ); |
34 | } |
b0b4421a |
35 | |
36 | my %seen_wits; |
37 | map { $seen_wits{$_} = 0 } qw/ A B C /; |
38 | # Check that we have the right witnesses |
39 | foreach my $wit ( $t->witnesses ) { |
40 | $seen_wits{$wit->sigil} = 1; |
41 | } |
42 | is( scalar keys %seen_wits, 3, "No extra witnesses were made" ); |
43 | foreach my $k ( keys %seen_wits ) { |
44 | ok( $seen_wits{$k}, "Witness $k still exists" ); |
45 | } |
46 | |
47 | # Check that the witnesses have the right texts |
48 | foreach my $wit ( $t->witnesses ) { |
49 | my $origtext = join( ' ', @{$wit->text} ); |
50 | my $graphtext = $t->collation->path_text( $wit->sigil ); |
51 | is( $graphtext, $origtext, "Collation matches original for witness " . $wit->sigil ); |
52 | } |
a731e73a |
53 | } |
54 | |
55 | |
56 | |
57 | |
58 | 1; |