File: 50_lcf_subset.t

package info (click to toggle)
liblist-compare-perl 0.55-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,012 kB
  • sloc: perl: 3,080; makefile: 2
file content (101 lines) | stat: -rw-r--r-- 3,123 bytes parent folder | download | duplicates (2)
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");