R version 4.2.2 (2022-10-31) -- "Innocent and Trusting"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: powerpc-apple-darwin10.8.0 (32-bit)
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> suppressPackageStartupMessages(library(float))
> set.seed(1234)
>
> tester = function(s, x, fun)
+ {
+ test = dbl(fun(s, na.rm=TRUE))
+ truth = fun(x, na.rm=TRUE)
+ stopifnot(all.equal(test, truth, tol=tol))
+
+ test = dbl(fun(s, na.rm=FALSE))
+ truth = fun(x, na.rm=FALSE)
+ stopifnot(all.equal(test, truth, tol=tol))
+ }
>
> tol = 1e-6
> m = 5
> n = 3
>
> x1 = matrix(stats::rnorm(m*n), m, n)
> x2 = x1
> x2[1, 1] = NA_real_
> x2[3, 2] = NaN
>
> s1 = fl(x1)
> s2 = fl(x2)
>
>
>
> tester(s1, x1, colSums)
> tester(s2, x2, colSums)
Error in tester(s2, x2, colSums) : test and truth are not equal:
'is.NA' value mismatch: 2 in current 1 in target
Calls: tester -> stopifnot
Execution halted