R Under development (unstable) (2024-09-03 r87093 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. 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. > ## unit tests will not be done if RUnit is not available > if(require("RUnit", quietly=TRUE)) { + + ## --- Setup --- + R_CMD_CHECK <- Sys.getenv("RCMDCHECK") != "FALSE" + + pkg <- "microbenchmark" # <-- Change to package name! + if (R_CMD_CHECK) { + ## Path to unit tests for R CMD check + ## PKG.Rcheck/tests/../PKG/unitTests + path <- system.file(package=pkg, "unitTests") + } else { + ## Path to unit tests for standalone running under Makefile (not R CMD check) + ## PKG/tests/../inst/unitTests + path <- file.path(getwd(), "..", "inst", "unitTests") + } + cat("\nRunning unit tests\n") + print(list(pkg=pkg, getwd=getwd(), pathToUnitTests=path)) + + library(package=pkg, character.only=TRUE) + + ## If desired, load the name space to allow testing of private functions + ## if (is.element(pkg, loadedNamespaces())) + ## attach(loadNamespace(pkg), name=paste("namespace", pkg, sep=":"), pos=3) + ## + ## or simply call PKG:::myPrivateFunction() in tests + + ## --- Testing --- + + ## Define tests + testSuite <- defineTestSuite(name=paste(pkg, "unit testing"), + dirs=path) + ## Run + tests <- runTestSuite(testSuite) + + ## Report to stdout + cat("------------------- UNIT TEST SUMMARY ---------------------\n\n") + printTextProtocol(tests, showDetails=FALSE) + + ## Report text files (only if not under R CMD check) + if (!R_CMD_CHECK) { + ## Default report name + pathReport <- file.path(path, "report") + + printTextProtocol(tests, showDetails=FALSE, + fileName=paste(pathReport, "Summary.txt", sep="")) + printTextProtocol(tests, showDetails=TRUE, + fileName=paste(pathReport, ".txt", sep="")) + + ## Report to HTML file + printHTMLProtocol(tests, fileName=paste(pathReport, ".html", sep="")) + } + + ## Return stop() to cause R CMD check stop in case of + ## - failures i.e. FALSE to unit tests or + ## - errors i.e. R errors + tmp <- getErrors(tests) + if(tmp$nFail > 0 | tmp$nErr > 0) { + stop(paste("\n\nunit testing failed (#test failures: ", tmp$nFail, + ", #R errors: ", tmp$nErr, ")\n\n", sep="")) + } + } else { + warning("cannot run unit tests -- package RUnit is not available") + } Running unit tests $pkg [1] "microbenchmark" $getwd [1] "d:/RCompile/CRANincoming/R-devel/microbenchmark.Rcheck/tests" $pathToUnitTests [1] "D:/temp/Rtmpgdw64H/RLIBS_147e8279953aa/microbenchmark/unitTests" Executing test function test.expression_eval_parent_frame ... done successfully. Executing test function test.get_nanotime ... done successfully. Executing test function test.microtiming_precision ... done successfully. Executing test function test.print_returns_input ... Unit: nanoseconds expr min lq mean median uq max neval cld 5 + 6 0 0 100 100 200 200 2 a 6 + 7 100 100 2250 2250 4400 4400 2 a done successfully. Executing test function test.setup_expression ... done successfully. Executing test function test.setup_expression_check ... done successfully. Executing test function test.setup_expression_check_equal ... done successfully. Executing test function test.setup_expression_check_equal_failure ... done successfully. Executing test function test.setup_expression_check_equivalent ... done successfully. Executing test function test.setup_expression_check_identical ... done successfully. Executing test function test.setup_expression_check_identical_failure ... done successfully. Executing test function test.setup_expression_eval_env ... done successfully. Executing test function test.setup_expression_eval_env_check ... done successfully. Executing test function test.simple_timing ... done successfully. Executing test function test.unit_arg_valid_values ... done successfully. Executing test function test.unit_f_is_valid ... done successfully. Executing test function test.unit_is_int_errors ... done successfully. Executing test function test.unit_is_null_does_not_error ... Unit: nanoseconds expr min lq mean median uq max neval NULL 0 0 0 0 0 0 100 done successfully. Executing test function test.unit_is_object_errors ... done successfully. ------------------- UNIT TEST SUMMARY --------------------- RUNIT TEST PROTOCOL -- Wed Sep 4 19:54:08 2024 *********************************************** Number of test functions: 19 Number of errors: 0 Number of failures: 0 1 Test Suite : microbenchmark unit testing - 19 test functions, 0 errors, 0 failures Warning messages: 1: In RNGkind(kind = testSuite$rngKind, normal.kind = testSuite$rngNormalKind) : RNGkind: Marsaglia-Multicarry has poor statistical properties 2: In RNGkind(kind = testSuite$rngKind, normal.kind = testSuite$rngNormalKind) : RNGkind: severe deviations from normality for Kinderman-Ramage + Marsaglia-Multicarry 3: In microbenchmark(rnorm(10), x, check = my_check, setup = set.seed(21)) : Could not measure a positive execution time for 4 evaluations. 4: In microbenchmark(rnorm(1e+05), x, check = "equal", setup = set.seed(21)) : Could not measure a positive execution time for one evaluation. 5: In microbenchmark(rnorm(1e+05), x, check = "equivalent", setup = set.seed(21)) : Could not measure a positive execution time for 8 evaluations. 6: In microbenchmark(rnorm(1e+05), x, check = "identical", setup = set.seed(21)) : Could not measure a positive execution time for 2 evaluations. 7: In microbenchmark(y <- rnorm(n), x, setup = { : Could not measure a positive execution time for 2 evaluations. 8: In microbenchmark(NULL, unit = "f") : Could not measure a positive execution time for 49 evaluations. 9: In microbenchmark(NULL, unit = NULL) : Could not measure a positive execution time for 47 evaluations. > > proc.time() user system elapsed 4.87 0.28 5.14