Test: 1001
TPP: unconditional -> if (number == 1001), the new execution path is a nil -> constant (return "one thousand one")
Test: 1002, and test name are refactored
TPP: constant -> scala (1 -> number % 1000)
Similar as 102, I did some refactorings to replace the text with map values. In fact, there is another transformation happened at the same time for the if condition. A new statement "number == 1002" is added to it. This is also similar as the situation happened when 102 case passed. I will say this transformation is a sub-transformation here comparing to the previous one.
A small code change: "number % 1000" -> "number - 1000". In fact, this is a even better transformation to pass last test (1002)
A small refactoring to change (number - 1000) to (number % 1000) so that the next case 2001 can be passed easier. I tried to find a case to make this as a transformation instead of "refactoring". But, this attempt failed as same as what happened when I handle such situation for hundreds
Test: 2001
TPP: constant -> scalar (1 -> number / 1000). Similar as hundreds