There is a logic gap in Task 4. The instructions say to omit all non-letter characters ( " omit any characters that are not letters.“), but one of the test cases require the underscores generated in Task 1 to be preserved (Assert.Equal("my___Id", Identifier.Clean("my Id"));). The instructions should be updated to: ‘Omit any characters that are not letters or underscores.’”
Edit: the exercise in question is Squeaky Clean in C# on Exercism
I see now that the instructions ‘In the 5 tasks you will gradually build up the routine Clean’ probably imply that the tasks are mutually exclusive rather than successive.
Nevertheless, a clarification would help ?
What might the proposed clarification look like? What would have made that behavior clearer for you personally?
I am not sure how this could be clarified (if needed). This is my first post; had it been clearer, I might have tried to submit a change directly.
This is not a typical function specification, and adding a warning to each task (e.g., “this is a separate branch”) seems excessive.
Perhaps the last instruction note, “Note that the caller should avoid calling the routine Clean with an empty identifier since such identifiers are ineffectual,” could be changed to: “If a task matches, only that specific one will be applied.”
This came up at least once before, discussion is here FWIW.