Ruby gives contradictory answers for NaN:
> (0/0.0).finite? => false > Complex(0/0.0, 0).finite? => true
nil, so the float answer of
false looks even more wrong.
The two solutions I see are either changing
Float#finite? to return
true for NaN, or to raise in both cases.
I'd lean towards raising in both cases, as NaN can not be said to be finite or infinite