Other “small” datatypes that can be exhaustively tested:
In general, exhaustive testing should probably be more widely used. If the number of possible permutations of input data is less than a few billion, it’s usually feasible; less than a few trillion if the operation being tested is very, very fast. It circumvents the old canard that tests can only prove the existence of bugs!
You do need to have a good dataset (or known good function) to test against, though.