Aion
view release on metacpan or search on metacpan
t/aion/types.t view on Meta::CPAN
# ÐÑклÑÑение знаÑÐµÐ½Ð¸Ñ Ñипа. ÐналогиÑен опеÑаÑоÑÑ `~ $type`.
#
::done_testing; }; subtest 'Exclude[A]' => sub {
local ($::_g0 = do {-5 ~~ Exclude[PositiveInt]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-5 ~~ Exclude[PositiveInt] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {"a" ~~ Exclude[PositiveInt]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"a" ~~ Exclude[PositiveInt] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {5 ~~ Exclude[PositiveInt]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '5 ~~ Exclude[PositiveInt] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {5.5 ~~ Exclude[PositiveInt]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '5.5 ~~ Exclude[PositiveInt] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Option[A]
#
# ÐополниÑелÑнÑе клÑÑи в `Dict`.
#
::done_testing; }; subtest 'Option[A]' => sub {
local ($::_g0 = do {{a=>55} ~~ Dict[a=>Int, b => Option[Int]]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a=>55} ~~ Dict[a=>Int, b => Option[Int]] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef...
local ($::_g0 = do {{a=>55, b=>31} ~~ Dict[a=>Int, b => Option[Int]]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a=>55, b=>31} ~~ Dict[a=>Int, b => Option[Int]] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0)...
local ($::_g0 = do {{a=>55, b=>31.5} ~~ Dict[a=>Int, b => Option[Int]]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a=>55, b=>31.5} ~~ Dict[a=>Int, b => Option[Int]] # -> ""' or ::diag ::_struct_diff($::_g0, $::...
#
# ## Wantarray[A, S]
#
# ÐÑли подпÑогÑамма возвÑаÑÐ°ÐµÑ ÑазнÑе знаÑÐµÐ½Ð¸Ñ Ð² конÑекÑÑе маÑÑива и ÑкалÑÑа, Ñо иÑполÑзÑеÑÑÑ Ñип `Wantarray` Ñ Ñипом `A` Ð´Ð»Ñ ÐºÐ¾Ð½ÑекÑÑа маÑÑива...
#
::done_testing; }; subtest 'Wantarray[A, S]' => sub {
sub arr : Isa(PositiveInt => Wantarray[ArrayRef[PositiveInt], PositiveInt]) {
my ($n) = @_;
wantarray? 1 .. $n: $n
}
my @array = arr(3);
my $scalar = arr(3);
local ($::_g0 = do {\@array}, $::_e0 = do {[1,2,3]}); ::is_deeply $::_g0, $::_e0, '\@array # --> [1,2,3]' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$scalar}, $::_e0 = do {3}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$scalar # -> 3' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Item
#
# Тип веÑÑ
него ÑÑÐ¾Ð²Ð½Ñ Ð² иеÑаÑÑ
ии ÑкалÑÑнÑÑ
Ñипов.
#
# ## External[type]
#
# ÐÑавÑаÑÐ°ÐµÑ `type` в `Aion::Type`.
#
# * ÐÑли `type` - `Aion::Type`, Ñо возвÑаÑÐ°ÐµÑ ÐµÐ³Ð¾ без изменений.
# * ÐÑли `type` ÑÑÑока, Ñо обоÑаÑÐ¸Ð²Ð°ÐµÑ ÐµÐ³Ð¾ в `Object`.
# * ÐÑли `type` можно вÑзваÑÑ, Ñо обоÑаÑÐ¸Ð²Ð°ÐµÑ ÐµÐ³Ð¾ в `Aion::Type->new(test => $type, ...)`. РеÑли он Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑод `coerce`, Ñо бÑÐ´ÐµÑ ÐµÐ³Ð¾ иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿ÑеобÑазова...
#
::done_testing; }; subtest 'External[type]' => sub {
local ($::_g0 = do {External['Aion']}, $::_e0 = do {Object['Aion']}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'External[\'Aion\'] # -> Object[\'Aion\']' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {External[sub { /^x/ }] ~~ 'xyz'}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'External[sub { /^x/ }] ~~ \'xyz\' # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package MyInt {
use overload "&{}" => sub {
sub { /^[+-]?[0-9]+$/ }
};
sub coerce { /\./? int($_): $_ }
}
my $myint = bless {}, 'MyInt';
local ($::_g0 = do {External([$myint]) ~~ '+123'}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'External([$myint]) ~~ \'+123\' # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {External([$myint])->coerce(10.1)}, $::_e0 = "10"); ::ok $::_g0 eq $::_e0, 'External([$myint])->coerce(10.1) # => 10' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {External([$myint])->coerce('abc')}, $::_e0 = "abc"); ::ok $::_g0 eq $::_e0, 'External([$myint])->coerce(\'abc\') # => abc' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Bool
#
# `1` is true. `0`, `""` or `undef` is false.
#
::done_testing; }; subtest 'Bool' => sub {
local ($::_g0 = do {1 ~~ Bool}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '1 ~~ Bool # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {0 ~~ Bool}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '0 ~~ Bool # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {undef ~~ Bool}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'undef ~~ Bool # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {"" ~~ Bool}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"" ~~ Bool # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {2 ~~ Bool}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '2 ~~ Bool # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ Bool}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ Bool # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Enum[A...]
#
# ÐеÑеÑиÑление.
#
::done_testing; }; subtest 'Enum[A...]' => sub {
local ($::_g0 = do {3 ~~ Enum[1,2,3];}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '3 ~~ Enum[1,2,3]; # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {"cat" ~~ Enum["cat", "dog"];}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"cat" ~~ Enum["cat", "dog"]; # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {4 ~~ Enum[1,2,3];}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '4 ~~ Enum[1,2,3]; # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Enum["cat"] <= Enum["cat", "dog"]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum["cat"] <= Enum["cat", "dog"] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Enum["cat", "dog"] <= Enum["cat", "dog"]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum["cat", "dog"] <= Enum["cat", "dog"] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; un...
local ($::_g0 = do {Enum(["cat", "dog"])->disjoint(Enum[1])}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum(["cat", "dog"])->disjoint(Enum[1]) # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; unde...
local ($::_g0 = do {Enum(["cat", "dog"])->disjoint(Enum["ret", "cat"])}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum(["cat", "dog"])->disjoint(Enum["ret", "cat"]) # -> ""' or ::diag ::_struct_diff($::_g0, $::...
local ($::_g0 = do {Enum[1,2] <= Enum[1,2,3]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum[1,2] <= Enum[1,2,3] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Enum[1,2] <= Enum[2,3]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum[1,2] <= Enum[2,3] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Enum[1,2] == Enum[2,1]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum[1,2] == Enum[2,1] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Enum[1,2] < Enum[1,2,3]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum[1,2] < Enum[1,2,3] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Enum[1,2,3] > Enum[1,2]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum[1,2,3] > Enum[1,2] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Enum[1,2] == (Enum[1] | Enum[2])}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Enum[1,2] == (Enum[1] | Enum[2]) # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Maybe[A]
#
# `undef` или Ñип в `[]`.
#
::done_testing; }; subtest 'Maybe[A]' => sub {
local ($::_g0 = do {undef ~~ Maybe[Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'undef ~~ Maybe[Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {4 ~~ Maybe[Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '4 ~~ Maybe[Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {"" ~~ Maybe[Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"" ~~ Maybe[Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Undef
#
# ТолÑко `undef`.
#
::done_testing; }; subtest 'Undef' => sub {
local ($::_g0 = do {undef ~~ Undef}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'undef ~~ Undef # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {0 ~~ Undef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '0 ~~ Undef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
t/aion/types.t view on Meta::CPAN
local ($::_g0 = do {-129 ~~ Bytes[1]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-129 ~~ Bytes[1] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {-128 ~~ Bytes[1]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-128 ~~ Bytes[1] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {127 ~~ Bytes[1]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '127 ~~ Bytes[1] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {128 ~~ Bytes[1]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '128 ~~ Bytes[1] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
# 2 bits power of (8 bits * 8 bytes - 1)
my $N = 1 << (8*3-1);
local ($::_g0 = do {(-$N-1) ~~ Bytes[3]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '(-$N-1) ~~ Bytes[3] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {(-$N) ~~ Bytes[3]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '(-$N) ~~ Bytes[3] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {($N-1) ~~ Bytes[3]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '($N-1) ~~ Bytes[3] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$N ~~ Bytes[3];}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$N ~~ Bytes[3]; # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
require Math::BigInt;
my $N17 = 1 << (8*Math::BigInt->new(17) - 1);
local ($::_g0 = do {((-$N17-1) . "") ~~ Bytes[17]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '((-$N17-1) . "") ~~ Bytes[17] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {(-$N17 . "") ~~ Bytes[17]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '(-$N17 . "") ~~ Bytes[17] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {(($N17-1) . "") ~~ Bytes[17]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '(($N17-1) . "") ~~ Bytes[17] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {($N17 . "") ~~ Bytes[17]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '($N17 . "") ~~ Bytes[17] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## PositiveBytes[N]
#
# РаÑÑÑиÑÑÐ²Ð°ÐµÑ Ð¼Ð°ÐºÑималÑное ÑиÑло, коÑоÑое помеÑÑиÑÑÑ Ð² `N` Ð±Ð°Ð¹Ñ (полагаÑ, ÑÑо в байÑаÑ
Ð½ÐµÑ Ð¾ÑÑиÑаÑелÑного биÑа) и пÑовеÑÑÐµÑ Ð¾Ð³ÑаниÑение оÑ...
#
::done_testing; }; subtest 'PositiveBytes[N]' => sub {
local ($::_g0 = do {-1 ~~ PositiveBytes[1]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-1 ~~ PositiveBytes[1] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {0 ~~ PositiveBytes[1]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '0 ~~ PositiveBytes[1] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {255 ~~ PositiveBytes[1]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '255 ~~ PositiveBytes[1] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {256 ~~ PositiveBytes[1]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '256 ~~ PositiveBytes[1] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {-1 ~~ PositiveBytes[8]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-1 ~~ PositiveBytes[8] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {1.01 ~~ PositiveBytes[8]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '1.01 ~~ PositiveBytes[8] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {0 ~~ PositiveBytes[8]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '0 ~~ PositiveBytes[8] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
my $N8 = 2 ** (8*Math::BigInt->new(8)) - 1;
local ($::_g0 = do {$N8 . "" ~~ PositiveBytes[8]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$N8 . "" ~~ PositiveBytes[8] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {($N8+1) . "" ~~ PositiveBytes[8]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '($N8+1) . "" ~~ PositiveBytes[8] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {-1 ~~ PositiveBytes[17]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-1 ~~ PositiveBytes[17] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {0 ~~ PositiveBytes[17]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '0 ~~ PositiveBytes[17] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Ref
#
# СÑÑлка.
#
::done_testing; }; subtest 'Ref' => sub {
local ($::_g0 = do {\1 ~~ Ref}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\1 ~~ Ref # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ Ref}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ Ref # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {1 ~~ Ref}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '1 ~~ Ref # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Tied`[A]
#
# СÑÑлка на ÑвÑзаннÑÑ Ð¿ÐµÑеменнÑÑ.
#
::done_testing; }; subtest 'Tied`[A]' => sub {
package TiedHash { sub TIEHASH { bless {@_}, shift } }
package TiedArray { sub TIEARRAY { bless {@_}, shift } }
package TiedScalar { sub TIESCALAR { bless {@_}, shift } }
tie my %a, "TiedHash";
tie my @a, "TiedArray";
tie my $a, "TiedScalar";
my %b; my @b; my $b;
local ($::_g0 = do {\%a ~~ Tied}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%a ~~ Tied # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\@a ~~ Tied}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\@a ~~ Tied # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\$a ~~ Tied}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\$a ~~ Tied # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%b ~~ Tied}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%b ~~ Tied # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\@b ~~ Tied}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\@b ~~ Tied # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\$b ~~ Tied}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\$b ~~ Tied # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\\$b ~~ Tied}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\\$b ~~ Tied # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {ref tied %a}, $::_e0 = "TiedHash"); ::ok $::_g0 eq $::_e0, 'ref tied %a # => TiedHash' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {ref tied %{\%a}}, $::_e0 = "TiedHash"); ::ok $::_g0 eq $::_e0, 'ref tied %{\%a} # => TiedHash' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%a ~~ Tied["TiedHash"]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%a ~~ Tied["TiedHash"] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\@a ~~ Tied["TiedArray"]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\@a ~~ Tied["TiedArray"] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\$a ~~ Tied["TiedScalar"]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\$a ~~ Tied["TiedScalar"] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%a ~~ Tied["TiedArray"]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%a ~~ Tied["TiedArray"] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\@a ~~ Tied["TiedScalar"]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\@a ~~ Tied["TiedScalar"] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\$a ~~ Tied["TiedHash"]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\$a ~~ Tied["TiedHash"] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\\$a ~~ Tied["TiedScalar"]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\\$a ~~ Tied["TiedScalar"] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## LValueRef
#
# ФÑнкÑÐ¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¿ÑиÑваивание.
#
::done_testing; }; subtest 'LValueRef' => sub {
local ($::_g0 = do {ref \substr("abc", 1, 2)}, $::_e0 = "LVALUE"); ::ok $::_g0 eq $::_e0, 'ref \substr("abc", 1, 2) # => LVALUE' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {ref \vec(42, 1, 2)}, $::_e0 = "LVALUE"); ::ok $::_g0 eq $::_e0, 'ref \vec(42, 1, 2) # => LVALUE' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\substr("abc", 1, 2) ~~ LValueRef}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\substr("abc", 1, 2) ~~ LValueRef # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\vec(42, 1, 2) ~~ LValueRef}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\vec(42, 1, 2) ~~ LValueRef # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# Ðо Ñ `:lvalue` не ÑабоÑаеÑ.
#
sub abc: lvalue { $_ }
abc() = 12;
local ($::_g0 = do {$_}, $::_e0 = "12"); ::ok $::_g0 eq $::_e0, '$_ # => 12' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {ref \abc()}, $::_e0 = "SCALAR"); ::ok $::_g0 eq $::_e0, 'ref \abc() # => SCALAR' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\abc() ~~ LValueRef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\abc() ~~ LValueRef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package As {
sub x : lvalue {
shift->{x};
}
}
my $x = bless {}, "As";
$x->x = 10;
local ($::_g0 = do {$x->x}, $::_e0 = "10"); ::ok $::_g0 eq $::_e0, '$x->x # => 10' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$x}, $::_e0 = do {bless {x=>10}, "As"}); ::is_deeply $::_g0, $::_e0, '$x # --> bless {x=>10}, "As"' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {ref \$x->x}, $::_e0 = "SCALAR"); ::ok $::_g0 eq $::_e0, 'ref \$x->x # => SCALAR' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\$x->x ~~ LValueRef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\$x->x ~~ LValueRef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# And on the end:
#
local ($::_g0 = do {\1 ~~ LValueRef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\1 ~~ LValueRef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
my $x = "abc";
substr($x, 1, 1) = 10;
local ($::_g0 = do {$x}, $::_e0 = "a10c"); ::ok $::_g0 eq $::_e0, '$x # => a10c' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {LValueRef->include( \substr($x, 1, 1) )}, $::_e0 = "1"); ::ok $::_g0 eq $::_e0, 'LValueRef->include( \substr($x, 1, 1) ) # => 1' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## FormatRef
#
# ФоÑмаÑ.
#
::done_testing; }; subtest 'FormatRef' => sub {
format EXAMPLE_FMT =
@<<<<<< @|||||| @>>>>>>
"left", "middle", "right"
.
local ($::_g0 = do {*EXAMPLE_FMT{FORMAT} ~~ FormatRef}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '*EXAMPLE_FMT{FORMAT} ~~ FormatRef # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\1 ~~ FormatRef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\1 ~~ FormatRef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## CodeRef
#
# ÐодпÑогÑамма.
#
::done_testing; }; subtest 'CodeRef' => sub {
local ($::_g0 = do {sub {} ~~ CodeRef}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'sub {} ~~ CodeRef # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\1 ~~ CodeRef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\1 ~~ CodeRef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## NamedCode[name]
#
# ÐодпÑогÑамма Ñ ÑказаннÑм именем. `name` â ÑÑÑока или ÑегÑлÑÑка.
#
::done_testing; }; subtest 'NamedCode[name]' => sub {
sub code_ex { ... }
local ($::_g0 = do {\&code_ex ~~ NamedCode['main::code_ex']}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\&code_ex ~~ NamedCode[\'main::code_ex\'] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; un...
local ($::_g0 = do {\&code_ex ~~ NamedCode['code_ex']}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\&code_ex ~~ NamedCode[\'code_ex\'] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef ...
local ($::_g0 = do {\&code_ex ~~ NamedCode[qr/_/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\&code_ex ~~ NamedCode[qr/_/] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## ProtoCode[prototype]
#
# ÐодпÑогÑамма Ñ ÑказаннÑм пÑоÑоÑипом.
#
::done_testing; }; subtest 'ProtoCode[prototype]' => sub {
sub codex ($;$);
t/aion/types.t view on Meta::CPAN
socket my $sock, PF_UNIX, SOCK_STREAM, 0;
local ($::_g0 = do {$sock ~~ FileHandle}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$sock ~~ FileHandle # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
close $sock;
#
# ## ArrayRef`[A]
#
# СÑÑлки на маÑÑивÑ.
#
::done_testing; }; subtest 'ArrayRef`[A]' => sub {
local ($::_g0 = do {[] ~~ ArrayRef}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ ArrayRef # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{} ~~ ArrayRef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ ArrayRef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ ArrayRef[Num]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ ArrayRef[Num] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{} ~~ ArrayRef[Num]}, $::_e0 = do {''}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ ArrayRef[Num] # -> \'\'' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[1, 1.1] ~~ ArrayRef[Num]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[1, 1.1] ~~ ArrayRef[Num] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[1, undef] ~~ ArrayRef[Num]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[1, undef] ~~ ArrayRef[Num] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Lim[from?, to]
#
# ÐгÑаниÑÐ¸Ð²Ð°ÐµÑ Ð¼Ð°ÑÑÐ¸Ð²Ñ Ð¾Ñ `from` или 0 до `to` ÑлеменÑов.
#
::done_testing; }; subtest 'Lim[from?, to]' => sub {
local ($::_g0 = do {[] ~~ Lim[5]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ Lim[5] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[1..5] ~~ Lim[5]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[1..5] ~~ Lim[5] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[1..6] ~~ Lim[5]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[1..6] ~~ Lim[5] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[1..5] ~~ Lim[1,5]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[1..5] ~~ Lim[1,5] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[1..6] ~~ Lim[1,5]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[1..6] ~~ Lim[1,5] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[1] ~~ Lim[1,5]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[1] ~~ Lim[1,5] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ Lim[1,5]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ Lim[1,5] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Lim[0, 10] <= Lim[0, 20]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Lim[0, 10] <= Lim[0, 20] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Lim[10, 'Inf'] <= Lim[0, 'Inf']}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Lim[10, \'Inf\'] <= Lim[0, \'Inf\'] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Lim[3] <= Lim[5]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Lim[3] <= Lim[5] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Lim[3] <= Lim[2]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Lim[3] <= Lim[2] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Lim[2,5] < Lim[1,6]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Lim[2,5] < Lim[1,6] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Lim[2,5] == Lim[2,5]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'Lim[2,5] == Lim[2,5] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## HashRef`[H]
#
# СÑÑлки на Ñ
еÑи.
#
::done_testing; }; subtest 'HashRef`[H]' => sub {
local ($::_g0 = do {{} ~~ HashRef}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ HashRef # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\1 ~~ HashRef}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\1 ~~ HashRef # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ HashRef[Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ HashRef[Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{x=>1, y=>2} ~~ HashRef[Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{x=>1, y=>2} ~~ HashRef[Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{x=>1, y=>""} ~~ HashRef[Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{x=>1, y=>""} ~~ HashRef[Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Object`[O]
#
# ÐлагоÑловлÑннÑе ÑÑÑлки.
#
::done_testing; }; subtest 'Object`[O]' => sub {
local ($::_g0 = do {bless(\(my $val=10), "A1") ~~ Object}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $val=10), "A1") ~~ Object # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_...
local ($::_g0 = do {\(my $val=10) ~~ Object}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\(my $val=10) ~~ Object # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless(\(my $val=10), "A1") ~~ Object["A1"]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $val=10), "A1") ~~ Object["A1"] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0...
local ($::_g0 = do {bless(\(my $val=10), "A1") ~~ Object["B1"]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $val=10), "A1") ~~ Object["B1"] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_...
#
# ## Me
#
# ÐлагоÑловеннÑе ÑÑÑлки на обÑекÑÑ ÑекÑÑего пакеÑа.
#
::done_testing; }; subtest 'Me' => sub {
package A1 {
use Aion;
local ($::_g0 = do {bless({}, __PACKAGE__) ~~ Me}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, ' bless({}, __PACKAGE__) ~~ Me # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless({}, "A2") ~~ Me}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, ' bless({}, "A2") ~~ Me # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
}
#
# ## Map[K, V]
#
# Ðак `HashRef`, но Ñ Ñипом Ð´Ð»Ñ ÐºÐ»ÑÑей.
#
::done_testing; }; subtest 'Map[K, V]' => sub {
local ($::_g0 = do {{} ~~ Map[Int, Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ Map[Int, Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{5 => 3} ~~ Map[Int, Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{5 => 3} ~~ Map[Int, Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {+{5.5 => 3} ~~ Map[Int, Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '+{5.5 => 3} ~~ Map[Int, Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{5 => 3.3} ~~ Map[Int, Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{5 => 3.3} ~~ Map[Int, Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{5 => 3, 6 => 7} ~~ Map[Int, Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{5 => 3, 6 => 7} ~~ Map[Int, Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Tuple[A...]
#
# ТÑÑпл.
#
::done_testing; }; subtest 'Tuple[A...]' => sub {
local ($::_g0 = do {["a", 12] ~~ Tuple[Str, Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '["a", 12] ~~ Tuple[Str, Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {["a", 12, 1] ~~ Tuple[Str, Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '["a", 12, 1] ~~ Tuple[Str, Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {["a", 12.1] ~~ Tuple[Str, Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '["a", 12.1] ~~ Tuple[Str, Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## CycleTuple[A...]
#
# ТÑÑпл повÑоÑÑннÑй один или неÑколÑко Ñаз.
#
::done_testing; }; subtest 'CycleTuple[A...]' => sub {
local ($::_g0 = do {["a", -5] ~~ CycleTuple[Str, Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '["a", -5] ~~ CycleTuple[Str, Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {["a", -5, "x"] ~~ CycleTuple[Str, Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '["a", -5, "x"] ~~ CycleTuple[Str, Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; unde...
local ($::_g0 = do {["a", -5, "x", -6] ~~ CycleTuple[Str, Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '["a", -5, "x", -6] ~~ CycleTuple[Str, Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0...
local ($::_g0 = do {["a", -5, "x", -6.2] ~~ CycleTuple[Str, Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '["a", -5, "x", -6.2] ~~ CycleTuple[Str, Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef ...
#
# ## Dict[k => A, ...]
#
# СловаÑÑ.
#
::done_testing; }; subtest 'Dict[k => A, ...]' => sub {
local ($::_g0 = do {{a => -1.6, b => "abc"} ~~ Dict[a => Num, b => Str]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a => -1.6, b => "abc"} ~~ Dict[a => Num, b => Str] # -> 1' or ::diag ::_struct_diff($::_g0, $::...
local ($::_g0 = do {{a => -1.6, b => "abc", c => 3} ~~ Dict[a => Num, b => Str]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a => -1.6, b => "abc", c => 3} ~~ Dict[a => Num, b => Str] # -> ""' or ::diag ::_struc...
local ($::_g0 = do {{a => -1.6} ~~ Dict[a => Num, b => Str]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a => -1.6} ~~ Dict[a => Num, b => Str] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; un...
local ($::_g0 = do {{a => -1.6} ~~ Dict[a => Num, b => Option[Str]]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a => -1.6} ~~ Dict[a => Num, b => Option[Str]] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); un...
#
# ## HasProp[p...]
#
# Ð¥ÑÑ Ð¸Ð¼ÐµÐµÑ Ð¿ÐµÑеÑиÑленнÑе ÑвойÑÑва. ÐÑоме ниÑ
он Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð¸ дÑÑгие.
#
::done_testing; }; subtest 'HasProp[p...]' => sub {
local ($::_g0 = do {[0, 1] ~~ HasProp[qw/0 1/]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[0, 1] ~~ HasProp[qw/0 1/] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{a => 1, b => 2, c => 3} ~~ HasProp[qw/a b/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a => 1, b => 2, c => 3} ~~ HasProp[qw/a b/] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $:...
local ($::_g0 = do {{a => 1, b => 2} ~~ HasProp[qw/a b/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a => 1, b => 2} ~~ HasProp[qw/a b/] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_...
local ($::_g0 = do {{a => 1, c => 3} ~~ HasProp[qw/a b/]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{a => 1, c => 3} ~~ HasProp[qw/a b/] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $:...
local ($::_g0 = do {bless({a => 1, b => 3}, "A") ~~ HasProp[qw/a b/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({a => 1, b => 3}, "A") ~~ HasProp[qw/a b/] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); ...
#
# ## LimKeys[from?, to]
#
# ÐгÑаниÑÐ¸Ð²Ð°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво клÑÑей в Ñ
еÑе Ð¾Ñ `from` или 0 до `to`.
#
::done_testing; }; subtest 'LimKeys[from?, to]' => sub {
my %hash = (a => 1, b => 2);
local ($::_g0 = do {\%hash ~~ LimKeys[1]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%hash ~~ LimKeys[1] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%hash ~~ LimKeys[2]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%hash ~~ LimKeys[2] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%hash ~~ LimKeys[3]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%hash ~~ LimKeys[3] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%hash ~~ LimKeys[3, 3]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%hash ~~ LimKeys[3, 3] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%hash ~~ LimKeys[2, 3]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%hash ~~ LimKeys[2, 3] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\%hash ~~ LimKeys[2, 2]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\%hash ~~ LimKeys[2, 2] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {LimKeys[20, 'Inf'] <= LimKeys[2, 'Inf']}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'LimKeys[20, \'Inf\'] <= LimKeys[2, \'Inf\'] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; ...
local ($::_g0 = do {LimKeys[3] <= LimKeys[5]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'LimKeys[3] <= LimKeys[5] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {LimKeys[2,5] < LimKeys[1,6]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'LimKeys[2,5] < LimKeys[1,6] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Like
#
# ÐбÑÐµÐºÑ Ð¸Ð»Ð¸ ÑÑÑока.
#
::done_testing; }; subtest 'Like' => sub {
local ($::_g0 = do {"" ~~ Like}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"" ~~ Like # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {1 ~~ Like}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '1 ~~ Like # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless({}, "A") ~~ Like}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, "A") ~~ Like # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless([], "A") ~~ Like}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless([], "A") ~~ Like # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless(\(my $str = ""), "A") ~~ Like}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $str = ""), "A") ~~ Like # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0...
local ($::_g0 = do {\1 ~~ Like}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\1 ~~ Like # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## HasMethods[m...]
#
# ÐбÑÐµÐºÑ Ð¸Ð»Ð¸ клаÑÑ Ð¸Ð¼ÐµÐµÑ Ð¿ÐµÑеÑиÑленнÑе меÑодÑ. ÐÑоме ниÑ
Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð¸ дÑÑгие.
#
::done_testing; }; subtest 'HasMethods[m...]' => sub {
package HasMethodsExample {
sub x1 {}
sub x2 {}
}
local ($::_g0 = do {"HasMethodsExample" ~~ HasMethods[qw/x1 x2/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"HasMethodsExample" ~~ HasMethods[qw/x1 x2/] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef ...
local ($::_g0 = do {bless({}, "HasMethodsExample") ~~ HasMethods[qw/x1 x2/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, "HasMethodsExample") ~~ HasMethods[qw/x1 x2/] # -> 1' or ::diag ::_struct_diff($::...
local ($::_g0 = do {bless({}, "HasMethodsExample") ~~ HasMethods[qw/x1/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, "HasMethodsExample") ~~ HasMethods[qw/x1/] # -> 1' or ::diag ::_struct_diff($::_g0, $...
local ($::_g0 = do {"HasMethodsExample" ~~ HasMethods[qw/x3/]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"HasMethodsExample" ~~ HasMethods[qw/x3/] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::...
local ($::_g0 = do {"HasMethodsExample" ~~ HasMethods[qw/x1 x2 x3/]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"HasMethodsExample" ~~ HasMethods[qw/x1 x2 x3/] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0)...
local ($::_g0 = do {"HasMethodsExample" ~~ HasMethods[qw/x1 x3/]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"HasMethodsExample" ~~ HasMethods[qw/x1 x3/] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); unde...
#
# ## Overload`[op...]
#
# ÐбÑÐµÐºÑ Ð¸Ð»Ð¸ клаÑÑ Ñ Ð¿ÐµÑегÑÑженнÑми опеÑаÑоÑами.
#
::done_testing; }; subtest 'Overload`[op...]' => sub {
package OverloadExample {
use overload '""' => sub { "abc" };
}
local ($::_g0 = do {"OverloadExample" ~~ Overload}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"OverloadExample" ~~ Overload # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless({}, "OverloadExample") ~~ Overload}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, "OverloadExample") ~~ Overload # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; un...
local ($::_g0 = do {"A" ~~ Overload}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"A" ~~ Overload # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless({}, "A") ~~ Overload}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, "A") ~~ Overload # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# Ð Ñ Ð½ÐµÐ³Ð¾ пеÑегÑÑÐ¶ÐµÐ½Ñ ÑказаннÑе опеÑаÑоÑÑ.
#
local ($::_g0 = do {"OverloadExample" ~~ Overload['""']}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"OverloadExample" ~~ Overload[\'""\'] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_...
local ($::_g0 = do {"OverloadExample" ~~ Overload['|']}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"OverloadExample" ~~ Overload[\'|\'] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::...
#
# ## InstanceOf[A...]
#
# ÐлаÑÑ Ð¸Ð»Ð¸ обÑÐµÐºÑ Ð½Ð°ÑледÑÐµÑ ÐºÐ»Ð°ÑÑÑ Ð¸Ð· ÑпиÑка.
#
::done_testing; }; subtest 'InstanceOf[A...]' => sub {
package Animal {}
package Cat { our @ISA = qw/Animal/ }
package Tiger { our @ISA = qw/Cat/ }
local ($::_g0 = do {"Tiger" ~~ InstanceOf['Animal', 'Cat']}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"Tiger" ~~ InstanceOf[\'Animal\', \'Cat\'] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; un...
local ($::_g0 = do {"Tiger" ~~ InstanceOf['Tiger']}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"Tiger" ~~ InstanceOf[\'Tiger\'] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0...
local ($::_g0 = do {"Tiger" ~~ InstanceOf['Cat', 'Dog']}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"Tiger" ~~ InstanceOf[\'Cat\', \'Dog\'] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; und...
#
# ## ConsumerOf[A...]
#
# ÐлаÑÑ Ð¸Ð»Ð¸ обÑÐµÐºÑ Ð¸Ð¼ÐµÐµÑ ÑказаннÑе Ñоли.
#
::done_testing; }; subtest 'ConsumerOf[A...]' => sub {
package NoneExample {}
package RoleExample { sub DOES { $_[1] ~~ [qw/Role1 Role2/] } }
local ($::_g0 = do {'RoleExample' ~~ ConsumerOf[qw/Role1/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\'RoleExample\' ~~ ConsumerOf[qw/Role1/] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; unde...
local ($::_g0 = do {'RoleExample' ~~ ConsumerOf[qw/Role2 Role1/]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\'RoleExample\' ~~ ConsumerOf[qw/Role2 Role1/] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef ...
local ($::_g0 = do {bless({}, 'RoleExample') ~~ ConsumerOf[qw/Role3 Role2 Role1/]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, \'RoleExample\') ~~ ConsumerOf[qw/Role3 Role2 Role1/] # -> ""' or ::diag ::...
local ($::_g0 = do {'NoneExample' ~~ ConsumerOf[qw/Role1/]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\'NoneExample\' ~~ ConsumerOf[qw/Role1/] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; un...
#
# ## BoolLike
#
# ÐÑовеÑÑÐµÑ 1, 0, "", undef или обÑÐµÐºÑ Ñ Ð¿ÐµÑегÑÑженнÑм опеÑаÑоÑом `bool` или `0+` как `JSON::PP::Boolean`. Ðо вÑоÑом ÑлÑÑае вÑзÑÐ²Ð°ÐµÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ `0+` и пÑовеÑÑÐµÑ Ñ...
#
# `BoolLike` вÑзÑÐ²Ð°ÐµÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ `0+` и пÑовеÑÑÐµÑ ÑезÑлÑÑаÑ.
#
::done_testing; }; subtest 'BoolLike' => sub {
package BoolLikeExample {
use overload '0+' => sub { ${$_[0]} };
}
local ($::_g0 = do {bless(\(my $x = 1 ), 'BoolLikeExample') ~~ BoolLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $x = 1 ), \'BoolLikeExample\') ~~ BoolLike # -> 1' or ::diag ::_struct_diff($::_g0, $...
local ($::_g0 = do {bless(\(my $x = 11), 'BoolLikeExample') ~~ BoolLike}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $x = 11), \'BoolLikeExample\') ~~ BoolLike # -> ""' or ::diag ::_struct_diff($::_g0,...
local ($::_g0 = do {1 ~~ BoolLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '1 ~~ BoolLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {0 ~~ BoolLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '0 ~~ BoolLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {"" ~~ BoolLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"" ~~ BoolLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {undef ~~ BoolLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'undef ~~ BoolLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package BoolLike2Example {
use overload 'bool' => sub { ${$_[0]} };
}
local ($::_g0 = do {bless(\(my $x = 1 ), 'BoolLike2Example') ~~ BoolLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $x = 1 ), \'BoolLike2Example\') ~~ BoolLike # -> 1' or ::diag ::_struct_diff($::_g0,...
local ($::_g0 = do {bless(\(my $x = 11), 'BoolLike2Example') ~~ BoolLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless(\(my $x = 11), \'BoolLike2Example\') ~~ BoolLike # -> 1' or ::diag ::_struct_diff($::_g0,...
#
# ## StrLike
#
# СÑÑока или обÑÐµÐºÑ Ñ Ð¿ÐµÑегÑÑженнÑм опеÑаÑоÑом `""`.
#
::done_testing; }; subtest 'StrLike' => sub {
local ($::_g0 = do {"" ~~ StrLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"" ~~ StrLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package StrLikeExample {
use overload '""' => sub { "abc" };
}
local ($::_g0 = do {bless({}, "StrLikeExample") ~~ StrLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, "StrLikeExample") ~~ StrLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef ...
local ($::_g0 = do {{} ~~ StrLike}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ StrLike # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## RegexpLike
#
# РегÑлÑÑное вÑÑажение или обÑÐµÐºÑ Ñ Ð¿ÐµÑегÑÑженнÑм опеÑаÑоÑом `qr`.
#
::done_testing; }; subtest 'RegexpLike' => sub {
local ($::_g0 = do {ref(qr//)}, $::_e0 = "Regexp"); ::ok $::_g0 eq $::_e0, 'ref(qr//) # => Regexp' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {Scalar::Util::reftype(qr//)}, $::_e0 = "REGEXP"); ::ok $::_g0 eq $::_e0, 'Scalar::Util::reftype(qr//) # => REGEXP' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
my $regex = bless qr//, "A";
local ($::_g0 = do {Scalar::Util::reftype($regex)}, $::_e0 = "REGEXP"); ::ok $::_g0 eq $::_e0, 'Scalar::Util::reftype($regex) # => REGEXP' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$regex ~~ RegexpLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$regex ~~ RegexpLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {qr// ~~ RegexpLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'qr// ~~ RegexpLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {"" ~~ RegexpLike}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"" ~~ RegexpLike # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package RegexpLikeExample {
use overload 'qr' => sub { qr/abc/ };
}
local ($::_g0 = do {"RegexpLikeExample" ~~ RegexpLike}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '"RegexpLikeExample" ~~ RegexpLike # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {bless({}, "RegexpLikeExample") ~~ RegexpLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'bless({}, "RegexpLikeExample") ~~ RegexpLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $:...
#
# ## CodeLike
#
# ÐодпÑогÑамма или обÑÐµÐºÑ Ñ Ð¿ÐµÑегÑÑженнÑм опеÑаÑоÑом `&{}`.
#
::done_testing; }; subtest 'CodeLike' => sub {
local ($::_g0 = do {sub {} ~~ CodeLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'sub {} ~~ CodeLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {\&CodeLike ~~ CodeLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '\&CodeLike ~~ CodeLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{} ~~ CodeLike}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ CodeLike # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## ArrayLike`[A]
#
# ÐаÑÑÐ¸Ð²Ñ Ð¸Ð»Ð¸ обÑекÑÑ Ñ Ð¿ÐµÑегÑÑженнÑм опеÑаÑоÑом или `@{}`.
#
::done_testing; }; subtest 'ArrayLike`[A]' => sub {
local ($::_g0 = do {{} ~~ ArrayLike}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ ArrayLike # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {{} ~~ ArrayLike[Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ ArrayLike[Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ ArrayLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ ArrayLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package ArrayLikeExample {
use overload '@{}' => sub {
shift->{array} //= []
};
}
my $x = bless {}, 'ArrayLikeExample';
$x->[1] = 12;
local ($::_g0 = do {$x->{array}}, $::_e0 = do {[undef, 12]}); ::is_deeply $::_g0, $::_e0, '$x->{array} # --> [undef, 12]' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$x ~~ ArrayLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$x ~~ ArrayLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$x ~~ ArrayLike[Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$x ~~ ArrayLike[Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
$x->[0] = 13;
local ($::_g0 = do {$x ~~ ArrayLike[Int]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$x ~~ ArrayLike[Int] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## HashLike`[A]
#
# Ð¥ÑÑи или обÑекÑÑ Ñ Ð¿ÐµÑегÑÑженнÑм опеÑаÑоÑом `%{}`.
#
::done_testing; }; subtest 'HashLike`[A]' => sub {
local ($::_g0 = do {{} ~~ HashLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '{} ~~ HashLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ HashLike}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ HashLike # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {[] ~~ HashLike[Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '[] ~~ HashLike[Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package HashLikeExample {
use overload '%{}' => sub {
shift->[0] //= {}
};
}
my $x = bless [], 'HashLikeExample';
$x->{key} = 12.3;
local ($::_g0 = do {$x->[0]}, $::_e0 = do {{key => 12.3}}); ::is_deeply $::_g0, $::_e0, '$x->[0] # --> {key => 12.3}' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$x ~~ HashLike}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$x ~~ HashLike # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$x ~~ HashLike[Int]}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$x ~~ HashLike[Int] # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$x ~~ HashLike[Num]}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$x ~~ HashLike[Num] # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# # Coerces
#
# ## Join\[R] as Str
#
# СкÑÑоковÑй Ñип Ñ Ð¿ÑеобÑазованием маÑÑивов в ÑÑÑÐ¾ÐºÑ ÑеÑез ÑазделиÑелÑ.
#
::done_testing; }; subtest 'Join\[R] as Str' => sub {
local ($::_g0 = do {Join([' '])->coerce([qw/a b c/])}, $::_e0 = "a b c"); ::ok $::_g0 eq $::_e0, 'Join([\' \'])->coerce([qw/a b c/]) # => a b c' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package JoinExample { use Aion;
has s => (isa => Join[', '], coerce => 1);
}
local ($::_g0 = do {JoinExample->new(s => [qw/a b c/])->s}, $::_e0 = "a, b, c"); ::ok $::_g0 eq $::_e0, 'JoinExample->new(s => [qw/a b c/])->s # => a, b, c' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {JoinExample->new(s => 'string')->s}, $::_e0 = "string"); ::ok $::_g0 eq $::_e0, 'JoinExample->new(s => \'string\')->s # => string' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## Split\[S] as ArrayRef
#
::done_testing; }; subtest 'Split\[S] as ArrayRef' => sub {
local ($::_g0 = do {Split([' '])->coerce('a b c')}, $::_e0 = do {[qw/a b c/]}); ::is_deeply $::_g0, $::_e0, 'Split([\' \'])->coerce(\'a b c\') # --> [qw/a b c/]' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
package SplitExample { use Aion;
has s => (isa => Split[qr/\s*,\s*/], coerce => 1);
}
local ($::_g0 = do {SplitExample->new(s => 'a, b, c')->s}, $::_e0 = do {[qw/a b c/]}); ::is_deeply $::_g0, $::_e0, 'SplitExample->new(s => \'a, b, c\')->s # --> [qw/a b c/]' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# # AUTHOR
#
# Yaroslav O. Kosmina [dart@cpan.org](mailto:dart@cpan.org)
#
# # LICENSE
#
# â **GPLv3**
#
# # COPYRIGHT
#
# The Aion::Types module is copyright © 2023 Yaroslav O. Kosmina. Rusland. All rights reserved.
::done_testing;
};
::done_testing;
( run in 1.136 second using v1.01-cache-2.11-cpan-364913b4093 )