Skip to contents


library(saferDev)


Datasets

f <- "unique"
f2 <- "plot"
argum <- c("x", "incomparables")
argum2 <- c("x", "y")
value <- list(x = list(1:10, c(1,1,2,8), NA), incomparable = c(TRUE, FALSE, NA))
value2 <- list(x = list(1:10, 12:13, NA, (1:10)^2),y = list(1:10, NA, NA))
error <- list(x = list(FALSE, FALSE, TRUE), incomparable = c(FALSE, FALSE, TRUE))
error2 <- list(x = list(FALSE, TRUE, TRUE, FALSE), y = list(FALSE, TRUE, TRUE))


Datasets info

f # character string indicating the name of the function tested 
> [1] "unique"
argum # character vector of the arguments of fun
> [1] "x"             "incomparables"
value # List in which each compartment containing values of the corresponding argument in arg
> $x
> $x[[1]]
>  [1]  1  2  3  4  5  6  7  8  9 10
> 
> $x[[2]]
> [1] 1 1 2 8
> 
> $x[[3]]
> [1] NA
> 
> 
> $incomparable
> [1]  TRUE FALSE    NA
value2 # List in which each compartment containing values of the corresponding argument2 in arg
> $x
> $x[[1]]
>  [1]  1  2  3  4  5  6  7  8  9 10
> 
> $x[[2]]
> [1] 12 13
> 
> $x[[3]]
> [1] NA
> 
> $x[[4]]
>  [1]   1   4   9  16  25  36  49  64  81 100
> 
> 
> $y
> $y[[1]]
>  [1]  1  2  3  4  5  6  7  8  9 10
> 
> $y[[2]]
> [1] NA
> 
> $y[[3]]
> [1] NA
error # List indicating if an error is expected
> $x
> $x[[1]]
> [1] FALSE
> 
> $x[[2]]
> [1] FALSE
> 
> $x[[3]]
> [1] TRUE
> 
> 
> $incomparable
> [1] FALSE FALSE  TRUE


Simple examples

arg_test(
    fun = f, 
    arg = argum, 
    val = value
)
> 
> test JOB IGNITION
> 
> TOTAL NUMBER OF TESTS: 9
> 
> LOOP PROCESS ENDED | LOOP 9 / 9 | TIME SPENT: 0S
> 
> test JOB END
> 
> TIME: 2025-06-23 07:46:34.477998
> 
> TOTAL TIME LAPSE: 0S
> $fun
> [1] "unique"
> 
> $ini
> arg_test(fun = f, arg = argum, val = value)
> 
> $data
>            X.SPECIAL.VALUE.OF.CLASS.integer.AND.TYPE.integer.
> arg_test_1    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_2    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_3    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_4     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_5     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_6     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_7    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_8    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_9    SPECIAL VALUE OF CLASS logical AND TYPE logical
>            X.SPECIAL.VALUE.OF.CLASS.logical.AND.TYPE.logical. kind problem
> arg_test_1    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_2    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_3    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_4    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_5    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_6    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_7    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_8    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_9    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
>            message
> arg_test_1        
> arg_test_2        
> arg_test_3        
> arg_test_4        
> arg_test_5        
> arg_test_6        
> arg_test_7        
> arg_test_8        
> arg_test_9        
> 
> $sys.info
> R version 4.3.3 (2024-02-29)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Ubuntu 22.04.4 LTS
> 
> Matrix products: default
> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0
> 
> locale:
>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
> 
> time zone: UTC
> tzcode source: system (glibc)
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base     
> 
> other attached packages:
> [1] saferDev_1.0
> 
> loaded via a namespace (and not attached):
>  [1] askpass_1.2.0     bslib_0.7.0       cachem_1.0.8      cli_3.6.2        
>  [5] colorspace_2.1-0  compiler_4.3.3    desc_1.4.3        digest_0.6.35    
>  [9] evaluate_0.23     fansi_1.0.6       fastmap_1.1.1     fs_1.6.3         
> [13] generics_0.1.3    ggplot2_3.5.0     glue_1.7.0        grid_4.3.3       
> [17] gtable_0.3.5      htmltools_0.5.8.1 htmlwidgets_1.6.4 jquerylib_0.1.4  
> [21] jsonlite_1.8.8    knitr_1.46        lifecycle_1.0.4   lubridate_1.9.3  
> [25] magrittr_2.0.3    memoise_2.0.1     munsell_0.5.1     parallel_4.3.3   
> [29] pillar_1.9.0      pkgconfig_2.0.3   pkgdown_2.0.9     purrr_1.0.2      
> [33] qpdf_1.3.3        R6_2.5.1          ragg_1.3.0        Rcpp_1.0.12      
> [37] rlang_1.1.3       rmarkdown_2.26    sass_0.4.9        scales_1.3.0     
> [41] systemfonts_1.0.6 textshaping_0.3.7 tibble_3.2.1      timechange_0.3.0 
> [45] tools_4.3.3       utf8_1.2.4        vctrs_0.6.5       xfun_0.43        
> [49] yaml_2.3.8

