Apply labour markup on top of flat markup.
Extract system under test creation to a field.
Apply materials markup on top of flat markup.
Complete the basic set of tests.
Add a comment to the MarkupPolicy class describing its responsibilities.
Knows the markup rate that applies to different materials.
Use Java naming conventions rather than Ruby naming conventions.

No functional change.
Use the MaterialsMarkupRate in the test code.
Drop orginal jobCost() methods. Always specify all job details.
Rework the calculations to use BigDecimal rather than double.
Refactoring. No functional changes.