summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl0/lib/Test/Deep/All.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl0/lib/Test/Deep/All.pm')
-rwxr-xr-xMaster/tlpkg/tlperl0/lib/Test/Deep/All.pm64
1 files changed, 64 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl0/lib/Test/Deep/All.pm b/Master/tlpkg/tlperl0/lib/Test/Deep/All.pm
new file mode 100755
index 00000000000..d171d3fa7a1
--- /dev/null
+++ b/Master/tlpkg/tlperl0/lib/Test/Deep/All.pm
@@ -0,0 +1,64 @@
+use strict;
+use warnings;
+
+package Test::Deep::All;
+
+use Test::Deep::Cmp;
+
+use overload
+ '&' => \&add,
+ fallback => 1,
+;
+
+sub init
+{
+ my $self = shift;
+
+ my @list = map {Test::Deep::wrap($_)} @_;
+
+ $self->{val} = \@list;
+}
+
+sub descend
+{
+ my $self = shift;
+ my $got = shift;
+
+ my $data = $self->data;
+
+ my $index = 1;
+
+ foreach my $cmp (@{$self->{val}})
+ {
+ $data->{index} = $index;
+ $index++;
+
+ next if Test::Deep::descend($got, $cmp);
+ return 0
+ }
+
+ return 1;
+}
+
+sub render_stack
+{
+ my $self = shift;
+ my $var = shift;
+ my $data = shift;
+
+ my $max = @{$self->{val}};
+
+ return "(Part $data->{index} of $max in $var)";
+}
+
+sub add
+{
+ my $self = shift;
+ my $expect = shift;
+
+ push(@{$self->{val}}, Test::Deep::wrap($expect));
+
+ return $self;
+}
+
+1;