From 55d37f73e3c99656e9c77e19a227227643ff444e Mon Sep 17 00:00:00 2001
From: Alexander Lyabah
Date: Mon, 30 Dec 2019 17:56:36 +0200
Subject: [PATCH] First Version
---
autofill.sh | 2 +-
editor/animation/init.js | 4 +--
editor/initial_code/js_node | 18 ++++++-----
editor/initial_code/python_3 | 14 ++++-----
info/media/example.png | Bin 2024 -> 3600 bytes
info/media/example.svg | 51 +++++++++++++++++++++++++++++++
info/task_description.html | 30 +++++-------------
info/task_short_description.html | 2 +-
verification/referee.py | 4 +--
verification/tests.py | 32 ++++++++++---------
10 files changed, 98 insertions(+), 59 deletions(-)
create mode 100644 info/media/example.svg
diff --git a/autofill.sh b/autofill.sh
index 90ce1d7..67c4309 100755
--- a/autofill.sh
+++ b/autofill.sh
@@ -1 +1 @@
-checkio --domain py autofillrepo --py-function sum_two --js-function sumTwo .
+checkio --domain py autofillrepo --py-function replace_first --js-function replaceFirst .
diff --git a/editor/animation/init.js b/editor/animation/init.js
index a24cfc6..c6301a4 100644
--- a/editor/animation/init.js
+++ b/editor/animation/init.js
@@ -8,8 +8,8 @@ requirejs(['ext_editor_io', 'jquery_190'],
var io = new extIO({
multipleArguments: true,
functions: {
- python: 'sum_two',
- js: 'sumTwo'
+ python: 'replace_first',
+ js: 'replaceFirst'
}
});
io.start();
diff --git a/editor/initial_code/js_node b/editor/initial_code/js_node
index f6e2dc2..1910f29 100644
--- a/editor/initial_code/js_node
+++ b/editor/initial_code/js_node
@@ -1,19 +1,21 @@
"use strict";
-function sumTwo(a, b) {
- // sums two passed arguments
-
+function replaceFirst(a) {
// your code here
- return 0;
+ return undefined;
}
var assert = require('assert');
+
if (!global.is_checking) {
console.log('Example:');
- console.log(sumTwo(3, 2));
+ console.log(replaceFirst([1, 2, 3, 4]));
+
+ // These "asserts" are used for self-checking
+ assert.deepEqual(replaceFirst([1, 2, 3, 4]), [2, 3, 4, 1]);
+ assert.deepEqual(replaceFirst([1]), [1]);
+ assert.deepEqual(replaceFirst([]), []);
- // These "asserts" are used for self-checking and not for an auto-testing
- assert.equal(sumTwo(3, 2), 5);
- assert.equal(sumTwo(5, 7), 12);
console.log("Coding complete? Click 'Check' to earn cool rewards!");
}
+
\ No newline at end of file
diff --git a/editor/initial_code/python_3 b/editor/initial_code/python_3
index 5e64eec..36dd656 100644
--- a/editor/initial_code/python_3
+++ b/editor/initial_code/python_3
@@ -1,16 +1,14 @@
-def sum_two(a, b):
- """
- sums two passed arguments
- """
+def replace_first(a):
# your code here
return None
if __name__ == '__main__':
print("Example:")
- print(sum_two(3, 2))
-
+ print(replace_first([1, 2, 3, 4]))
+
# These "asserts" are used for self-checking and not for an auto-testing
- assert sum_two(3, 2) == 5, "First"
- assert sum_two(5, 7) == 12, "Second"
+ assert replace_first([1, 2, 3, 4]) == [2, 3, 4, 1]
+ assert replace_first([1]) == [1]
+ assert replace_first([]) == []
print("Coding complete? Click 'Check' to earn cool rewards!")
diff --git a/info/media/example.png b/info/media/example.png
index dda436b3951af3049b35493b26b00a918dcac939..04da2ed59c8a3e0fb75467da8c89a59602c15f96 100644
GIT binary patch
delta 3503
zcmV;g4N&sv50D%oiBL{Q4GJ0x0000DNk~Le0004y0001(2nGNE0Lq)c6_Ft)Sq-vD
zL_t(|+U(uUb=x``hjC=i-A8wujXBG^ic*2-+d%9JELC8u0?QTHsz7oDksBB*6+~Ih
za_CLgN(D1`BX9!4fJ8}@L=eyK93S5+f5fCn{PBVys1%W*A(5~Wk+2VcfF!+Z+8^}S
z-#5Ab^jz`V&;R|ehdFN}fEelaZlpimR{37t)-|rZ{s(U%0Du4i01zMmfM)w6lD~7R
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
delta 1920
zcmV-`2Y>jG9Ow@riBL{Q4GJ0x0000DNk~Le0004#0000}2nGNE09u3UVUZyxRtJhn
zL_t(|+U(uYaoS20fZ_F>yk9zq@|dTP3WC!>a0Rg|FiZ*n7vKr009=8c24Y;nB~N*b
zQo$t^+#s7+3aslo*WpH{yE@mQ3Bd$dx2L8-cd+IMsMA2+
zKas~P`O$wakD)xiTQ`-dUtnEd%KJ5VkB_(xqdL~1Y=5z7qo$3`{hEe7r0>1A&(^xU
zmVdX}xc*$z2>UwL7}sW9H=zy$6CC1)6Uj8TsaIhj+2;6hchd&G>hcIAkL!Ay_0@Cx
zISkagIuJ~7D3Mzo{u$YiVc({1w~olJ&7-d6wb_4k%SQNVUF%K_bs(4k>-PG38yq^w
z(=U=mRb5`ozuR+H&S<5P4U(V^HA4qH>g2NIdChB9US31B>E3Gm^i11jj=!{qPX{@1;^1RQP(#YAYox9B=rMW9xt~+mbpEOi)v4jgt*|
zO@hh89xn;8tazTwn$@AP9q?{-jjFP@)dhcbs22`%p)P@JQF4|O=lxi#F0bY0CC~4U
zI*^$Fd2U>JWBG4tSYBQ*ZEOd;4wse;cjjfdyZTBU$V`AddL`a64nHkzUUe(4&8|w!
z0B6*JU;^as{mH{c3A4H=a`Ir+<+c2~jZ12b&!_{z1jpG3=y@b3HjOJNPmd+;$v>GreB9{I(g`=y#t2Z9OO)aXnsW7uSGe`!C|N!`n9`FDG<#ooQH>$AEX
z8frov2qtJ#qoY5%w*~hCAK$yn54Gy@$WR{F^}Ij>tn2ty-LgNc!|5^Cp=^xiLY*6(
zSoi*4zaQvfD7`RVye=&e?W>8Rsovq)2G4M{#;yNSATONDZl4d_qtFMSqAQHfkxuySZHz}
z8OX!Pp6Xrk-0Sy)jy#;p^g*VsOdWfDF4IlXyC=$gl6myj%p>-eL5=raZ(FvHId2&@
z^*-b{9B$i-Cc8`;dC3Uo_O~|dpMxOa?Dsx)Ve_P#+F>M~x$d*|9oe?1BU$(=N|7h9Gy3Z93P
z%6tAU$acEAyhVpV0|XNwhcu?ic_&ejq3B4g?V!!ey|`#P67of7vWRFae55hT?`pb@h-|-}cnCQ~YnY
zI>hA%lds<2eqYEJYn-Rx7zp!lBq<4|15E+X%cP|~pWUHaMR8iZz+l{_2j>s=@^Es$hp6m|)f$Xl*d
ze=`4B3H9z-{kj>iPm&WYfif{P7)|Bx;rl^D147!NsALqB-{;W_vyv_KGqRq21<|Zb
z?JUTafYNXYdNh_~1V1e!(96$1J7eAY5t2hc%d`^}<@2{*Ab3@@!#ia@$;pU%Hhv|S
zH?aW)iFnJQ$^gLxu+dS;XsgsS#&bTaG=b({d#d*#8E&}@+Nj^#)1k~~!Z(8^qR#}4
zrF{?<6#PDmqVzL**h}~5cfG0Bl`Ri}1d*W}8XE3@0R{jHGzt0SqI%*00000
+
+
diff --git a/info/task_description.html b/info/task_description.html
index 238e44e..611cf79 100644
--- a/info/task_description.html
+++ b/info/task_description.html
@@ -1,20 +1,19 @@
- Sum two passed ints
+ In a given array first element should become the last one. Empty array or array with only one element should stay the same
-
- Input: Two arguments. Both are ints.
+ Input: {% if interpreter.slug == "js-node" %}Array{% else %}Itarable{% endif %}.
- Output: Int.
+ Output: {% if interpreter.slug == "js-node" %}Array{% else %}Itarable{% endif %}.
@@ -25,28 +24,13 @@
{% if interpreter.slug == "js-node" %}
-sumTwo(2, 3) == 5
-sumTwo(5, 7) == 12
+replaceFirst([1, 2, 3, 4]) == [2, 3, 4, 1]
+replaceFirst([1]) == [1]
{% else %}
-sum_two(2, 3) == 5
-sum_two(5, 7) == 12
+replace_first([1, 2, 3, 4]) == [2, 3, 4, 1]
+replace_first([1]) == [1]
{% endif %}
-
-
-
-
-
- How it’s used:
- (math is used everywhere)
-
-
-
-
-
- Precondition:
- both given ints should be between -1000 and 1000
-
diff --git a/info/task_short_description.html b/info/task_short_description.html
index f5d8b9d..267a2e3 100644
--- a/info/task_short_description.html
+++ b/info/task_short_description.html
@@ -1 +1 @@
-Add short description
\ No newline at end of file
+The first element should become the last one
\ No newline at end of file
diff --git a/verification/referee.py b/verification/referee.py
index d3ffb1c..2923a4f 100644
--- a/verification/referee.py
+++ b/verification/referee.py
@@ -38,8 +38,8 @@
CheckiOReferee(
tests=TESTS,
function_name={
- "python": "sum_two",
- "js": "sumTwo"
+ "python": "replace_first",
+ "js": "replaceFirst"
},
cover_code={
'python-3': cover_codes.unwrap_args,
diff --git a/verification/tests.py b/verification/tests.py
index ac70df9..bc88db8 100644
--- a/verification/tests.py
+++ b/verification/tests.py
@@ -11,26 +11,30 @@
TESTS = {
"Basics": [
{
- "input": [3, 2],
- "answer": 5,
- "explanation": "3+2=?"
+ "input": [[1,2,3,4]],
+ "answer": [2,3,4,1],
},
{
- "input": [5, 7],
- "answer": 12,
- "explanation": "5+7=?"
- }
+ "input": [[1]],
+ "answer": [1],
+ },
+ {
+ "input": [[]],
+ "answer": [],
+ },
],
"Extra": [
{
- "input": [6, 3],
- "answer": 9,
- "explanation": "6+3=?"
+ "input": [[10, 10]],
+ "answer": [10, 10],
},
{
- "input": [6, 7],
- "answer": 13,
- "explanation": "6+7=?"
- }
+ "input": [[1,2,2,2]],
+ "answer": [2,2,2,1],
+ },
+ {
+ "input": [[100]],
+ "answer": [100],
+ },
]
}