You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A key concern is accurate numeric outcomes for all arithmetic operations, including parsing and formatting. The last thing we want is some variant of 0.1 + 0.1 + 0.1 ≠ 0.3.
Some thought needs to go into the completeness of the tests such that all conceivable edge cases are covered. The following is a reasonably thorough but incomplete set of cases to consider.
Boundaries such as the largest and smallest possible exponent
Every combination of positive and negative arguments
Every combination of kinds of arguments (SNaN, QNaN, ±∞, ±normal, ±subnormal, ±0)
Make sure to include the largest and smallest ±normals and ±subnormals.
Numbers close to ±0
The smallest normal number and its neighborhood
±10ⁱ and its neighborhood for every representable i
±2ⁱ and its neighborhood for every representable i
Operations jumping numbers into different phases (e.g., doubling ±the largest number = ±∞, halving ±the smallest number = ±0. Consider this for every operation
Parsing massive numeric representations (e.g., a number with 5000 digits)
Parsing out of range numbers (e.g., 1E1234 or 1E-1000)
A key concern is accurate numeric outcomes for all arithmetic operations, including parsing and formatting. The last thing we want is some variant of 0.1 + 0.1 + 0.1 ≠ 0.3.
Some thought needs to go into the completeness of the tests such that all conceivable edge cases are covered. The following is a reasonably thorough but incomplete set of cases to consider.