5 use ExtUtils::Manifest qw(maniread);
6 eval "use Test::Pod::Coverage 1.08;";
7 # 1.08 required for coverage_class support
8 plan skip_all => "Test::Pod::Coverage 1.08 required for POD coverage" if $@;
10 # scan for a list of files to get Imager method documentation from
11 my $manifest = maniread();
12 my @pods = ( 'Imager.pm', grep /\.pod$/, keys %$manifest );
22 '^polybezier$', # not ready for public consumption
23 '^border$', # I don't know what it is, expect it to go away
25 my @trustme = ( '^open$', );
30 pod_coverage_ok('Imager', { also_private => \@private,
33 coverage_class => 'Pod::Coverage::Imager' });
34 pod_coverage_ok('Imager::Font');
35 my @color_private = ( '^i_', '_internal$' );
36 pod_coverage_ok('Imager::Color',
37 { also_private => \@color_private });
38 pod_coverage_ok('Imager::Color::Float',
39 { also_private => \@color_private });
40 pod_coverage_ok('Imager::Color::Table');
41 pod_coverage_ok('Imager::ExtUtils');
42 pod_coverage_ok('Imager::Expr');
43 my $trust_parents = { coverage_class => 'Pod::Coverage::CountParents' };
44 pod_coverage_ok('Imager::Expr::Assem', $trust_parents);
45 pod_coverage_ok('Imager::Fill');
46 pod_coverage_ok('Imager::Font::BBox');
47 pod_coverage_ok('Imager::Font::Wrap');
48 pod_coverage_ok('Imager::Fountain');
49 pod_coverage_ok('Imager::Matrix2d');
50 pod_coverage_ok('Imager::Regops');
51 pod_coverage_ok('Imager::Transform');
52 pod_coverage_ok('Imager::Test');
56 # check all documented methods/functions are in the method index
58 Pod::Coverage::Imager->new(package => 'Imager',
61 also_private => \@private);
62 my %methods = map { $_ => 1 } $coverage->covered;
63 open IMAGER, "< Imager.pm"
64 or die "Cannot open Imager.pm: $!";
66 last if /^=head1 METHOD INDEX/;
71 last if /^=\w/ && !/^=for\b/;
75 unless (delete $methods{$1}) {
76 push @unknown_indexed, $1;
81 unless (is(keys %methods, 0, "all methods in method index")) {
82 print "# the following methods are documented but not in the index:\n";
83 print "# $_\n" for sort keys %methods;
85 unless (is(@unknown_indexed, 0, "only methods in method index")) {
86 print "# the following names are in the method index but not documented\n";
87 print "# $_\n" for sort @unknown_indexed;
91 is_deeply(\@indexed, [ sort dict_cmp_func @indexed ],
92 "check method index is alphabetically sorted");
96 (my $tmp_a = lc $a) =~ tr/_//d;
97 (my $tmp_b = lc $b) =~ tr/_//d;