The objective of the exercise is to extend the concept of value objects, to include conversion in equality, an intro to exceptions in programming, enumerations and possibly object slugs
The requirements will be delivered in the following 6 increments:
As an architect, I want to able to check if 1 cm is equal to 1 cm (Git tag: requirement-1)
As an architect, I want to be able to check if 1 m is equal to 100 cm, and 100 cm is equal to 0.1 km (Git tag: requirement-2)
As an architect, I want to be able to know that 1 m + 100 cm = 2 m, or 200 cm + 1 km = 100200 cm (Git tag: requirement-3)
As an architect, I want to be able to know that 1 m - 50 cm = 0.5 m, 2000 cm โ 1 m = 1900 cm (Git tag: requirement-4)
As an architect I want to be able to check if 1 g is equal to 1 g, and 0.1 kg = 100 g, and to know that 10 g + 1 kg = 1010 g, and 1.5 kg - 500 g = 1 kg (Git tag: requirement-5)
As an architect, I want to be able to check if 0 Celsius is equal to 32 Fahrenheit, and 0 Kelvin is equal to -273 Celsius (Git tag: requirement-6)
The tags associated with each requirement will reflect the expected code at the end of each requirement. Having said that, we always welcome meaningful (or sometimes even better) variations from the trainees.
Each requirement tag will have release notes in REQDISCUSSIONS.md as well as written in remote (Gitlab). The release notes have information regarding the often observed discussions and learning from each of the requirement.