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
|
use Test2::V0;
use Syntax::Keyword::Assert;
use lib 't/lib';
use TestUtil;
subtest 'NUM_EQ' => sub {
my $x = 1;
my $y = 2;
ok lives { assert($x + $y == 3) };
is dies { assert($x + $y == 100) }, expected_assert_bin(3, '==', 100);
is dies { assert($x == 100) }, expected_assert_bin(1, '==', 100);
is dies { assert(!!$x == 100) }, expected_assert_bin('true', '==', 100);
is dies { assert(!$x == 100) }, expected_assert_bin('false', '==', 100);
my $message = 'hello';
my $undef = undef;
my $warnings = warnings {
is dies { assert($message == 100) }, expected_assert_bin('"hello"', '==', 100);
is dies { assert($undef == 100) }, expected_assert_bin('undef', '==', 100);
};
# suppressed warnings
is scalar @$warnings, 2;
};
subtest 'NUM_NE' => sub {
my $x = 2;
ok lives { assert($x != 1) };
is dies { assert($x != 2) }, expected_assert_bin(2, '!=', 2);
};
subtest 'NUM_LT' => sub {
my $x = 2;
is dies { assert($x < 1) }, expected_assert_bin(2, '<', 1);
is dies { assert($x < 2) }, expected_assert_bin(2, '<', 2);
ok lives { assert($x < 3) };
my $x2 = 2.01;
is dies { assert($x2 < 2) }, expected_assert_bin(2.01, '<', 2);
is dies { assert($x2 < 2.01) }, expected_assert_bin(2.01, '<', 2.01);
ok lives { assert($x2 < 3) };
my $x3 = -1;
ok lives { assert($x3 < 0) };
is dies { assert($x3 < -1) }, expected_assert_bin(-1, '<', -1);
is dies { assert($x3 < -2) }, expected_assert_bin(-1, '<', -2);
my $x4 = -1.01;
ok lives { assert($x4 < 0) };
is dies { assert($x4 < -1.01) }, expected_assert_bin(-1.01, '<', -1.01);
is dies { assert($x4 < -2) }, expected_assert_bin(-1.01, '<', -2);
};
subtest 'NUM_GT' => sub {
my $x = 2;
ok lives { assert($x > 1) };
is dies { assert($x > 2) }, expected_assert_bin(2, '>', 2);
is dies { assert($x > 3) }, expected_assert_bin(2, '>', 3);
my $x2 = 2.01;
ok lives { assert($x2 > 2) };
is dies { assert($x2 > 2.01) }, expected_assert_bin(2.01, '>', 2.01);
is dies { assert($x2 > 3) }, expected_assert_bin(2.01, '>', 3);
my $x3 = -1;
is dies { assert($x3 > 0) }, expected_assert_bin(-1, '>', 0);
is dies { assert($x3 > -1) }, expected_assert_bin(-1, '>', -1);
ok lives { assert($x3 > -2) };
my $x4 = -1.01;
is dies { assert($x4 > 0) }, expected_assert_bin(-1.01, '>', 0);
is dies { assert($x4 > -1.01) }, expected_assert_bin(-1.01, '>', -1.01);
ok lives { assert($x4 > -2) };
};
subtest 'NUM_LE' => sub {
my $x = 2;
is dies { assert($x <= 1) }, expected_assert_bin(2, '<=', 1);
ok lives { assert($x <= 2) };
ok lives { assert($x <= 3) };
};
subtest 'NUM_GE' => sub {
my $x = 2;
ok lives { assert($x >= 1) };
ok lives { assert($x >= 2) };
is dies { assert($x >= 3) }, expected_assert_bin(2, '>=', 3);
};
done_testing;
|