This section summarizes details of all katas contained in this repository. It includes both a difficulty level as well as a list of topics (per kata) that are being targeted. Difficulties range from low (L) → medium (M) → high (H).
Kata | Ranking | Aspects | Py | Java | JS | Clj | Kt | TS | C# |
---|---|---|---|---|---|---|---|---|---|
audio-player-kata | M | London vs. Detroit schools of TDD / Mocks, spies | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | ✗ |
babysteps-timer | H | Refactoring front-end legacy / Baby steps TDD | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | ✗ |
bugs-zero-kata | M | Legacy code / Refactoring / Approval tests | ✔ | ✗ | ✗ | ✗ | ✗ | ✔ | ✗ |
cache-kata | L | Verification of state versus behavior | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
christmas-tree | L | Implement an algorithm in small steps | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
connect-four | H | Implement a game in small steps | ✔ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ |
countries-kata | L / M | Ports & adapters / Refactoring / REST / DI | ✔ | ✗ | ✔ | ✗ | ✗ | ✔ | ✗ |
cqrs-booking | H | CQRS / DDD / Event-based architecture | ✗ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ |
db-adapter-kata | M | Ports & adapters / Database / DI | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
elephant-carpaccio | M | Slicing user stories | ✗ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ |
fibonacci-kata | M | Pipelines / Automated deployments / IaC | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
game-of-life | M | Generic TDD / Small steps | ✔ | ✔ | ✗ | ✔ | ✗ | ✗ | ✗ |
gilded-rose-kata | M / H | Legacy code / Refactoring / Approval tests | ✔ | ✗ | ✔ | ✗ | ✗ | ✔ | ✗ |
greed-kata | M | Implement complex rules in small steps | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ |
lcd-digits-kata | L | Getting started with TDD / Recursion | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ |
locker-room-kata | M | Stateless / Functional programming | ✗ | ✗ | ✗ | ✔ | ✔ | ✗ | ✗ |
manhattan-distance | L | 1, 2, N / Encapsulation | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
mars-rover | M | Generic TDD / Design decisions | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ |
pacman-kata | H | Unites many of the practices from other katas | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
poker-hands-kata | H | Outside-in / Mocks / Design decisions | ✔ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ |
questionnaire-kata | M | Data science / Dashboarding / Ports & adapters | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
report-generator-kata | L / M | Refactoring / SOLID / Code smells / Clean code | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
registration-form | L / M | Generic TDD / Front-end TDD / Custom matchers | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | ✗ |
shunting-yard-algo | M | Generic TDD | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ |
stack-kata | L | Getting started with TDD (small steps) | ✔ | ✔ | ✔ | ✗ | ✗ | ✔ | ✗ |
sudoku-kata | M | Recursion, TDD and small steps | ✔ | ✔ | ✗ | ✔ | ✗ | ✗ | ✗ |
task-list-kata | M | Command-Query / Strong typing / Realistic app | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
tell-dont-ask | M | Refactoring / Anemic domain model / DDD | ✔ | ✔ | ✗ | ✗ | ✗ | ✔ | ✔ |
tire-pressure-kata | L | Ports & adapters / Testable design / DI | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
train-reservation | M | Example mapping / Double loop TDD / Test doubles | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ |
vending-machine | L / M | Small steps / Code smells and refactoring | ✔ | ✔ | ✔ | ✗ | ✔ | ✔ | ✔ |
video-store-kata | L | Legacy code / Code smells and refactoring | ✔ | ✔ | ✔ | ✗ | ✗ | ✔ | ✗ |
This work is licensed under a CC-BY-SA-4.0 license. Attribution: github.com/zhendrikse/tdd.