11 lines
445 B
Groovy
11 lines
445 B
Groovy
def multiplier = { n1, n2 -> { m -> n1 * n2 * m } }
|
|
|
|
def ε = 0.00000001 // tolerance(epsilon): acceptable level of "wrongness" to account for rounding error
|
|
[(2.0):0.5, (4.0):0.25, (6.0):(1/6.0)].each { num, inv ->
|
|
def new_function = multiplier(num, inv)
|
|
(1.0..5.0).each { trial ->
|
|
assert (new_function(trial) - trial).abs() < ε
|
|
printf('%5.3f * %5.3f * %5.3f == %5.3f\n', num, inv, trial, trial)
|
|
}
|
|
println()
|
|
}
|