I'm not sure this line should be included.

My reading of the link provided in the README was that there are unambiguous representations of roman numerals up to 3999 (MMMCMXCIX..). So 3001 should not be tested to return an empty string (or did you intend for the flag to be `true` there?). Either way, that is a valid input as far as I'm concerned.

Without defining behavior for large numbers I would say that those cases shouldn't be tested. If anything you could test that they merely execute without issuing a runtime panic. But that would probably be best in another test. And it may be overkill anyway.

Testing for errors in the zero and negative case is the right thing to do IMO. It's not ambiguous. There are no representations for those numbers.