accuracy of test cases
Robin Hankin wrote:
Hi
I have several methods for evaluating a function. The methods are
algebraically
identical but use different numerical techniques. The different methods
work
better (converge faster, etc) in different parts of the function's domain.
I am compiling a test suite for a package, and would like to verify that
the
different methods return approximately identical results.
Toy example follows:
R> f1 <- function(x){ (x-1)*(x+1)}
R> f2 <- function(x){x^2-1}
R> x <- pi+100i
R> abs(f1(x) - f2(x))
[1] 9.298027e-12
R> stopifnot(abs(f1(x)-f2(x)) < 1e-11)
Observe that f1() should be identically equal to f2(); any differences
are due to
rounding errors (needless to say, the real examples are more complex, with
larger errors).
My question is, I am unhappy about the numerical value of the tolerance
used in the last line.
The tolerance should be as small as possible, but If I make it too
small, the test may fail
when executed on a machine with different architecture from mine.
How do I deal with this?
See ?all.equal Uwe Ligges
-- Robin Hankin Uncertainty Analyst Southampton Oceanography Centre European Way, Southampton SO14 3ZH, UK tel 023-8059-7743
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html