# -*- Mode: Perl -*-
# File: t/common.plt
# Description: re-usable test subs for Math::PartialOrder
use Test;
$| = 1;

# @classes -- test these subclasses
@classes = qw(Std Caching LRUCaching CMasked CEnum);


# isok($label,@_) -- prints helpful label
sub isok {
  my $label = shift;
  print "$label:\n";
  ok(@_);
}

# ulistok($label,\@got,\@expect)
# --> ok() for unsorted lists
sub ulistok {
  my ($label,$l1,$l2) = @_;
  isok($label,join(',',sort(@$l1)),join(',',sort(@$l2)));
}

# $hi = testhi($class)
# -> test hierarchy -- structure:
#           c
#          / \
#       aaa   \
#        |     \
#   aa1 aa2     bb
#     \/        |
#      a        b
#       \      /
#         root
sub testhi {
  my $class = shift;
  eval "use $class;";
  my $h = $class->new({root => 'root'});
  foreach ([qw(a root)], [qw(b root)],
	   [qw(aa1 a)], [qw(aa2 a)], [qw(bb b)],
	   [qw(aaa aa2)], [qw(c aaa bb)])
    {
      $h->add(@$_);
    }
  return $h;
}

print "common.plt loaded.\n";

1;