The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl 1.t'

#########################

# change 'tests => 1' to 'tests => last_test_to_print';

use Test::More tests => 6;
BEGIN { use_ok('Algorithm::SetCovering') };

use Algorithm::SetCovering;

my $alg = Algorithm::SetCovering->new(
    columns => 4,
    mode    => "brute_force");

$alg->add_row(1, 0, 1, 0);
$alg->add_row(1, 1, 0, 0);
$alg->add_row(1, 1, 1, 0);
$alg->add_row(0, 1, 0, 1);
$alg->add_row(0, 0, 1, 1);

#########################
my @set = $alg->min_row_set(1, 1, 1, 1);
is("@set", "0 3", "Matching 1 1 1 1");

#########################
my @set = $alg->min_row_set(0, 0, 0, 0);
is("@set", "0", "Matching 0 0 0 0");

#########################
my @set = $alg->min_row_set(0, 0, 0, 1);
is("@set", "3", "Matching 0 0 0 1");

#########################
my @set = $alg->min_row_set(0, 0, 1, 1);
is("@set", "4", "Matching 0 0 1 1");

#########################
my @set = $alg->min_row_set(0, 1, 1, 1);
is("@set", "0 3", "Matching 0 1 1 1");