--- /dev/null
+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;