Commit | Line | Data |
0e47f4f6 |
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 | |
56eefa04 |
13 | my $READINGS = 311; |
14 | my $PATHS = 361; |
15 | |
16 | my $datafile = 't/data/florilegium_tei_ps.xml'; |
17 | my $tradition = Text::Tradition->new( 'input' => 'TEI', |
18 | 'name' => 'test0', |
19 | 'file' => $datafile, |
20 | 'linear' => 1 ); |
21 | |
22 | ok( $tradition, "Got a tradition object" ); |
23 | is( scalar $tradition->witnesses, 13, "Found all witnesses" ); |
24 | ok( $tradition->collation, "Tradition has a collation" ); |
25 | |
26 | my $c = $tradition->collation; |
27 | is( scalar $c->readings, $READINGS, "Collation has all readings" ); |
28 | is( scalar $c->paths, $PATHS, "Collation has all paths" ); |
29 | is( scalar $c->relationships, 0, "Collation has all relationships" ); |
30 | |
31 | # Add a few relationships |
32 | $c->add_relationship( 'w123', 'w125', { 'type' => 'collated' } ); |
33 | $c->add_relationship( 'w193', 'w196', { 'type' => 'collated' } ); |
34 | $c->add_relationship( 'w257', 'w262', { 'type' => 'transposition' } ); |
35 | |
36 | # Now write it to GraphML and parse it again. |
37 | |
38 | my $graphml = $c->as_graphml; |
39 | my $st = Text::Tradition->new( 'input' => 'Self', 'string' => $graphml ); |
40 | is( scalar $st->collation->readings, $READINGS, "Reparsed collation has all readings" ); |
41 | is( scalar $st->collation->paths, $PATHS, "Reparsed collation has all paths" ); |
42 | is( scalar $st->collation->relationships, 3, "Reparsed collation has new relationships" ); |
43 | } |
44 | |
45 | |
46 | |
47 | # =begin testing |
48 | { |
49 | use Text::Tradition; |
50 | |
0e47f4f6 |
51 | my $cxfile = 't/data/Collatex-16.xml'; |
52 | my $t = Text::Tradition->new( |
53 | 'name' => 'inline', |
54 | 'input' => 'CollateX', |
55 | 'file' => $cxfile, |
56 | ); |
57 | my $c = $t->collation; |
58 | |
4e5a7b2c |
59 | is( $c->common_predecessor( 'n9', 'n23' )->id, |
0e47f4f6 |
60 | 'n20', "Found correct common predecessor" ); |
4e5a7b2c |
61 | is( $c->common_successor( 'n9', 'n23' )->id, |
0e47f4f6 |
62 | '#END#', "Found correct common successor" ); |
63 | |
4e5a7b2c |
64 | is( $c->common_predecessor( 'n19', 'n17' )->id, |
0e47f4f6 |
65 | 'n16', "Found correct common predecessor for readings on same path" ); |
4e5a7b2c |
66 | is( $c->common_successor( 'n21', 'n26' )->id, |
0e47f4f6 |
67 | '#END#', "Found correct common successor for readings on same path" ); |
68 | } |
69 | |
70 | |
71 | |
72 | |
73 | 1; |