The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use lib './lib';
use Test::More tests => 52;

use FindBin;
use lib $FindBin::RealBin;
use testload;

my $file = "$Dat_Dir/ugly.html";

BEGIN { require_ok('HTML::TableExtract') }

# by bulk, lineage integrity
my $label = 'by bulk with lineage check';
my $te = HTML::TableExtract->new();
ok($te->parse_file($file), "$label (parse_file)");
my @tablestates = $te->tables;
cmp_ok(@tablestates, '==', @LINEAGE_DATA, "$label (extract count)");
foreach my $tsc (0 .. $#tablestates) {
  my $ts = $tablestates[$tsc];
  foreach (0 .. $#{$ts->{lineage}}) {
    cmp_ok(join(',', @{$ts->{lineage}[$_]}), 'eq',
      $LINEAGE_DATA[$tsc][$_], "$label (data)");
  }
  my $mod = 1;
  $mod = 0 unless $ts->{headers} && !$ts->{keep_headers};
  my @rows = $ts->rows;
  cmp_ok(@rows, '==', @{$ts->{grid}}-$mod, "rows() returns correct number of rows");
}