aboutsummaryrefslogtreecommitdiff
path: root/challenge-286/ppentchev/tests/04-python-ch-2.t
diff options
context:
space:
mode:
authorPeter Pentchev <roam@ringlet.net>2024-09-10 23:49:05 +0300
committerPeter Pentchev <roam@ringlet.net>2024-09-11 21:32:24 +0300
commit7b0cce752eca91696664c2bb0de3c5e0395f3fda (patch)
tree9f9c62c53aecdc669cec6ff05d19a478b0895bf7 /challenge-286/ppentchev/tests/04-python-ch-2.t
parentcbf28e6e924b7cd24d1614a5ad28d801f0e85dea (diff)
downloadperlweeklychallenge-club-7b0cce752eca91696664c2bb0de3c5e0395f3fda.tar.gz
perlweeklychallenge-club-7b0cce752eca91696664c2bb0de3c5e0395f3fda.tar.bz2
perlweeklychallenge-club-7b0cce752eca91696664c2bb0de3c5e0395f3fda.zip
Add Peter Pentchev's Python solutions to 286
Also fix a couple of things in the other files: - make the TAP test functions accept an arrayref for the command to run instead of a single string, since we want to run the Python solution using `python3 -B -u /path/to/the/program` - fix the use of Test::More::skip() in the Self Spammer test function - fix a shadowed variable in the Order Game test function - correct the indentation in the documentation's "Implementation details" section - make the README file a copy of docs/index.md instead of a wrong copy of a completely different project's README file - point blog.txt to the Ringlet copy of this challenge's documentation
Diffstat (limited to 'challenge-286/ppentchev/tests/04-python-ch-2.t')
-rw-r--r--challenge-286/ppentchev/tests/04-python-ch-2.t47
1 files changed, 47 insertions, 0 deletions
diff --git a/challenge-286/ppentchev/tests/04-python-ch-2.t b/challenge-286/ppentchev/tests/04-python-ch-2.t
new file mode 100644
index 0000000000..1d36b91a85
--- /dev/null
+++ b/challenge-286/ppentchev/tests/04-python-ch-2.t
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+# SPDX-FileCopyrightText: Peter Pentchev <roam@ringlet.net>
+# SPDX-License-Identifier: BSD-2-Clause
+
+use v5.16;
+use strict;
+use warnings;
+
+use Test::More;
+
+use lib 'tests/lib';
+
+use PWCTest::Ch286 qw(
+ find_python3
+ test_order_game
+ test_order_game_count
+ test_order_game_default
+);
+
+my $py3;
+BEGIN {
+ $py3 = find_python3;
+}
+
+if (!defined $py3) {
+ plan skip_all => 'no Python 3 interpreter found';
+ exit 0;
+}
+
+plan tests => 2;
+
+use constant PROG => 'python/scripts/ch-2.py';
+
+my $py3_prog = [$py3, '-B', '-u', '--', PROG];
+
+subtest order_game_default => sub {
+ test_order_game_default $py3_prog;
+};
+
+subtest order_game => sub {
+ plan tests => test_order_game_count;
+ for my $idx (1..test_order_game_count) {
+ subtest "run $idx" => sub {
+ test_order_game $py3_prog, $idx - 1;
+ };
+ }
+};