The description of this method is not ideal and it's possible to pass all the "curve" tests while failing the "createFilter" tests.
The "trick" is to know that a filter with keep either removes ONLY one character or keeps ONLY one character. This last bit was the one that forced me to reverse engineer the expected behaviour to satisfy the tests.
You need to think through what needs to happen when on keep == true vs keep == false. If keep == true, you still only want to keep the specific character coming in from filterWhat.
The description of this method is not ideal and it's possible to pass all the "curve" tests while failing the "createFilter" tests.
The "trick" is to know that a filter with keep either removes ONLY one character or keeps ONLY one character. This last bit was the one that forced me to reverse engineer the expected behaviour to satisfy the tests.
You need to think through what needs to happen when on keep == true vs keep == false. If keep == true, you still only want to keep the specific character coming in from filterWhat.