File: diff.t

package info (click to toggle)
liblist-objects-withutils-perl 2.028003-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,296 kB
  • sloc: perl: 1,957; makefile: 17; sh: 1
file content (52 lines) | stat: -rw-r--r-- 1,140 bytes parent folder | download | duplicates (4)
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
use Test::More;
use strict; use warnings FATAL => 'all';

use List::Objects::WithUtils 'array';

is_deeply
  [ array(1 .. 3)->diff([ 3, 2, 1 ])->all ],
  [ ],
  'zero element diff ok';

my $first  = array(qw/a b c d e /);
my $second =      [qw/a b c x y /];

my $diff = $first->diff($second);
is_deeply
  [ $diff->sort->all ],
  [ qw/d e x y / ],
  'two-array diff ok'
  or diag explain $diff;

my $third = array(qw/a b c x z /);
$diff = $first->diff($second, $third);
is_deeply
  [ $diff->sort->all ],
  [ qw/d e x y z/ ],
  'three-array diff ok'
  or diag explain $diff;

$diff = array(1 .. 3)->diff( array('2') );
is_deeply
  [ $diff->sort(sub { $_[0] <=> $_[1] })->all ],
  [ 1, 3 ],
  'uneven array diff ok'
  or diag explain $diff;

$diff = array(1 .. 3)->diff(array);
is_deeply
  [ $diff->sort(sub { $_[0] <=> $_[1] })->all ],
  [ 1 .. 3 ],
  'diff against empty array ok'
  or diag explain $diff;

$diff = array->diff( [ 1 .. 3 ] );
is_deeply
  [ $diff->sort(sub { $_[0] <=> $_[1] })->all ],
  [ 1 .. 3 ],
  'diff from empty array ok'
  or diag explain $diff;

ok array->diff(array)->is_empty, 'empty arrays diff ok';

done_testing