From 1e4904a00df55948faf1cbc0d5a46fe4ab595504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Wed, 3 Nov 2021 13:29:24 +0100 Subject: [PATCH 1/3] Update README.md --- subjects/diamon/README.md | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/subjects/diamon/README.md b/subjects/diamon/README.md index c6e916684..92bb660f0 100644 --- a/subjects/diamon/README.md +++ b/subjects/diamon/README.md @@ -1,3 +1,33 @@ ## 🌟 Diamon -diamon (pyramid + reversed pyramid) +### Instructions + +Create a `diamon` function that takes a string and a number as parameters +and return a diamon shape constructed by 2 arguments: + - the characters (as a string) to be repeated + - the size of a side (as a number) + +Just like pyramid + a reversed pyramid + +### Output example + +- `*` character and side of 5 : + +``` + * + *** + ***** + ******* +********* + ******* + ***** + *** + * +``` + +> No new line in last line + +### Notions + +- [nan-academy.github.io/js-training/examples/loops](https://nan-academy.github.io/js-training/examples/loops.js) +- [nan-academy.github.io/js-training/examples/recursion](https://nan-academy.github.io/js-training/examples/recursion.js) From 3c37510aa9d4eebadfc01a244f3fb7ac3724ba9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Wed, 3 Nov 2021 13:31:00 +0100 Subject: [PATCH 2/3] Create diamon_test.js --- js/tests/diamon_test.js | 193 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 js/tests/diamon_test.js diff --git a/js/tests/diamon_test.js b/js/tests/diamon_test.js new file mode 100644 index 000000000..696094dbd --- /dev/null +++ b/js/tests/diamon_test.js @@ -0,0 +1,193 @@ +export const tests = [] +const t = f => tests.push(f) +t(({ code }) => code.split('\n').filter(s => s.trim()).length < 78) +t(({ code }) => !code.includes('$')) + +t(({ eq }) => eq(diamon('x', 1)), $a.trim()) +t(({ eq }) => eq(diamon('x', 2)), $b.trim()) +t(({ eq }) => eq(diamon('x', 3)), $c.trim()) +t(({ eq }) => eq(diamon('<>', 4)), $d.trim()) +t(({ eq }) => eq(diamon('#', 40)), $e.trim()) +t(({ eq }) => eq(diamon('{}', 12)), $f.trim()) +t(({ eq }) => eq(diamon('ABC', 7)), $g.trim()) +t(({ eq }) => eq(diamon('<^>', 13)), $h.trim()) + +Object.freeze(tests) + +const $a = `x` +const $b = ` + x +xxx + x +` + +const $c = ` + x + xxx +xxxxx + xxx + x +` + +const $d = ` + <> + <><><> + <><><><><> +<><><><><><><> + <><><><><> + <><><> + <> +` + +const $e = ` + + # + ### + ##### + ####### + ######### + ########### + ############# + ############### + ################# + ################### + ##################### + ####################### + ######################### + ########################### + ############################# + ############################### + ################################# + ################################### + ##################################### + ####################################### + ######################################### + ########################################### + ############################################# + ############################################### + ################################################# + ################################################### + ##################################################### + ####################################################### + ######################################################### + ########################################################### + ############################################################# + ############################################################### + ################################################################# + ################################################################### + ##################################################################### + ####################################################################### + ######################################################################### + ########################################################################### + ############################################################################# +############################################################################### + ############################################################################# + ########################################################################### + ######################################################################### + ####################################################################### + ##################################################################### + ################################################################### + ################################################################# + ############################################################### + ############################################################# + ########################################################### + ######################################################### + ####################################################### + ##################################################### + ################################################### + ################################################# + ############################################### + ############################################# + ########################################### + ######################################### + ####################################### + ##################################### + ################################### + ################################# + ############################### + ############################# + ########################### + ######################### + ####################### + ##################### + ################### + ################# + ############### + ############# + ########### + ######### + ####### + ##### + ### + # +` + +const $f = ` + {} + {}{}{} + {}{}{}{}{} + {}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{} +{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{}{}{} + {}{}{}{}{}{}{} + {}{}{}{}{} + {}{}{} + {} +` + +const $g = ` + ABC + ABCABCABC + ABCABCABCABCABC + ABCABCABCABCABCABCABC + ABCABCABCABCABCABCABCABCABC + ABCABCABCABCABCABCABCABCABCABCABC +ABCABCABCABCABCABCABCABCABCABCABCABCABC + ABCABCABCABCABCABCABCABCABCABCABC + ABCABCABCABCABCABCABCABCABC + ABCABCABCABCABCABCABC + ABCABCABCABCABC + ABCABCABC + ABC +` + +const $h = ` + <^> + <^><^><^> + <^><^><^><^><^> + <^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> +<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^><^><^> + <^><^><^><^><^><^><^> + <^><^><^><^><^> + <^><^><^> + <^> +` From 18c91ffd676f9a019703e4fad1ef3a65fddb562f Mon Sep 17 00:00:00 2001 From: Christopher Fremond <34804391+Frenchris@users.noreply.github.com> Date: Wed, 3 Nov 2021 12:48:26 +0000 Subject: [PATCH 3/3] Update README.md --- subjects/diamon/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subjects/diamon/README.md b/subjects/diamon/README.md index 92bb660f0..8ea4e0282 100644 --- a/subjects/diamon/README.md +++ b/subjects/diamon/README.md @@ -3,11 +3,11 @@ ### Instructions Create a `diamon` function that takes a string and a number as parameters -and return a diamon shape constructed by 2 arguments: +and returns a diamond shape constructed by 2 arguments: - the characters (as a string) to be repeated - the size of a side (as a number) -Just like pyramid + a reversed pyramid +It is just like pyramid + a reversed pyramid ### Output example