diff --git a/challenges/basic-bonfires.json b/challenges/basic-bonfires.json
index e08a8b2a9d..e05978194a 100644
--- a/challenges/basic-bonfires.json
+++ b/challenges/basic-bonfires.json
@@ -89,8 +89,8 @@
"tests": [
"assert(typeof(factorialize(5)) === \"number\", 'factorialize()
should return a number.');",
"assert(factorialize(5) === 120, '5
should return 120
.');",
- "assert(factorialize(10) === 3628800, '10
should return 3,628,800
.');",
- "assert(factorialize(20) === 2432902008176640000, '20
should return 2,432,902,008,176,640,000
.');",
+ "assert(factorialize(10) === 3628800, '10
should return 3,628,800
.');",
+ "assert(factorialize(20) === 2432902008176640000, '20
should return 2,432,902,008,176,640,000
.');",
"assert(factorialize(0) === 1, '0
should return 1.');"
],
"difficulty": "1.02",
@@ -273,9 +273,9 @@
"largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);"
],
"tests": [
- "assert(largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]).constructor === Array, 'largestOfFour()
should return an array.');",
- "assert.deepEqual(largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]), [27,5,39,1001], '[[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]
should return [27,5,39,1001]
.');",
- "assert.deepEqual(largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]), [9,35,97,1000000], '[[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]
should return [9, 35, 97, 1000000]
.');"
+ "assert(largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]).constructor === Array, 'message: largestOfFour()
should return an array.');",
+ "assert.deepEqual(largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]), [27,5,39,1001], 'message: [[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]
should return [27,5,39,1001]
.');",
+ "assert.deepEqual(largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]), [9,35,97,1000000], 'message: [[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]
should return [9, 35, 97, 1000000]
.');"
],
"MDNlinks": [
"Comparison Operators"
@@ -311,11 +311,11 @@
"end(\"Bastian\", \"n\", \"\");"
],
"tests": [
- "assert(end(\"Bastian\", \"n\") === true, '\"Bastian\", \"n\"
should return true.');",
- "assert(end(\"Connor\", \"n\") === false, '\"Connor\", \"n\"
should return false.');",
- "assert(end(\"Walking on water and developing software from a specification are easy if both are frozen.\", \"specification\") === false, '\"Walking on water and developing software from a specification are easy if both are frozen.\", \"specification\")
should return false.');",
- "assert(end(\"He has to give me a new name\", \"name\") === true, '\"He has to give me a new name\", \"name\"
should return true.');",
- "assert(end(\"If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing\", \"mountain\") === false, '\"If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing\", \"mountain\"
should return false.');"
+ "assert(end(\"Bastian\", \"n\") === true, '\"Bastian\", \"n\"
should return true.');",
+ "assert(end(\"Connor\", \"n\") === false, '\"Connor\", \"n\"
should return false.');",
+ "assert(end(\"Walking on water and developing software from a specification are easy if both are frozen.\", \"specification\") === false, '\"Walking on water and developing software from a specification are easy if both are frozen.\", \"specification\")
should return false.');",
+ "assert(end(\"He has to give me a new name\", \"name\") === true, '\"He has to give me a new name\", \"name\"
should return true.');",
+ "assert(end(\"If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing\", \"mountain\") === false, '\"If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing\", \"mountain\"
should return false.');"
],
"MDNlinks": [
"String.substr()"
@@ -350,9 +350,9 @@
"repeat(\"abc\", 3, \"\");"
],
"tests": [
- "assert(repeat(\"*\", 3) === \"***\", '\"*\", 3
should return \"***\"
.');",
- "assert(repeat(\"abc\", 3) === \"abcabcabc\", '\"abc\", 3
should return \"abcabcabc\"
.');",
- "assert(repeat(\"abc\", -2) === \"\", '\"abc\", -2
should return \"\"
.');"
+ "assert(repeat(\"*\", 3) === \"***\", '\"*\", 3
should return \"***\"
.');",
+ "assert(repeat(\"abc\", 3) === \"abcabcabc\", '\"abc\", 3
should return \"abcabcabc\"
.');",
+ "assert(repeat(\"abc\", -2) === \"\", '\"abc\", -2
should return \"\"
.');"
],
"MDNlinks": [
"Global String Object"
@@ -388,10 +388,10 @@
"truncate(\"A-tisket a-tasket A green and yellow basket\", 11, \"\");"
],
"tests": [
- "assert(truncate(\"A-tisket a-tasket A green and yellow basket\", 11) === \"A-tisket...\", '\"A-tisket a-tasket A green and yellow basket\", 1
should return \"A-tisket...\"
.');",
- "assert(truncate(\"Peter Piper picked a peck of pickled peppers\", 14) === \"Peter Piper...\", '\"Peter Piper picked a peck of pickled peppers\", 14
should return \"Peter Piper...\"
.');",
- "assert(truncate(\"A-tisket a-tasket A green and yellow basket\", \"A-tisket a-tasket A green and yellow basket\".length) === \"A-tisket a-tasket A green and yellow basket\", '\"A-tisket a-tasket A green and yellow basket\", \"A-tisket a-tasket A green and yellow basket\".length)
should return \"A-tisket a-tasket A green and yellow basket\"
.');",
- "assert(truncate('A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length + 2) === 'A-tisket a-tasket A green and yellow basket', '\"A-tisket a-tasket A green and yellow basket\", \"A-tisket a-tasket A green and yellow basket\".length + 2
should return \"A-tisket a-tasket A green and yellow basket\"
.');"
+ "assert(truncate(\"A-tisket a-tasket A green and yellow basket\", 11) === \"A-tisket...\", '\"A-tisket a-tasket A green and yellow basket\", 1
should return \"A-tisket...\"
.');",
+ "assert(truncate(\"Peter Piper picked a peck of pickled peppers\", 14) === \"Peter Piper...\", '\"Peter Piper picked a peck of pickled peppers\", 14
should return \"Peter Piper...\"
.');",
+ "assert(truncate(\"A-tisket a-tasket A green and yellow basket\", \"A-tisket a-tasket A green and yellow basket\".length) === \"A-tisket a-tasket A green and yellow basket\", '\"A-tisket a-tasket A green and yellow basket\", \"A-tisket a-tasket A green and yellow basket\".length)
should return \"A-tisket a-tasket A green and yellow basket\"
.');",
+ "assert(truncate('A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length + 2) === 'A-tisket a-tasket A green and yellow basket', '\"A-tisket a-tasket A green and yellow basket\", \"A-tisket a-tasket A green and yellow basket\".length + 2
should return \"A-tisket a-tasket A green and yellow basket\"
.');"
],
"MDNlinks": [
"String.slice()"
@@ -426,10 +426,10 @@
"chunk([\"a\", \"b\", \"c\", \"d\"], 2, \"\");"
],
"tests": [
- "assert.deepEqual(chunk([\"a\", \"b\", \"c\", \"d\"], 2), [[\"a\", \"b\"], [\"c\", \"d\"]], '[\"a\", \"b\", \"c\", \"d\"], 2
should return [[\"a\", \"b\"], [\"c\", \"d\"]]
.');",
- "assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 3), [[0, 1, 2], [3, 4, 5]], '[0, 1, 2, 3, 4, 5]
should return [[0, 1, 2], [3, 4, 5]]
.');",
- "assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 2), [[0, 1], [2, 3], [4, 5]], '[0, 1, 2, 3, 4, 5], 2
should return [[0, 1], [2, 3], [4, 5]]
.');",
- "assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 4), [[0, 1, 2, 3], [4, 5]], '[0, 1, 2, 3, 4, 5], 4
should return [[0, 1, 2, 3], [4, 5]]
.');"
+ "assert.deepEqual(chunk([\"a\", \"b\", \"c\", \"d\"], 2), [[\"a\", \"b\"], [\"c\", \"d\"]], '[\"a\", \"b\", \"c\", \"d\"], 2
should return [[\"a\", \"b\"], [\"c\", \"d\"]]
.');",
+ "assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 3), [[0, 1, 2], [3, 4, 5]], '[0, 1, 2, 3, 4, 5]
should return [[0, 1, 2], [3, 4, 5]]
.');",
+ "assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 2), [[0, 1], [2, 3], [4, 5]], '[0, 1, 2, 3, 4, 5], 2
should return [[0, 1], [2, 3], [4, 5]]
.');",
+ "assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 4), [[0, 1, 2, 3], [4, 5]], '[0, 1, 2, 3, 4, 5], 4
should return [[0, 1, 2, 3], [4, 5]]
.');"
],
"MDNlinks": [
"Array.push()"
@@ -464,9 +464,9 @@
"slasher([1, 2, 3], 2, \"\");"
],
"tests": [
- "assert.deepEqual(slasher([1, 2, 3], 2), [3], '[1, 2, 3], 2, [3]
should return [3]
.');",
- "assert.deepEqual(slasher([1, 2, 3], 0), [1, 2, 3], '[1, 2, 3], 0
should return [1, 2, 3]
.');",
- "assert.deepEqual(slasher([1, 2, 3], 9), [], '[1, 2, 3], 9
should return []
.');"
+ "assert.deepEqual(slasher([1, 2, 3], 2), [3], '[1, 2, 3], 2, [3]
should return [3]
.');",
+ "assert.deepEqual(slasher([1, 2, 3], 0), [1, 2, 3], '[1, 2, 3], 0
should return [1, 2, 3]
.');",
+ "assert.deepEqual(slasher([1, 2, 3], 9), [], '[1, 2, 3], 9
should return []
.');"
],
"MDNlinks": [
"Array.slice()",
@@ -504,14 +504,14 @@
"mutation([\"hello\", \"hey\"], \"\");"
],
"tests": [
- "assert(mutation([\"hello\", \"hey\"]) === false, '[\"hello\", \"hey\"]
should return false.');",
- "assert(mutation([\"hello\", \"Hello\"]) === true, '[\"hello\", \"Hello\"]
should return true.');",
- "assert(mutation([\"zyxwvutsrqponmlkjihgfedcba\", \"qrstu\"]) === true, '[\"zyxwvutsrqponmlkjihgfedcba\", \"qrstu\"]
should return true.');",
- "assert(mutation([\"Mary\", \"Army\"]) === true, '[\"Mary\", \"Army\"]
should return true.');",
- "assert(mutation([\"Mary\", \"Aarmy\"]) === true, '[\"Mary\", \"Aarmy\"]
should return true.');",
- "assert(mutation([\"Alien\", \"line\"]) === true, '[\"Alien\", \"line\"]
should return true.');",
- "assert(mutation([\"floor\", \"for\"]) === true, '[\"floor\", \"for\"]
should return true.');",
- "assert(mutation([\"hello\", \"neo\"]) === false, '[\"hello\", \"neo\"]
should return false.');"
+ "assert(mutation([\"hello\", \"hey\"]) === false, '[\"hello\", \"hey\"]
should return false.');",
+ "assert(mutation([\"hello\", \"Hello\"]) === true, '[\"hello\", \"Hello\"]
should return true.');",
+ "assert(mutation([\"zyxwvutsrqponmlkjihgfedcba\", \"qrstu\"]) === true, '[\"zyxwvutsrqponmlkjihgfedcba\", \"qrstu\"]
should return true.');",
+ "assert(mutation([\"Mary\", \"Army\"]) === true, '[\"Mary\", \"Army\"]
should return true.');",
+ "assert(mutation([\"Mary\", \"Aarmy\"]) === true, '[\"Mary\", \"Aarmy\"]
should return true.');",
+ "assert(mutation([\"Alien\", \"line\"]) === true, '[\"Alien\", \"line\"]
should return true.');",
+ "assert(mutation([\"floor\", \"for\"]) === true, '[\"floor\", \"for\"]
should return true.');",
+ "assert(mutation([\"hello\", \"neo\"]) === false, '[\"hello\", \"neo\"]
should return false.');"
],
"MDNlinks": [
"Array.indexOf()"
@@ -547,9 +547,9 @@
"bouncer([7, \"ate\", \"\", false, 9], \"\");"
],
"tests": [
- "assert.deepEqual(bouncer([7, \"ate\", \"\", false, 9]), [7, \"ate\", 9], '[7, \"ate\", \"\", false, 9]
should return [7, \"ate\", 9]
.');",
- "assert.deepEqual(bouncer([\"a\", \"b\", \"c\"]), [\"a\", \"b\", \"c\"], '[\"a\", \"b\", \"c\"]
should return [\"a\", \"b\", \"c\"]
.');",
- "assert.deepEqual(bouncer([false, null, 0, NaN, undefined, '']), [], '[false, null, 0]
should return []
.');"
+ "assert.deepEqual(bouncer([7, \"ate\", \"\", false, 9]), [7, \"ate\", 9], '[7, \"ate\", \"\", false, 9]
should return [7, \"ate\", 9]
.');",
+ "assert.deepEqual(bouncer([\"a\", \"b\", \"c\"]), [\"a\", \"b\", \"c\"], '[\"a\", \"b\", \"c\"]
should return [\"a\", \"b\", \"c\"]
.');",
+ "assert.deepEqual(bouncer([false, null, 0, NaN, undefined, '']), [], '[false, null, 0]
should return []
.');"
],
"MDNlinks": [
"Boolean Objects",
@@ -585,11 +585,11 @@
"destroyer([1, 2, 3, 1, 2, 3], 2, 3, \"\");"
],
"tests": [
- "assert.deepEqual(destroyer([1, 2, 3, 1, 2, 3], 2, 3), [1, 1], '[1, 2, 3, 1, 2, 3], 2, 3
should return [1, 1]
.');",
- "assert.deepEqual(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3), [1, 5, 1], '[1, 2, 3, 5, 1, 2, 3], 2, 3
should return [1, 5, 1]
.');",
- "assert.deepEqual(destroyer([3, 5, 1, 2, 2], 2, 3, 5), [1], '[3, 5, 1, 2, 2], 2, 3, 5
should return [1]
.');",
- "assert.deepEqual(destroyer([2, 3, 2, 3], 2, 3), [], '[2, 3, 2, 3], 2, 3
should return []
.');",
- "assert.deepEqual(destroyer([\"tree\", \"hamburger\", 53], \"tree\", 53), [\"hamburger\"], '[\"tree\", \"hamburger\", 53], \"tree\", 53)
should return [\"hamburger\"]
.');"
+ "assert.deepEqual(destroyer([1, 2, 3, 1, 2, 3], 2, 3), [1, 1], '[1, 2, 3, 1, 2, 3], 2, 3
should return [1, 1]
.');",
+ "assert.deepEqual(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3), [1, 5, 1], '[1, 2, 3, 5, 1, 2, 3], 2, 3
should return [1, 5, 1]
.');",
+ "assert.deepEqual(destroyer([3, 5, 1, 2, 2], 2, 3, 5), [1], '[3, 5, 1, 2, 2], 2, 3, 5
should return [1]
.');",
+ "assert.deepEqual(destroyer([2, 3, 2, 3], 2, 3), [], '[2, 3, 2, 3], 2, 3
should return []
.');",
+ "assert.deepEqual(destroyer([\"tree\", \"hamburger\", 53], \"tree\", 53), [\"hamburger\"], '[\"tree\", \"hamburger\", 53], \"tree\", 53)
should return [\"hamburger\"]
.');"
],
"MDNlinks": [
"Arguments object",
@@ -629,12 +629,12 @@
"Array.sort()"
],
"tests": [
- "assert(where([10, 20, 30, 40, 50], 35) === 3, '[10, 20, 30, 40, 50], 35
should return 3
.');",
- "assert(where([10, 20, 30, 40, 50], 30) === 2, '[10, 20, 30, 40, 50], 30)
should return 2
.');",
- "assert(where([40, 60], 50) === 1, '[40, 60,], 50
should return 1
.');",
- "assert(where([5, 3, 20, 3], 3) === 0, '[5, 3, 20, 3], 3
should return 0
.');",
- "assert(where([2, 20, 10], 1) === 0, '[2, 20, 10], 1
should return 0
.');",
- "assert(where([2, 5, 10], 15) === 3, '[2, 5, 10], 15
should return 3
.');"
+ "assert(where([10, 20, 30, 40, 50], 35) === 3, '[10, 20, 30, 40, 50], 35
should return 3
.');",
+ "assert(where([10, 20, 30, 40, 50], 30) === 2, '[10, 20, 30, 40, 50], 30)
should return 2
.');",
+ "assert(where([40, 60], 50) === 1, '[40, 60,], 50
should return 1
.');",
+ "assert(where([5, 3, 20, 3], 3) === 0, '[5, 3, 20, 3], 3
should return 0
.');",
+ "assert(where([2, 20, 10], 1) === 0, '[2, 20, 10], 1
should return 0
.');",
+ "assert(where([2, 5, 10], 15) === 3, '[2, 5, 10], 15
should return 3
.');"
],
"type": "bonfire",
"challengeType": 5,