arg_test(
    fun = f2, 
    arg = argum2, 
    val = value2
)
> 
> test JOB IGNITION
> 
> TOTAL NUMBER OF TESTS: 12
> 
> LOOP 10 / 12 | TIME SPENT: 0S | EXPECTED END: 2025-06-23 07:46:34.911703
> LOOP PROCESS ENDED | LOOP 12 / 12 | TIME SPENT: 0S
> 
> test JOB END
> 
> TIME: 2025-06-23 07:46:34.920892
> 
> TOTAL TIME LAPSE: 0S
> $fun
> [1] "plot"
> 
> $ini
> arg_test(fun = f2, arg = argum2, val = value2)
> 
> $data
>             X.SPECIAL.VALUE.OF.CLASS.integer.AND.TYPE.integer.
> arg_test_01    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_02    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_03    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_04    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_05    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_06    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_07    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_08    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_09    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_10     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_11     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_12     SPECIAL VALUE OF CLASS numeric AND TYPE double
>             X.SPECIAL.VALUE.OF.CLASS.integer.AND.TYPE.integer..1  kind problem
> arg_test_01      SPECIAL VALUE OF CLASS integer AND TYPE integer    OK   FALSE
> arg_test_02      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_03      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_04      SPECIAL VALUE OF CLASS integer AND TYPE integer ERROR    TRUE
> arg_test_05      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_06      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_07      SPECIAL VALUE OF CLASS integer AND TYPE integer ERROR    TRUE
> arg_test_08      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_09      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_10      SPECIAL VALUE OF CLASS integer AND TYPE integer    OK   FALSE
> arg_test_11      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_12      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
>                                                                                      message
> arg_test_01                                                                                 
> arg_test_02 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_03 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_04 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_05 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_06 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_07 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_08                          Error in plot.window(...) : need finite 'xlim' values\n
> arg_test_09                          Error in plot.window(...) : need finite 'xlim' values\n
> arg_test_10                                                                                 
> arg_test_11 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_12 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> 
> $sys.info
> R version 4.3.3 (2024-02-29)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Ubuntu 22.04.4 LTS
> 
> Matrix products: default
> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0
> 
> locale:
>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
> 
> time zone: UTC
> tzcode source: system (glibc)
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base     
> 
> other attached packages:
> [1] saferDev_1.0
> 
> loaded via a namespace (and not attached):
>  [1] askpass_1.2.0     bslib_0.7.0       cachem_1.0.8      cli_3.6.2        
>  [5] colorspace_2.1-0  compiler_4.3.3    desc_1.4.3        digest_0.6.35    
>  [9] evaluate_0.23     fansi_1.0.6       fastmap_1.1.1     fs_1.6.3         
> [13] generics_0.1.3    ggplot2_3.5.0     glue_1.7.0        grid_4.3.3       
> [17] gtable_0.3.5      htmltools_0.5.8.1 htmlwidgets_1.6.4 jquerylib_0.1.4  
> [21] jsonlite_1.8.8    knitr_1.46        lifecycle_1.0.4   lubridate_1.9.3  
> [25] magrittr_2.0.3    memoise_2.0.1     munsell_0.5.1     parallel_4.3.3   
> [29] pillar_1.9.0      pkgconfig_2.0.3   pkgdown_2.0.9     purrr_1.0.2      
> [33] qpdf_1.3.3        R6_2.5.1          ragg_1.3.0        Rcpp_1.0.12      
> [37] rlang_1.1.3       rmarkdown_2.26    sass_0.4.9        scales_1.3.0     
> [41] systemfonts_1.0.6 textshaping_0.3.7 tibble_3.2.1      timechange_0.3.0 
> [45] tools_4.3.3       utf8_1.2.4        vctrs_0.6.5       xfun_0.43        
> [49] yaml_2.3.8

arg_test(
    fun = f, 
    arg = argum, 
    val = value,
    export = TRUE,
    res_path = getwd()
)
> 
> test JOB IGNITION
> 
> TOTAL NUMBER OF TESTS: 9
> 
> LOOP PROCESS ENDED | LOOP 9 / 9 | TIME SPENT: 0S
> 
> test JOB END
> 
> TIME: 2025-06-23 07:46:35.268854
> 
> TOTAL TIME LAPSE: 0S

