add morphology support for Latin, dependent on Perseus morphology
[scpubgit/stemmatology.git] / t / text_tradition.t
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_ok( 'Text::Tradition', "can use module" );
12
13 my $t = Text::Tradition->new( 'name' => 'empty' );
14 is( ref( $t ), 'Text::Tradition', "initialized an empty Tradition object" );
15 is( $t->name, 'empty', "object has the right name" );
16 is( scalar $t->witnesses, 0, "object has no witnesses" );
17
18 my $simple = 't/data/simple.txt';
19 my $s = Text::Tradition->new( 
20     'name'  => 'inline', 
21     'input' => 'Tabular',
22     'file'  => $simple,
23     );
24 is( ref( $s ), 'Text::Tradition', "initialized a Tradition object" );
25 is( $s->name, 'inline', "object has the right name" );
26 is( scalar $s->witnesses, 3, "object has three witnesses" );
27
28 my $wit_a = $s->witness('A');
29 is( ref( $wit_a ), 'Text::Tradition::Witness', "Found a witness A" );
30 if( $wit_a ) {
31     is( $wit_a->sigil, 'A', "Witness A has the right sigil" );
32 }
33 is( $s->witness('X'), undef, "There is no witness X" );
34 ok( !exists $s->{'witnesses'}->{'X'}, "Witness key X not created" );
35
36 my $wit_d = $s->add_witness( 'sigil' => 'D', 'sourcetype' => 'collation' );
37 is( ref( $wit_d ), 'Text::Tradition::Witness', "new witness created" );
38 is( $wit_d->sigil, 'D', "witness has correct sigil" );
39 is( scalar $s->witnesses, 4, "object now has four witnesses" );
40
41 my $del = $s->del_witness( 'D' );
42 is( $del, $wit_d, "Deleted correct witness" );
43 is( scalar $s->witnesses, 3, "object has three witnesses again" );
44
45 # TODO test initialization by witness list when we have it
46 }
47
48
49
50 # =begin testing
51 {
52 use Text::Tradition;
53
54 my $t = Text::Tradition->new( 
55     'name'  => 'simple test', 
56     'input' => 'Tabular',
57     'file'  => 't/data/simple.txt',
58     );
59
60 is( $t->stemma_count, 0, "No stemmas added yet" );
61 my $s;
62 ok( $s = $t->add_stemma( dotfile => 't/data/simple.dot' ), "Added a simple stemma" );
63 is( ref( $s ), 'Text::Tradition::Stemma', "Got a stemma object returned" );
64 is( $t->stemma_count, 1, "Tradition claims to have a stemma" );
65 is( $t->stemma(0), $s, "Tradition hands back the right stemma" );
66 }
67
68
69
70
71 1;