use strict;
use warnings;
use Test::More qw(no_plan);

# Verify module can be included via "use" pragma
BEGIN { use_ok('lib::siren') };

# Verify module can be included via "require" pragma
require_ok( 'lib::siren' );

# Test unique=0 duplicate=0
my $siren = lib::siren->new();
$siren->parse('sirens_0_0.txt');
like($siren->show(), qr/^Unique: 0, duplicate: 0$/, 'Unique: 0, duplicate: 0');
undef $siren;

# Test unique=0 duplicate=1
$siren = lib::siren->new();
$siren->parse('sirens_0_1.txt');
like($siren->show(), qr/^Unique: 0, duplicate: 1$/, 'Unique: 0, duplicate: 1');
undef $siren;

# Test unique=0 duplicate=2
$siren = lib::siren->new();
$siren->parse('sirens_0_2.txt');
like($siren->show(), qr/^Unique: 0, duplicates: 2$/, 'Unique: 0, duplicates: 2');
undef $siren;

# Test unique=0 duplicate=3
$siren = lib::siren->new();
$siren->parse('sirens_0_3.txt');
like($siren->show(), qr/^Unique: 0, duplicates: 3$/, 'Unique: 0, duplicates: 3');
undef $siren;

# Test unique=1 duplicate=0
$siren = lib::siren->new();
$siren->parse('sirens_1_0.txt');
like($siren->show(), qr/^Unique: 1, duplicate: 0$/, 'Unique: 1, duplicate: 0');
undef $siren;

# Test unique=1 duplicate=1
$siren = lib::siren->new();
$siren->parse('sirens_1_1.txt');
like($siren->show(), qr/^Unique: 1, duplicate: 1$/, 'Unique: 1, duplicate: 1');
undef $siren;

# Test unique=1 duplicate=2
$siren = lib::siren->new();
$siren->parse('sirens_1_2.txt');
like($siren->show(), qr/^Unique: 1, duplicates: 2$/, 'Unique: 1, duplicates: 2');
undef $siren;

# Test unique=1 duplicate=3
$siren = lib::siren->new();
$siren->parse('sirens_1_3.txt');
like($siren->show(), qr/^Unique: 1, duplicates: 3$/, 'Unique: 1, duplicates: 3');
undef $siren;

# Test unique=2 duplicate=0
$siren = lib::siren->new();
$siren->parse('sirens_2_0.txt');
like($siren->show(), qr/^Uniques: 2, duplicate: 0$/, 'Uniques: 2, duplicate: 0');
undef $siren;

# Test unique=2 duplicate=1
$siren = lib::siren->new();
$siren->parse('sirens_2_1.txt');
like($siren->show(), qr/^Uniques: 2, duplicate: 1$/, 'Uniques: 2, duplicate: 1');
undef $siren;

# Test unique=2 duplicate=2
$siren = lib::siren->new();
$siren->parse('sirens_2_2.txt');
like($siren->show(), qr/^Uniques: 2, duplicates: 2$/, 'Uniques: 2, duplicates: 2');
undef $siren;

# Test unique=2 duplicate=3
$siren = lib::siren->new();
$siren->parse('sirens_2_3.txt');
like($siren->show(), qr/^Uniques: 2, duplicates: 3$/, 'Uniques: 2, duplicates: 3');
undef $siren;

# Test unique=3 duplicate=0
$siren = lib::siren->new();
$siren->parse('sirens_3_0.txt');
like($siren->show(), qr/^Uniques: 3, duplicate: 0$/, 'Uniques: 3, duplicate: 0');
undef $siren;

# Test unique=3 duplicate=1
$siren = lib::siren->new();
$siren->parse('sirens_3_1.txt');
like($siren->show(), qr/^Uniques: 3, duplicate: 1$/, 'Uniques: 3, duplicate: 1');
undef $siren;

# Test unique=3 duplicate=2
$siren = lib::siren->new();
$siren->parse('sirens_3_2.txt');
like($siren->show(), qr/^Uniques: 3, duplicates: 2$/, 'Uniques: 3, duplicates: 2');
undef $siren;

# Test unique=3 duplicate=3
$siren = lib::siren->new();
$siren->parse('sirens_3_3.txt');
like($siren->show(), qr/^Uniques: 3, duplicates: 3$/, 'Uniques: 3, duplicates: 3');
undef $siren;

# Test unique=77445 duplicate=2256
$siren = lib::siren->new();
$siren->parse('sirens_fxt.txt');
like($siren->show(), qr/^Uniques: 77445, duplicates: 2256$/, 'Uniques: 77445, duplicates: 2256');
undef $siren;
