katasJul 8, 2021

Manhattan Distance Using TDD

The problem is simpler, yet the restrictions around implementation will make you think.

Problem Statement For Kata

Originally Posted At https://kata-log.rocks/manhattan-distance-kata

Manhattan distance is the distance between two points in a grid (like the grid-like street geography of the New York borough of Manhattan) calculated by only taking a vertical and/or horizontal path.

Write a function int manhattanDistance(Point, Point) that returns the Manhattan Distance between the two points.

Rules

  • The class Point is immutable (its state cannot be changed after instantiation)
  • The class Point has no Getters
  • The class Point has no public properties (i.e. the internal state cannot be read from outside the class).

Selected Stack

  • Java 11
  • gradle (with gradle wrapper) as build tool
  • junit 5 as test framework

Understanding Solution

  • The Problem was solved using TDD and with the approach of just enough design at each stage
  • Go through Each commit One by one to understand how first failing tests were written
  • Each commit is one step of Red-Green-Refactor step