Browse Source

Merge pull request #884 from 01-edu/diamon-fix

Fix diamon exercise (js)
pull/885/head^2
Christopher Fremond 3 years ago committed by GitHub
parent
commit
60e6541034
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 193
      js/tests/diamon_test.js
  2. 32
      subjects/diamon/README.md

193
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 = `
<^>
<^><^><^>
<^><^><^><^><^>
<^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^><^><^>
<^><^><^><^><^><^><^>
<^><^><^><^><^>
<^><^><^>
<^>
`

32
subjects/diamon/README.md

@ -1,3 +1,33 @@
## 🌟 Diamon ## 🌟 Diamon
diamon (pyramid + reversed pyramid) ### Instructions
Create a `diamon` function that takes a string and a number as parameters
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)
It is 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)

Loading…
Cancel
Save