arg_test(
    fun = f2, 
    arg = argum2, 
    val = value2,
    expect_error = error2,
    plot_fun = TRUE,
    res_path = "."
)
> 
> test JOB IGNITION
> 
> TOTAL NUMBER OF TESTS: 12
> 
> LOOP 10 / 12 | TIME SPENT: 0S | EXPECTED END: 2025-06-23 07:46:35.671559
> LOOP PROCESS ENDED | LOOP 12 / 12 | TIME SPENT: 0S
> 
> NO DISCREPANCY BETWEEN EXPECTED AND OBSERVED ERRORS
> 
> test JOB END
> 
> TIME: 2025-06-23 07:46:35.682036
> 
> TOTAL TIME LAPSE: 0S
> $fun
> [1] "plot"
> 
> $ini
> arg_test(fun = f2, arg = argum2, val = value2, expect_error = error2, 
>     plot_fun = TRUE, res_path = ".")
> 
> $data
>             X.SPECIAL.VALUE.OF.CLASS.integer.AND.TYPE.integer.
> arg_test_01    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_02    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_03    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_04    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_05    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_06    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_07    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_08    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_09    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_10     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_11     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_12     SPECIAL VALUE OF CLASS numeric AND TYPE double
>             X.SPECIAL.VALUE.OF.CLASS.integer.AND.TYPE.integer..1  kind problem
> arg_test_01      SPECIAL VALUE OF CLASS integer AND TYPE integer    OK   FALSE
> arg_test_02      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_03      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_04      SPECIAL VALUE OF CLASS integer AND TYPE integer ERROR    TRUE
> arg_test_05      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_06      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_07      SPECIAL VALUE OF CLASS integer AND TYPE integer ERROR    TRUE
> arg_test_08      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_09      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_10      SPECIAL VALUE OF CLASS integer AND TYPE integer    OK   FALSE
> arg_test_11      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
> arg_test_12      SPECIAL VALUE OF CLASS logical AND TYPE logical ERROR    TRUE
>             expected.error
> arg_test_01          FALSE
> arg_test_02           TRUE
> arg_test_03           TRUE
> arg_test_04           TRUE
> arg_test_05           TRUE
> arg_test_06           TRUE
> arg_test_07           TRUE
> arg_test_08           TRUE
> arg_test_09           TRUE
> arg_test_10          FALSE
> arg_test_11           TRUE
> arg_test_12           TRUE
>                                                                                      message
> arg_test_01                                                                                 
> arg_test_02 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_03 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_04 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_05 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_06 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_07 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_08                          Error in plot.window(...) : need finite 'xlim' values\n
> arg_test_09                          Error in plot.window(...) : need finite 'xlim' values\n
> arg_test_10                                                                                 
> arg_test_11 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> arg_test_12 Error in xy.coords(x, y, xlabel, ylabel, log) : \n  'x' and 'y' lengths differ\n
> 
> $sys.info
> R version 4.3.3 (2024-02-29)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Ubuntu 22.04.4 LTS
> 
> Matrix products: default
> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0
> 
> locale:
>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
> 
> time zone: UTC
> tzcode source: system (glibc)
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base     
> 
> other attached packages:
> [1] saferDev_1.0
> 
> loaded via a namespace (and not attached):
>  [1] askpass_1.2.0     bslib_0.7.0       cachem_1.0.8      cli_3.6.2        
>  [5] colorspace_2.1-0  compiler_4.3.3    desc_1.4.3        digest_0.6.35    
>  [9] evaluate_0.23     fansi_1.0.6       fastmap_1.1.1     fs_1.6.3         
> [13] generics_0.1.3    ggplot2_3.5.0     glue_1.7.0        grid_4.3.3       
> [17] gtable_0.3.5      htmltools_0.5.8.1 htmlwidgets_1.6.4 jquerylib_0.1.4  
> [21] jsonlite_1.8.8    knitr_1.46        lifecycle_1.0.4   lubridate_1.9.3  
> [25] magrittr_2.0.3    memoise_2.0.1     munsell_0.5.1     parallel_4.3.3   
> [29] pillar_1.9.0      pkgconfig_2.0.3   pkgdown_2.0.9     purrr_1.0.2      
> [33] qpdf_1.3.3        R6_2.5.1          ragg_1.3.0        Rcpp_1.0.12      
> [37] rlang_1.1.3       rmarkdown_2.26    sass_0.4.9        scales_1.3.0     
> [41] systemfonts_1.0.6 textshaping_0.3.7 tibble_3.2.1      timechange_0.3.0 
> [45] tools_4.3.3       utf8_1.2.4        vctrs_0.6.5       xfun_0.43        
> [49] yaml_2.3.8


