я закончил тестирование возврата по NaN, а также за то, что он находился в диапазоне [int.MIN_VALUE, int.MAX_VALUE].
вот несколько примеров и результатов. (false = недопустимый int, true = действительный int)
"abcde" , false //
"0XYZ" , true // i wish this wasn't the case, but it is.
" 123 " , true //
"NaN" , false //
"85899345912", false // 2^33 - 1
"2147483647", true // 2^31 - 1
"2147483648", false // 2^31
"-2147483647", true // -(2^31 - 1)
"-2147483648", true // -(2^31
"-2147483649", false // -(2^31 + 1)