Attached is a patch to improve the unit tests for the factorial function.
To compute the check value, it keeps a running total instead of recomputing the factorial from scratch inside the loop. It checks up to range(999) and is quite fast. The previous code checked range(10).
It also adds the following checks:
* 0! == 1
* (sys.maxsize+1)! => OverflowError
* 10e100 => OverflowError