4 use Test::More 'no_plan';
12 my $trad = Text::Tradition->new( 'name' => 'test tradition' );
13 my $c = $trad->collation;
15 # Test a plaintext witness via string
16 my $str = 'This is a line of text';
17 my $ptwit = $trad->add_witness(
19 'sourcetype' => 'plaintext',
22 is( ref( $ptwit ), 'Text::Tradition::Witness', 'Created a witness' );
24 is( $ptwit->sigil, 'A', "Witness has correct sigil" );
25 is( $c->path_text( $ptwit->sigil ), $str, "Witness has correct text" );
28 # # Test some JSON witnesses via object
29 # open( JSIN, 't/data/witnesses/testwit.json' ) or die "Could not open JSON test input";
30 # binmode( JSIN, ':encoding(UTF-8)' );
33 # $trad->add_json_witnesses( join( '', @lines ) );
34 # is( ref( $trad->witness( 'MsAJ' ) ), 'Text::Tradition::Witness',
35 # "Found first JSON witness" );
36 # is( ref( $trad->witness( 'MsBJ' ) ), 'Text::Tradition::Witness',
37 # "Found second JSON witness" );
39 # # Test an XML witness via file
40 # my $xmlwit = $trad->add_witness( 'sourcetype' => 'xmldesc',
41 # 'file' => 't/data/witnesses/teiwit.xml' );
42 # is( ref( $xmlwit ), 'Text::Tradition::Witness', "Created witness from XML file" );
44 # is( $xmlwit->sigil, 'V887', "XML witness has correct sigil" );
45 # ok( $xmlwit->is_layered, "Picked up correction layer" );
46 # is( @{$xmlwit->path}, 185, "Got correct text length" );
47 # is( @{$xmlwit->uncorrected_path}, 185, "Got correct a.c. text length" );
58 my $trad = Text::Tradition->new();
60 my @text = qw/ Thhis is a line of text /;
61 my $wit = $trad->add_witness(
63 'string' => join( ' ', @text ),
64 'sourcetype' => 'plaintext',
65 'identifier' => 'test witness',
67 my $jsonstruct = $wit->export_as_json;
68 is( $jsonstruct->{'id'}, 'A', "got the right witness sigil" );
69 is( $jsonstruct->{'name'}, 'test witness', "got the right identifier" );
70 is( scalar @{$jsonstruct->{'tokens'}}, 6, "got six text tokens" );
71 foreach my $idx ( 0 .. $#text ) {
72 is( $jsonstruct->{'tokens'}->[$idx]->{'t'}, $text[$idx], "tokens look OK" );
75 my @ctext = qw( when april with his showers sweet with fruit the drought of march
76 has pierced unto the root );
77 $trad = Text::Tradition->new(
78 'input' => 'CollateX',
79 'file' => 't/data/Collatex-16.xml' );
81 $jsonstruct = $trad->witness('A')->export_as_json;
82 is( $jsonstruct->{'id'}, 'A', "got the right witness sigil" );
83 is( $jsonstruct->{'name'}, undef, "got undef for missing identifier" );
84 is( scalar @{$jsonstruct->{'tokens'}}, 17, "got all text tokens" );
85 foreach my $idx ( 0 .. $#ctext ) {
86 is( $jsonstruct->{'tokens'}->[$idx]->{'t'}, $ctext[$idx], "tokens look OK" );
89 ## TODO test layertext export