Calling `assert` within the `Enum.map` makes the errors more usable.
Support `Math.factor` and cover it with tests.