[ { "name": "a whole exponent is exact: 10^3 is 1000, not 999.9999999999998", "args": [10, 3], "expect": 1000 }, { "name": "a negative whole exponent", "args": [2, -2], "expect": 0.25 }, { "name": "a negative base with an odd exponent", "args": [-2, 3], "expect": -8 }, { "name": "a negative base with an even exponent", "args": [-2, 2], "expect": 4 }, { "name": "squaring keeps binary rounding: 1.1^2", "args": [1.1, 2], "expect": 1.2100000000000002 }, { "name": "a square root", "args": [2, 0.5], "expect": 1.4142135623730951 }, { "name": "a cube root", "args": [8, 0.3333333333333333], "expect": 2 }, { "name": "the sRGB gamma exponent", "args": [0.5, 2.4], "expect": 0.18946457081379975 }, { "name": "anything to the power 0 is 1", "args": [7.5, 0], "expect": 1 }, { "name": "zero to the power 0 is 1", "args": [0, 0], "expect": 1 }, { "name": "zero to a positive power is 0", "args": [0, 2.5], "expect": 0 }, { "name": "a result below the smallest normal double is 0", "args": [0.5, 2000.5], "expect": 0 }, { "name": "zero to a negative power is an error", "args": [0, -1], "expectError": "zero cannot be raised to a negative power" }, { "name": "a negative base with a fractional exponent is an error", "args": [-8, 0.3333333333333333], "expectError": "a negative base needs a whole-number exponent" }, { "name": "an overflowing whole power is an error", "args": [10, 400], "expectError": "pow result is too large to represent" }, { "name": "an overflowing fractional power is an error", "args": [10, 400.5], "expectError": "pow result is too large to represent" } ]