(#194) - Fixes math.norm and add test specs

As stated on #194, `if min === max === val` we would get a `NaN` as the returned value, which is not the expected (`1`). That happens because we deal with a `0/0`, which returns `NaN`. If `max === min` we would also return something not expected even when val is differnt (it would return `Infinity`).

Fixes #194