factorial unit tests