Liveman
view release on metacpan or search on metacpan
t/liveman.t view on Meta::CPAN
local ($::_g0 = do {'abbc'}, $::_e0 = 'ab'); ::ok $::_g0 =~ /^${\quotemeta $::_e0}/, '\'abbc\' # ^-> ab' or ::diag ::_string_diff($::_g0, $::_e0, 1); undef $::_g0; undef $::_e0;
local ($::_g0 = do {'abc'}, $::_e0 = 'ab'); ::ok $::_g0 =~ /^${\quotemeta $::_e0}/, '\'abc\' # ⣠ab' or ::diag ::_string_diff($::_g0, $::_e0, 1); undef $::_g0; undef $::_e0;
#
# ### `like` ends with nonextrapolate-string
#
# СкалÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ заканÑиваÑÑÑÑ Ð½ÐµÑкÑÑÑаполиÑованой ÑÑокой:
#
::done_testing; }; subtest '`like` ends with nonextrapolate-string' => sub {
local ($::_g0 = do {'abbc'}, $::_e0 = 'bc'); ::ok $::_g0 =~ /${\quotemeta $::_e0}$/, '\'abbc\' # $-> bc' or ::diag ::_string_diff($::_g0, $::_e0, -1); undef $::_g0; undef $::_e0;
local ($::_g0 = do {'abc'}, $::_e0 = 'bc'); ::ok $::_g0 =~ /${\quotemeta $::_e0}$/, '\'abc\' # ⥠bc' or ::diag ::_string_diff($::_g0, $::_e0, -1); undef $::_g0; undef $::_e0;
#
# ### `like` inners with nonextrapolate-string
#
# СкалÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑодеÑжаÑÑ Ð½ÐµÑкÑÑÑаполиÑованÑÑ ÑÑокÑ:
#
::done_testing; }; subtest '`like` inners with nonextrapolate-string' => sub {
local ($::_g0 = do {'abbc'}, $::_e0 = 'bb'); ::ok $::_g0 =~ quotemeta $::_e0, '\'abbc\' # *-> bb' or ::diag ::_string_diff($::_g0, $::_e0, 0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {'abc'}, $::_e0 = 'b'); ::ok $::_g0 =~ quotemeta $::_e0, '\'abc\' # ⥵ b' or ::diag ::_string_diff($::_g0, $::_e0, 0); undef $::_g0; undef $::_e0;
#
# ### `like` throw begins with nonextrapolate-string
#
# ÐÑклÑÑение должно наÑинаÑÑÑÑ Ñ Ð½ÐµÑкÑÑÑаполиÑованой ÑÑоки:
#
::done_testing; }; subtest '`like` throw begins with nonextrapolate-string' => sub {
eval {1/0}; local ($::_g0 = $@, $::_e0 = 'Illegal division by zero'); ok defined($::_g0) && $::_g0 =~ /^${\quotemeta $::_e0}/, '1/0 # @-> Illegal division by zero' or ::diag ::_string_diff($::_g0, $::_e0, 1); undef $::_g0; undef $::_e0;
eval {1/0}; local ($::_g0 = $@, $::_e0 = 'Illegal division by zero'); ok defined($::_g0) && $::_g0 =~ /^${\quotemeta $::_e0}/, '1/0 # ⯠Illegal division by zero' or ::diag ::_string_diff($::_g0, $::_e0, 1); undef $::_g0; undef $::_e0;
#
# ### `like` throw begins with extrapolate-string
#
# ÐÑклÑÑение должно наÑинаÑÑÑÑ Ñ ÑкÑÑÑаполиÑованой ÑÑоки:
#
::done_testing; }; subtest '`like` throw begins with extrapolate-string' => sub {
my $by = 'by';
eval {1/0}; local ($::_g0 = $@, $::_e0 = "Illegal division $by zero"); ok defined($::_g0) && $::_g0 =~ /^${\quotemeta $::_e0}/, '1/0 # @=> Illegal division $by zero' or ::diag ::_string_diff($::_g0, $::_e0, 1); undef $::_g0; undef $::_e0;
eval {1/0}; local ($::_g0 = $@, $::_e0 = "Illegal division $by zero"); ok defined($::_g0) && $::_g0 =~ /^${\quotemeta $::_e0}/, '1/0 # ⤯ Illegal division $by zero' or ::diag ::_string_diff($::_g0, $::_e0, 1); undef $::_g0; undef $::_e0;
#
# ### `like` throw
#
# ÐÑклÑÑение должно бÑÑÑ ÑопоÑÑовимо Ñ ÑегÑлÑÑнÑм вÑÑажением:
#
::done_testing; }; subtest '`like` throw' => sub {
eval {1/0}; local ($::_g0 = $@, $::_e0 = qr{division\s*by\s*zero}); ok defined($::_g0) && $::_g0 =~ $::_e0, '1/0 # @~> division\s*by\s*zero' or ::diag defined($::_g0)? "Got:$::_g0": 'Got is undef'; undef $::_g0; undef $::_e0;
eval {1/0}; local ($::_g0 = $@, $::_e0 = qr{division\s*by\s*zero}); ok defined($::_g0) && $::_g0 =~ $::_e0, '1/0 # â division\s*by\s*zero' or ::diag defined($::_g0)? "Got:$::_g0": 'Got is undef'; undef $::_g0; undef $::_e0;
#
# ### `unlike` throw
#
# ÐÑклÑÑение не должно бÑÑÑ ÑопоÑÑовимо Ñ ÑегÑлÑÑнÑм вÑÑажением (но оно должно имеÑÑ Ð¼ÐµÑÑо):
#
::done_testing; }; subtest '`unlike` throw' => sub {
eval {1/0}; local ($::_g0 = $@, $::_e0 = qr{auto}); ok defined($::_g0) && $::_g0 !~ $::_e0, '1/0 # <~@ auto' or ::diag defined($::_g0)? "Got:$::_g0": 'Got is undef'; undef $::_g0; undef $::_e0;
eval {1/0}; local ($::_g0 = $@, $::_e0 = qr{auto}); ok defined($::_g0) && $::_g0 !~ $::_e0, '1/0 # â auto' or ::diag defined($::_g0)? "Got:$::_g0": 'Got is undef'; undef $::_g0; undef $::_e0;
#
# ## EMBEDDING FILES
#
# ÐаждÑй ÑеÑÑ Ð²ÑполнÑеÑÑÑ Ð²Ð¾ вÑеменном каÑалоге, коÑоÑÑй ÑдалÑеÑÑÑ Ð¸ ÑоздаеÑÑÑ Ð¿Ñи запÑÑке ÑеÑÑа.
#
# ФоÑÐ¼Ð°Ñ ÑÑого каÑалога: /tmp/.liveman/*project*/*path-to-test*/.
#
# Раздел кода в ÑÑÑоке Ñ Ð¿ÑеÑикÑом md-Ñайла **File `path`:** запиÑеÑÑÑ Ð² Ñайл пÑи ÑеÑÑиÑовании во вÑÐµÐ¼Ñ Ð²ÑполнениÑ.
#
# Раздел кода в пÑеÑикÑной ÑÑÑоке md-Ñайла **File `path` is:** бÑÐ´ÐµÑ ÑÑавниваÑÑÑÑ Ñ Ñайлом меÑодом `Test::More::is`.
#
# Файл experiment/test.txt:
#@> experiment/test.txt
#>> hi!
#@< EOF
#
# Файл experiment/test.txt ÑвлÑеÑÑÑ:
{ my $s = 'experiment/test.txt'; open my $__f__, '<:utf8', $s or die "Read $s: $!"; my $got = join '', <$__f__>; close $__f__; my $expected = 'hi!
'; ::ok $got eq $expected, 'File experiment/test.txt' or ::diag ::_string_diff($got, $expected) }
#
# **Ðнимание!** ÐÑÑÑÐ°Ñ ÑÑÑока Ð¼ÐµÐ¶Ð´Ñ Ð¿ÑеÑикÑом и кодом не допÑÑкаеÑÑÑ!
#
# ÐÑи пÑеÑикÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÐºÐ°Ðº на английÑком, Ñак и на ÑÑÑÑком (`File [path](https://metacpan.org/pod/path):` и `File [path](https://metacpan.org/pod/path) is:`).
#
# # METHODS
#
# ## new (%param)
#
# ÐонÑÑÑÑкÑоÑ. ÐÐ¼ÐµÐµÑ Ð°ÑгÑменÑÑ:
#
# 1. `files` (array_ref) â ÑпиÑок md-Ñайлов Ð´Ð»Ñ Ð¼ÐµÑодов `transforms` и `tests`.
# 1. `open` (boolean) â оÑкÑÑÑÑ Ð¿Ð¾ÐºÑÑÑие в бÑаÑзеÑе. ÐÑли на компÑÑÑеÑе ÑÑÑановлен бÑаÑÐ·ÐµÑ **opera**, Ñо бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° `opera` Ð´Ð»Ñ Ð¾ÑкÑÑÑиÑ...
# 1. `force_compile` (boolean) â не пÑовеÑÑÑÑ Ð²ÑÐµÐ¼Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑии md-Ñайлов.
# 1. `options` â добавиÑÑ Ð¿Ð°ÑамеÑÑÑ Ð² командной ÑÑÑоке Ð´Ð»Ñ Ð¿ÑовеÑки или доказаÑелÑÑÑва.
# 1. `prove` â иÑполÑзоваÑÑ Ð´Ð¾ÐºÐ°Ð·Ð°ÑелÑÑÑво (ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `prove` Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка ÑеÑÑов), а не ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `yath`.
#
# ## test_path ($md_path)
#
# ÐолÑÑиÑÑ Ð¿ÑÑÑ Ðº `t/**.t`-ÑÐ°Ð¹Ð»Ñ Ð¸Ð· пÑÑи к `lib/**.md`-ÑайлÑ:
#
::done_testing; }; subtest 'test_path ($md_path)' => sub {
local ($::_g0 = do {Liveman->new->test_path("lib/PathFix/RestFix.md")}, $::_e0 = "t/path-fix/rest-fix.t"); ::ok $::_g0 eq $::_e0, 'Liveman->new->test_path("lib/PathFix/RestFix.md") # => t/path-fix/rest-fix.t' or ::diag ::_string_diff($::_g0, $::_e0);...
#
# ## transform ($md_path, [$test_path])
#
# ÐомпилиÑÑÐµÑ `lib/**.md`-Ñайл в `t/**.t`-Ñайл.
#
# Ð Ñак же заменÑÐµÑ **pod**-докÑменÑаÑÐ¸Ñ Ð² ÑекÑии `__END__` в `lib/**.pm`-Ñайле и ÑоздаÑÑ `lib/**.pm`-Ñайл, еÑли ÑÐ¾Ñ ÑÑÑеÑÑвÑеÑ, а инаÑе â ÑоздаÑÑ Ñайл`lib/**.pod`...
#
# ÐÑи вÑзове `transform` в `SYNOPSYS` бÑл Ñоздан Ñайл `lib/Example.pod`.
#
# Файл lib/Example.pod ÑвлÑеÑÑÑ:
{ my $s = 'lib/Example.pod'; open my $__f__, '<:utf8', $s or die "Read $s: $!"; my $got = join '', <$__f__>; close $__f__; my $expected = 'Twice two:
2*2 # -> 2+2
'; ::ok $got eq $expected, 'File lib/Example.pod' or ::diag ::_string_diff($got, $expected) }
#
# Создадим `lib/Example.pm` и вÑзовем `transform`:
#
::done_testing; }; subtest 'transform ($md_path, [$test_path])' => sub {
( run in 0.689 second using v1.01-cache-2.11-cpan-71847e10f99 )