Karl,
Your code looks solid. Recursion is tricky so good job getting a handle on it. Unfortunately, we're really looking for the assert testing to be done more succinctly, i.e. in a for loop iterating over a list of inputs expected values. See if you can get the testing to work with just one assert statement.