You have special cases for each stream in the input instead of treating them all the same. That introduces more edge cases, which means more testing.

Often (not always) verbosity and complexity go hand-in-hand. In this case, the generalized version is less verbose and simpler. If you don't like it, that's fine, but understand that that means you have more things to test.