Functional Weave
Code in Python

math.integer-sqrt@1.0.0

vectors.json

960 bytes · view raw

[
  { "name": "zero", "args": [0], "expect": 0 },
  { "name": "one", "args": [1], "expect": 1 },
  { "name": "two truncates to one", "args": [2], "expect": 1 },
  { "name": "just below a perfect square", "args": [24], "expect": 4 },
  { "name": "a perfect square", "args": [25], "expect": 5 },
  { "name": "just above a perfect square", "args": [26], "expect": 5 },
  { "name": "a large perfect square, 94906265^2", "args": [9007199136250225], "expect": 94906265 },
  { "name": "one below a large perfect square: the double sqrt rounds up to 94906265, the answer is 94906264", "args": [9007199136250224], "expect": 94906264 },
  { "name": "the largest allowed input, 2^53 - 1", "args": [9007199254740991], "expect": 94906265 },
  { "name": "negative is an error", "args": [-1], "expectError": "n must be a whole number from 0 to 2^53 - 1" },
  { "name": "a fraction is an error", "args": [2.5], "expectError": "n must be a whole number from 0 to 2^53 - 1" }
]