use strict; use warnings; package Test::Deep::Boolean; use Test::Deep::Cmp; sub init { my $self = shift; $self->{val} = shift() ? 1 : 0; } sub descend { my $self = shift; my $got = shift; return !( $got xor $self->{val} ); } sub diag_message { my $self = shift; my $where = shift; return "Comparing $where as a boolean"; } sub renderExp { my $self = shift; $self->renderGot($self->{val}); } sub renderGot { my $self = shift; my $val = shift; return ($val ? "true" : "false")." (".Test::Deep::render_val($val).")"; } 1;