1
- test_that(" check_residuals" , {
1
+ test_that(" check_residuals and simulate_residuals " , {
2
2
skip_on_cran()
3
3
skip_if_not_installed(" DHARMa" )
4
4
set.seed(123 )
@@ -16,7 +16,46 @@ test_that("check_residuals", {
16
16
" particular models."
17
17
)
18
18
)
19
+ # check raw residuals
20
+ expect_equal(
21
+ head(residuals(res )),
22
+ c(0.55349 , 0.44012 , 0.39826 , 0.9825 , 0.90753 , 0.05809 ),
23
+ tolerance = 1e-4 ,
24
+ ignore_attr = TRUE
25
+ )
26
+ expect_equal(
27
+ head(residuals(res , quantile_function = stats :: qnorm )),
28
+ c(0.13448 , - 0.15068 , - 0.25785 , 2.10826 , 1.3257 , - 1.57097 ),
29
+ tolerance = 1e-4 ,
30
+ ignore_attr = TRUE
31
+ )
32
+ # compare to DHARMa
33
+ res_d <- DHARMa :: simulateResiduals(m , n = 250 , plot = FALSE )
34
+ expect_equal(
35
+ head(residuals(res )),
36
+ head(residuals(res_d )),
37
+ tolerance = 1e-4 ,
38
+ ignore_attr = TRUE
39
+ )
40
+ expect_equal(
41
+ head(residuals(res , quantile_function = stats :: qnorm )),
42
+ head(residuals(res_d , quantileFunction = stats :: qnorm )),
43
+ tolerance = 1e-4 ,
44
+ ignore_attr = TRUE
45
+ )
46
+ # DHARMa args work in residuals.permormance_simres
47
+ expect_equal(
48
+ residuals(res , quantileFunction = stats :: qnorm , outlierValues = c(- 3 , 3 )),
49
+ residuals(res_d , quantileFunction = stats :: qnorm , outlierValues = c(- 3 , 3 )),
50
+ tolerance = 1e-4 ,
51
+ ignore_attr = TRUE
52
+ )
53
+ # outlier_values works
54
+ expect_identical(sum(is.infinite(residuals(res , quantile_function = stats :: qnorm ))), 3L )
55
+ expect_identical(sum(is.infinite(residuals(res , quantile_function = stats :: qnorm , outlier_values = c(- 100 , 100 )))), 0L )
56
+ expect_error(residuals(res , quantile_function = stats :: qnorm , outlier_values = 1 : 3 ), regex = " `outlier_values` must be" )
19
57
58
+ # check_residuals
20
59
out <- check_residuals(res )
21
60
expect_equal(out , 0.01884602 , ignore_attr = TRUE , tolerance = 1e-4 )
22
61
expect_identical(
0 commit comments