Test: 100
TPP: constant -> constant+
However, there is a problem already. We can keep adding such key-value pairs into the map but we can't do it forever. And, NUMBER_TO_ONE_WORD, as its name, should only contain numbers which can be converted to one English word. Finally, "one hundred" actually has some duplicated data with "one".
We will fix this problem shortly.
Test: 200
TPP: constant -> constant+
See the duplicated data now? Let's refactor it in next commit.
Important! This is a refactoring. But, I have to add a new execution path to remove the duplicated data in NUMBER_TO_ONE_WORD map. Is it worth? Hard to say for now.
And, let's compare the code with that reverted TPP for 31 and 32. That TPP is an expression -> function transformation as below:
20 -> NUMBER_TO_ONE_WORD.floorKey(number), which is a trick algorithm and a bit hard to understand.
Code here is a new execution path "NUMBER_TO_ONE_WORD.get(number / 100) + DELIMITER + HUNDRED" with the condition "number != 0 && number % 100 == 0". More code, but more obvious and less complex.
I personally like current code better than that reverted TPP code. Even if we may still need that tricky code later, I prefer to delay this transformation as late as possible.