[
{ "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" }
]