Skip to content

SoftwareCraftersMurcia/christmas-tree

Repository files navigation

Christmas Tree Kata

There is a shortage of Christmas trees this year, however, you can help! In the absence of real trees, Santa is going to teach the children of the world the magic of the console.

Unfortunately, being approximately 1,751 years old, Santa can only write binary, and needs your help to write a program in a more modern language.

Instructions

Input

Given the children of the world have varying screen sizes, Santa has tasked you with printing a Christmas tree to the console for a given argument of the tree’s height to accommodate for all of the children.

Output

For example a tree with a height of 2 looks like this:

 x
xxx
 |

And a tree with a height of 3 looks like this:

  x
 xxx
xxxxx
  |

And a tree of height 10:

         x
        xxx
       xxxxx
      xxxxxxx
     xxxxxxxxx
    xxxxxxxxxxx
   xxxxxxxxxxxxx
  xxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx
         |

Source: https://www.codurance.com/katalyst/build-a-christmas-tree

Base para hacer tests

Configuración básica para empezar a hacer una kata o aprender a hacer tests en los siguientes lenguajes:

  • PHP y PHPUnit
  • Javascript con Jest
  • Typescript con Deno
  • Java, Junit y Mockito
  • Scala, Munit y Scalacheck
  • Kotlin, JUnit5 y MockK
  • C#, xUnit (con FluentAsertion) y NSubstitute (para mock)

Configuración específica por lenguaje

PHP con PHPUnit

  1. Instalar composer curl -sS https://getcomposer.org/installer | php
  2. composer install (estando en la carpeta php)
  3. ./vendor/bin/phpunit

📚 Documentación

Javascript con Jest

  1. Instalar Node
  2. npm install (Estando en la carpeta javascript)
  3. npm test

📚 Documentación

Typescript con Deno

  1. Instalar Deno
  2. deno test (Estando en la carpeta typescript)

📚 Documentación

Java con Junit y Mockito

  1. Instalar las dependencias y tests con Maven [mvn test]
  2. Ejecutar los tests con el IDE

📚 Documentación

Scala con Munit y Scalacheck

  1. sbt (en la carpeta scala)
  2. ~test para ejecutar los test en hot reload

📚 Documentación

Linux/Mac

  1. Instalar SDKMan
  2. sdk install java 11.0.12-open instala OpenJDK
  3. sdk install sbt una vez instalado SDKMan

Windows

  1. Instalar OpenJDK
  2. Instalar SBT

Visual Studio Code

  1. Descargar Visual Studio Code
  2. Instalar para VS Code Metals

Kotlin con JUnit5 y MockK

  1. Por consola: Puedes instalar dependencias y lanzar los tests con gradlew test
  2. Usando IDE: Simplemente abre el proyecto desde el raiz de la plantilla Kotlin

📚 Documentación

C# con xUnit (con FluentAsertion) y NSubstitute (para mock)

  1. Instalar Microsoft Visual Studio Community 2022
  2. Abre el proyecto y se descargaran automáticamente los paquetes Nuguet necesarios

📚 Documentación

Python

  1. Instalar python 3.x
  2. Una vez descargado el código fuente dentro de la carpeta */python/ creamos un virtual enviroment:
  3. python3 -m venv env
  4. Activamos en virtual environment:
  • windows: .\env\Scripts\activate.bat
  • linux/mac: source env/bin/activate
  1. pytest para ejecutar los tests.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published