All the arguments

arg_test(
    fun = f, 
    arg = argum, 
    val= value, 
    expect_error = error, 
    parall = FALSE, 
    thread_nb = NULL, 
    print_count = 10, 
    plot_fun = FALSE, 
    export = FALSE, 
    res_path = ".", 
    safer_check = TRUE, # perform some "safer" checks? Warning : always set this argument to FALSE if all_args_here() is used inside another safer function.
    lib_path = NULL, # absolute pathways of the directories containing the required packages if not in the default directories.
    error_text = "" # add information in error messages returned by the function.
) # check the function "mean" in the environment one step above the local environment
> 
> test JOB IGNITION
> 
> TOTAL NUMBER OF TESTS: 9
> 
> LOOP PROCESS ENDED | LOOP 9 / 9 | TIME SPENT: 0S
> 
> DISCREPANCIES BETWEEN EXPECTED AND OBSERVED ERRORS (SEE THE $data RESULT)
> 
> test JOB END
> 
> TIME: 2025-06-23 07:46:36.111602
> 
> TOTAL TIME LAPSE: 0S
> $fun
> [1] "unique"
> 
> $ini
> arg_test(fun = f, arg = argum, val = value, expect_error = error, 
>     parall = FALSE, thread_nb = NULL, print_count = 10, plot_fun = FALSE, 
>     export = FALSE, res_path = ".", safer_check = TRUE, lib_path = NULL, 
>     error_text = "")
> 
> $data
>            X.SPECIAL.VALUE.OF.CLASS.integer.AND.TYPE.integer.
> arg_test_1    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_2    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_3    SPECIAL VALUE OF CLASS integer AND TYPE integer
> arg_test_4     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_5     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_6     SPECIAL VALUE OF CLASS numeric AND TYPE double
> arg_test_7    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_8    SPECIAL VALUE OF CLASS logical AND TYPE logical
> arg_test_9    SPECIAL VALUE OF CLASS logical AND TYPE logical
>            X.SPECIAL.VALUE.OF.CLASS.logical.AND.TYPE.logical. kind problem
> arg_test_1    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_2    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_3    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_4    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_5    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_6    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_7    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_8    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
> arg_test_9    SPECIAL VALUE OF CLASS logical AND TYPE logical   OK   FALSE
>            expected.error message
> arg_test_1          FALSE        
> arg_test_2          FALSE        
> arg_test_3           TRUE        
> arg_test_4          FALSE        
> arg_test_5          FALSE        
> arg_test_6           TRUE        
> arg_test_7           TRUE        
> arg_test_8           TRUE        
> arg_test_9           TRUE        
> 
> $sys.info
> R version 4.3.3 (2024-02-29)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Ubuntu 22.04.4 LTS
> 
> Matrix products: default
> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0
> 
> locale:
>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
> 
> time zone: UTC
> tzcode source: system (glibc)
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base     
> 
> other attached packages:
> [1] saferDev_1.0
> 
> loaded via a namespace (and not attached):
>  [1] askpass_1.2.0     bslib_0.7.0       cachem_1.0.8      cli_3.6.2        
>  [5] colorspace_2.1-0  compiler_4.3.3    desc_1.4.3        digest_0.6.35    
>  [9] evaluate_0.23     fansi_1.0.6       fastmap_1.1.1     fs_1.6.3         
> [13] generics_0.1.3    ggplot2_3.5.0     glue_1.7.0        grid_4.3.3       
> [17] gtable_0.3.5      htmltools_0.5.8.1 htmlwidgets_1.6.4 jquerylib_0.1.4  
> [21] jsonlite_1.8.8    knitr_1.46        lifecycle_1.0.4   lubridate_1.9.3  
> [25] magrittr_2.0.3    memoise_2.0.1     munsell_0.5.1     parallel_4.3.3   
> [29] pillar_1.9.0      pkgconfig_2.0.3   pkgdown_2.0.9     purrr_1.0.2      
> [33] qpdf_1.3.3        R6_2.5.1          ragg_1.3.0        Rcpp_1.0.12      
> [37] rlang_1.1.3       rmarkdown_2.26    sass_0.4.9        scales_1.3.0     
> [41] systemfonts_1.0.6 textshaping_0.3.7 tibble_3.2.1      timechange_0.3.0 
> [45] tools_4.3.3       utf8_1.2.4        vctrs_0.6.5       xfun_0.43        
> [49] yaml_2.3.8