File Coverage

tests/tree-annotate-1
Criterion Covered Total %
statement 80 80 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 85 85 100.0


line stmt bran cond sub pod time code
1             #!/usr/bin/perl -w
2              
3             # The script tests private Arch::Tree functions used for "annotate".
4              
5 1     1   7 use strict;
  1         1  
  1         41  
6              
7 1     1   995 use FindBin;
  1         1302  
  1         55  
8 1     1   976 use lib "$FindBin::Bin/../perllib";
  1         803  
  1         8  
9              
10 1     1   1351 use Test::More tests => 32;
  1         21763  
  1         13  
11 1     1   8 use_ok("Arch::Tree");
  1         1022  
  1         3  
  1         4  
  1         10  
12              
13 1         999 my (@lines, @line_rd_indexes, $skip_linenums);
14              
15             # ----------------------------------------------------------------------------
16              
17 1         5 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("3-5,8", 9);
18 1         11 is_deeply($skip_linenums, {qw(1 1 2 1 6 1 7 1 9 1)}, "skip_linenums 1");
19              
20 1         997 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums([ 3..5, 8 ], 9);
21 1         11 is_deeply($skip_linenums, {qw(1 1 2 1 6 1 7 1 9 1)}, "skip_linenums 2");
22              
23 1         855 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums({ 3 => 1, 4 => 1, 5 => 1, 8 => 1 }, 9);
24 1         11 is_deeply($skip_linenums, {qw(1 1 2 1 6 1 7 1 9 1)}, "skip_linenums 3");
25              
26 1         771 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("3-5,8", 8);
27 1         9 is_deeply($skip_linenums, {qw(1 1 2 1 6 1 7 1)}, "skip_linenums 4");
28              
29 1         767 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("1,2,3,4", 4);
30 1         6 is_deeply($skip_linenums, {qw()}, "skip_linenums 5");
31              
32 1         910 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("", 5);
33 1         8 is_deeply($skip_linenums, {qw(1 1 2 1 3 1 4 1 5 1)}, "skip_linenums 6");
34              
35 1         783 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums([], 5);
36 1         9 is_deeply($skip_linenums, {qw(1 1 2 1 3 1 4 1 5 1)}, "skip_linenums 7");
37              
38 1         808 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums({}, 5);
39 1         10 is_deeply($skip_linenums, {qw(1 1 2 1 3 1 4 1 5 1)}, "skip_linenums 8");
40              
41 1         766 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums(undef, 8);
42 1         5 is_deeply($skip_linenums, {qw()}, "skip_linenums 9");
43              
44 1         740 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("0-10", 5);
45 1         5 is_deeply($skip_linenums, {qw()}, "skip_linenums 10");
46              
47 1         864 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("-0", 5);
48 1         5 is_deeply($skip_linenums, {qw()}, "skip_linenums 11");
49              
50 1         842 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("-1,2-2,4-", 5);
51 1         7 is_deeply($skip_linenums, {qw(3 1)}, "skip_linenums 12");
52              
53 1         836 $skip_linenums = Arch::Tree::_get_skip_hash_from_linenums("-1,9-", 5);
54 1         8 is_deeply($skip_linenums, {qw(2 1 3 1 4 1 5 1)}, "skip_linenums 13");
55              
56             # ----------------------------------------------------------------------------
57              
58 1         781 ok(Arch::Tree::_eq(undef, undef), "eq 1");
59 1         539 ok(Arch::Tree::_eq(-1, -1), "eq 2");
60 1         533 ok(Arch::Tree::_eq(5, 5), "eq 3");
61 1         503 ok(!Arch::Tree::_eq(undef, 0), "eq 4");
62 1         501 ok(!Arch::Tree::_eq(0, undef), "eq 5");
63 1         7315 ok(!Arch::Tree::_eq(1, -1), "eq 6");
64              
65             # ----------------------------------------------------------------------------
66              
67 1         507 @lines = qw(line1 line2 line3 line4 line5 line6 line7);
68 1         4 @line_rd_indexes = (4, 4, 2, 1, 1, 1, 2);
69 1         7 Arch::Tree::_group_annotated_lines(\@lines, \@line_rd_indexes);
70 1         11 is_deeply(\@lines, [[qw(line1 line2)], [qw(line3)], [qw(line4 line5 line6)], [qw(line7)]], "lines 1");
71 1         1630 is_deeply(\@line_rd_indexes, [4, 2, 1, 2], "line_rd_indexes 1");
72              
73 1         979 @lines = qw();
74 1         4 @line_rd_indexes = ();
75 1         4 Arch::Tree::_group_annotated_lines(\@lines, \@line_rd_indexes);
76 1         6 is_deeply(\@lines, [], "lines 2");
77 1         741 is_deeply(\@line_rd_indexes, [], "line_rd_indexes 2");
78              
79 1         769 @lines = qw(line1);
80 1         110 @line_rd_indexes = (1);
81 1         5 Arch::Tree::_group_annotated_lines(\@lines, \@line_rd_indexes);
82 1         7 is_deeply(\@lines, [[qw(line1)]], "lines 3");
83 1         918 is_deeply(\@line_rd_indexes, [1], "line_rd_indexes 3");
84              
85 1         741 @lines = qw(line1 line1);
86 1         3 @line_rd_indexes = (0, 0);
87 1         5 Arch::Tree::_group_annotated_lines(\@lines, \@line_rd_indexes);
88 1         6 is_deeply(\@lines, [[qw(line1 line1)]], "lines 4");
89 1         1001 is_deeply(\@line_rd_indexes, [0], "line_rd_indexes 4");
90              
91 1         807 @lines = qw(line1 line2 line3 line4 line5 line6);
92 1         4 @line_rd_indexes = (5, 4, 3, 2, 1, 0);
93 1         6 Arch::Tree::_group_annotated_lines(\@lines, \@line_rd_indexes);
94 1         8 is_deeply(\@lines, [[qw(line1)], [qw(line2)], [qw(line3)], [qw(line4)], [qw(line5)], [qw(line6)]], "lines 5");
95 1         1805 is_deeply(\@line_rd_indexes, [5, 4, 3, 2, 1, 0], "line_rd_indexes 5");
96              
97 1         908 @lines = qw(line1 line2 line3 line4 line5 line6);
98 1         5 @line_rd_indexes = (undef, undef, 1, 1, undef, undef);
99 1         4 Arch::Tree::_group_annotated_lines(\@lines, \@line_rd_indexes);
100 1         11 is_deeply(\@lines, [[qw(line1 line2)], [qw(line3 line4)], [qw(line5 line6)]], "lines 6");
101 1         1337 is_deeply(\@line_rd_indexes, [undef, 1, undef], "line_rd_indexes 6");
102