1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
# perl
#$Id$
# 50_lcf_subset.t
use strict;
use Test::More tests => 28;
use List::Compare::Functional qw(is_LsubsetR is_RsubsetL);
my @a0 = ( qw| alpha | );
my @a1 = ( qw| alpha beta | );
my @a2 = ( qw| alpha beta gamma | );
my @a3 = ( qw| gamma | );
my ($LR, $RL);
$LR = is_LsubsetR( [ [], [] ] );
ok($LR, "simple: empty array is subset of itself");
$RL = is_RsubsetL( [ [], [] ] );
ok($RL, "simple: empty array is subset of itself");
$LR = is_LsubsetR( [ \@a0, \@a0 ] );
ok($LR, "simple: array is subset of itself");
$RL = is_RsubsetL( [ \@a0, \@a0 ] );
ok($RL, "simple: array is subset of itself");
$LR = is_LsubsetR( [ \@a0, \@a3 ] );
ok(! $LR, "simple: disjoint are not subsets");
$RL = is_RsubsetL( [ \@a0, \@a3 ] );
ok(! $RL, "simple: disjoint are not subsets");
$LR = is_LsubsetR( [ \@a0, \@a1 ] );
ok($LR, "simple: left is subset of right");
$RL = is_RsubsetL( [ \@a0, \@a1 ] );
ok(! $RL, "simple: right is not subset of left");
$LR = is_LsubsetR( [ \@a1, \@a0 ] );
ok(! $LR, "simple: left is not subset of right");
$RL = is_RsubsetL( [ \@a1, \@a0 ] );
ok($RL, "right is subset of left");
$LR = is_LsubsetR( { lists => [ [], [] ] } );
ok($LR, "hashref lists: empty array is subset of itself");
$RL = is_RsubsetL( { lists => [ [], [] ] } );
ok($LR, "hashref lists: empty array is subset of itself");
$LR = is_LsubsetR( { lists => [ \@a0, \@a0 ] } );
ok($LR, "hashref lists: array is subset of itself");
$RL = is_RsubsetL( { lists => [ \@a0, \@a0 ] } );
ok($RL, "hashref lists: array is subset of itself");
$LR = is_LsubsetR( { lists => [ \@a0, \@a3 ] } );
ok(! $LR, "hashref lists: disjoint are not subsets");
$RL = is_RsubsetL( { lists => [ \@a0, \@a3 ] } );
ok(! $RL, "hashref lists: disjoint are not subsets");
$LR = is_LsubsetR( { lists => [ \@a0, \@a1 ] } );
ok($LR, "hashref lists: left is subset of right");
$RL = is_RsubsetL( { lists => [ \@a0, \@a1 ] } );
ok(! $RL, "hashref lists: right is not subset of left");
$LR = is_LsubsetR( { lists => [ \@a1, \@a0 ] } );
ok(! $LR, "hashref lists: left is not subset of right");
$RL = is_RsubsetL( { lists => [ \@a1, \@a0 ] } );
ok($RL, "right is subset of left");
$LR = is_LsubsetR( [ \@a0, \@a1 ], [ 0,1 ] );
ok($LR, "2 indices arrayref: left is subset of right");
$LR = is_LsubsetR( [ \@a1, \@a0 ], [ 0,1 ] );
ok(! $LR, "2 indices arrayref: left is not subset of right");
$LR = is_LsubsetR( [ \@a0, \@a1, \@a2 ], [ 1,2 ] );
ok($LR, "3 indices arrayref: left is subset of right");
$LR = is_LsubsetR( [ \@a2, \@a1, \@a0 ], [ 1,2 ] );
ok(! $LR, "3 indices arrayref: left is not subset of right");
$LR = is_LsubsetR( { lists => [ \@a0, \@a1 ], pair => [ 0,1 ] } );
ok($LR, "lists pair 2 indices: left is subset of right");
$LR = is_LsubsetR( { lists => [ \@a1, \@a0 ], pair => [ 0,1 ] } );
ok(! $LR, "lists pair 2 indices: left is not subset of right");
$LR = is_LsubsetR( { lists => [ \@a0, \@a1, \@a2 ], pair => [ 1,2 ] } );
ok($LR, "lists pair 3 indices: left is subset of right");
$LR = is_LsubsetR( { lists => [ \@a2, \@a1, \@a0 ], pair => [ 1,2 ] } );
ok(! $LR, "lists pair 3 indices: left is not subset of right");
|