#!/usr/bin/ruby
var range = (1 .. 50 -> by(irand(1, 15)))
for k in range {
for j in range {
var (x, y) = k.irootrem(j)
var r = k.iroot(j)
var m = (k - r.ipow(j))
#say "#{k} #{j} (#{x}, #{y}) (#{r}, #{m})"
assert_eq("#{x}", "#{r}")
assert_eq("#{y}", "#{m}")
if (x.is_pos) {
var r = k.root(j).int
assert_eq("#{x}", "#{r}")
assert_eq("#{y}", "#{k - r**j}")
}
}
}
say "** Test passed!"