R Under development (unstable) (2024-02-17 r85935 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. > if(!require("stats")) stop("this test requires stats.") > if(!require("dse")) stop("this test requires dse.") Loading required package: dse Loading required package: tfplot Loading required package: tframe Attaching package: 'dse' The following objects are masked from 'package:stats': acf, simulate > if(!require("EvalEst")) stop("this test requires EvalEst.") Loading required package: EvalEst > if(!require("setRNG"))stop("this test requires setRNG.") Loading required package: setRNG > #x11() > outfile <- tempfile("lite.out", tmpdir = tempdir(), fileext = ".ps") > postscript(file=outfile, paper="letter", horizontal=FALSE, onefile=TRUE) > # width=6, height=8, pointsize=10, > Sys.info() sysname release version nodename machine "Windows" "Server x64" "build 20348" "CRANWIN3" "x86-64" login user effective_user "CRAN" "CRAN" "CRAN" > DSEversion() setRNG tframe dse EvalEst "2024.2-1" "2015.12-1.1" "2024.2-1" "2024.2-1" > random.number.test() Random number generator tests ...ok Warning messages: 1: In RNGkind(kind = kind, normal.kind = normal.kind) : RNGkind: Marsaglia-Multicarry has poor statistical properties 2: In RNGkind(kind = kind, normal.kind = normal.kind) : RNGkind: severe deviations from normality for Kinderman-Ramage + Marsaglia-Multicarry 3: In RNGkind(kind = kind, normal.kind = normal.kind) : RNGkind: Marsaglia-Multicarry has poor statistical properties 4: In RNGkind(kind = kind, normal.kind = normal.kind) : RNGkind: severe deviations from normality for Kinderman-Ramage + Marsaglia-Multicarry 5: In RNGkind(kind = kind, normal.kind = normal.kind) : buggy version of Kinderman-Ramage generator used 6: In RNGkind(kind = kind, normal.kind = normal.kind) : RNGkind: Marsaglia-Multicarry has poor statistical properties > > > verbose <- TRUE > synopsis <- TRUE > fuzz.small <- 1e-14 > fuzz.large <- 1e-8 > graphics <- FALSE > max.error <- NA > > data("eg1.DSE.data.diff", package="dse") > # The seed is not important for most of these tests, but AIC eliminates all > # parameters occassionally in some model selection tests. > test.rng <- list(kind="Wichmann-Hill", normal.kind="Box-Muller", seed=c(979,1479,1542)) > # setRNG(test.rng) > > if (synopsis & !verbose) cat("All dse3 tests ...") > if (verbose) cat("dse3 test 0 ... ") dse3 test 0 ... > data <- eg1.DSE.data.diff > inputData(data) <- NULL > mod1 <- TSmodel(estVARXls(data)) > mod2 <- TSmodel(estVARXar(data, re.add.means=FALSE, warn=FALSE)) > ok <- is.TSmodel(mod1) > all.ok <- ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 1 ... ") dse3 test 1 ... > z <- MonteCarloSimulations(mod1, replications=5, quiet=TRUE) > ok <- is.MonteCarloSimulations(z) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 2 ... ") dse3 test 2 ... > ok <- testEqual(z, MonteCarloSimulations(mod1, replications=5, + rng=getRNG(z), quiet=TRUE)) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 3 ... ") dse3 test 3 ... > z <- EstEval(mod1, replications=3, estimation="estVARXls", + estimation.args=NULL, criterion="TSmodel", quiet=TRUE) > ok <- is.EstEval(z) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 4 ... ") dse3 test 4 ... > zz <-summary(coef(z), verbose=FALSE) > ok <- TRUE # could be improved > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 5 ... ") dse3 test 5 ... > zz <- summary(roots(z), verbose=FALSE) > ok <- TRUE # could be improved > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 6 ... ") dse3 test 6 ... > zz <- coef(z) > ok <- is.EstEval(zz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 7 ... ") dse3 test 7 ... > zz <- roots(z) > ok <- is.EstEval(zz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > #print(library.dynam()) > if (verbose) cat("dse3 test 8a... ") dse3 test 8a... > z <- horizonForecasts(mod1, data, horizons=c(6,12), discard.before=20) > error <- max(abs( c(z$horizonForecasts[,100,]) - + c(0.0048425425521641824594, 0.0031489473295282835973, 0.0037730234730729999594, + 0.0024354234760485438289, 0.0040593859721713481878, 0.0031982930612152113414))) > ok <- fuzz.small > error > if (!ok) {if (is.na(max.error)) max.error <- error + else max.error <- max(error, max.error)} > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 8b... ") dse3 test 8b... > z <- horizonForecasts(l(toSS(mod1), data), + horizons=c(6,12), discard.before=20) > error <- max(abs( c(z$horizonForecasts[,100,]) - + c(0.0048425425521641824594, 0.0031489473295282844646, 0.0037730234730729995257, + 0.0024354234760485446963, 0.0040593859721713499225, 0.0031982930612152122088))) > ok <- fuzz.small > error > if (!ok) {if (is.na(max.error)) max.error <- error + else max.error <- max(error, max.error)} > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > > if (verbose) cat("dse3 test 9 ... ") dse3 test 9 ... > zzz<-l(mod1,simulate(mod1)) > zz<-forecastCov(zzz, discard.before=50, horizons=1:4) > ok <- is.forecastCov(zz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 10... ") dse3 test 10... > ok <- testEqual(zz, forecastCov(zzz$model, + data=zzz$data, discard.before=50, horizons=1:4)) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 11... ") dse3 test 11... > zz <-forecastCov(mod1,mod2, data=data, discard.before=30, + zero=TRUE, trend=TRUE) > > ok <- is.forecastCov(zz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 12... ") dse3 test 12... > zzz <-forecastCov(toSS(mod1),toSS(mod2), data=data, + discard.before=30, zero=TRUE, trend=TRUE) > > ok <- testEqual(zz,zzz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 13... ") dse3 test 13... > zz <-outOfSample.forecastCovEstimatorsWRTdata(data, + estimation.methods = list(estVARXar= list(max.lag=2, warn=FALSE), + estVARXls= list(max.lag=2))) > ok <- is.forecastCov(zz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 14... ") dse3 test 14... > zz <- forecastCovWRTtrue(list(mod1,mod2),mod1, + pred.replications=2, quiet=TRUE, trend=NULL, zero=TRUE) > # pred.replications=2, Spawn=FALSE, quiet=TRUE, trend=NULL, zero=TRUE) > ok <- is.forecastCov(zz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 15... ") dse3 test 15... > ok <- testEqual(zz, forecastCovWRTtrue(list(mod1,mod2),mod1, + # pred.replications=2, Spawn=if(exists(".SPAWN")) .SPAWN else FALSE, + pred.replications=2, + quiet=TRUE, trend=NULL, zero=TRUE, rng=getRNG(zz))) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 16... ") dse3 test 16... > zz <- forecastCovEstimatorsWRTtrue(mod1, + # Spawn=if(exists(".SPAWN")) .SPAWN else FALSE, quiet=TRUE, + quiet=TRUE, + estimation.methods=list(estVARXls=NULL, estVARXar=list(warn=FALSE)), + est.replications=2, pred.replications=2, rng=test.rng) > ok <- is.forecastCov(zz) > all.ok <- all.ok & ok > if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } ok > > if (verbose) cat("dse3 test 17... ") dse3 test 17... > # Next seems to cause a problem in Splus when .SPAWN is TRUE above although it may > # work with default rng (at least it used to) but test.rng is now set > # to give same results as in R. > # ok <- testEqual(zz, forecastCovEstimatorsWRTtrue(mod1, Spawn=FALSE, > ok <- testEqual(zz, forecastCovEstimatorsWRTtrue(mod1, + estimation.methods=list(estVARXls=NULL,estVARXar=list(warn=FALSE)), + est.replications=2, pred.replications=2, rng=getRNG(zz))) > all.ok <- all.ok & ok > if (verbose) if (ok) cat("ok\n") else cat("failed!\n") ok > > if (graphics) + {ok <- dse3.graphics.tests(verbose=verbose, pause=FALSE) + all.ok <- all.ok & ok + if (verbose) cat("dse3 test 18 (graphics) ... ") + if (verbose) {if (ok) cat("ok\n") else cat("failed!\n") } + } > > if (synopsis) + {if (verbose) cat("All dse3 tests completed") + if (all.ok) cat(" OK\n") + else cat(" some FAILED! max.error = ", max.error,"\n") + } All dse3 tests completed OK > > if (all.ok) invisible(TRUE) else stop("FAILED") > > > > # dse3.graphics.tests > > verbose <- TRUE > synopsis <- TRUE > > data("eg1.DSE.data.diff", package="dse") > > if (synopsis & !verbose) cat("dse3 graphics tests ...") > if (verbose) cat(" dse3 graphics test 1 ...") dse3 graphics test 1 ...> # If no device is active then write to postscript file > if ( dev.cur() == 1 ) + {postscript(file="zot.postscript.test.ps", + width=6,height=6,pointsize=10, + onefile=FALSE, print.it=FALSE, append=FALSE) + on.exit((function() + {dev.off(); synchronize(1); rm("zot.postscript.test.ps")})()) + } > > # The seed is not important for most of these tests, but AIC eliminates all > # parameters occassionally in some model selection tests. > test.rng <- list(kind="Wichmann-Hill", normal.kind="Box-Muller", seed=c(979,1479,1542)) > > data <- eg1.DSE.data.diff > inputData(data) <- NULL > outputData(data) <- outputData(data, series=1) # [,1,drop=FALSE] > mod1 <- TSmodel(estVARXls(data,max.lag=3)) > mod2 <- TSmodel(estVARXar(data,max.lag=3, aic=FALSE, warn=FALSE)) > > z <- EstEval(mod1, replications=10, estimation="estVARXls", + estimation.args=list(max.lag=3), criterion="TSmodel", quiet=TRUE) > distribution(coef(z)) > if (verbose) cat("ok\n") ok > > if (verbose) cat(" dse3 graphics test 2 ...") dse3 graphics test 2 ...> distribution(roots(z)) > if (verbose) cat("ok\n") ok > > if (verbose) cat(" dse3 graphics test 3 ...") dse3 graphics test 3 ...> z <- horizonForecasts(mod1, data, horizons=c(6,12), discard.before=20) > tfplot(z, start=c(1985,1)) > if (verbose) cat("ok\n") ok > > if (verbose) cat(" dse3 graphics test 4 ...") dse3 graphics test 4 ...> zz <-forecastCov(mod1,mod2, data=data, + discard.before=10, zero=TRUE, trend=TRUE) > tfplot(zz) > if (verbose) cat("ok\n") ok > > if (verbose) cat(" dse3 graphics test 5 ...") dse3 graphics test 5 ...> tfplot(zz, select.cov=c(1), select.trend=FALSE) > if (verbose) cat("ok\n") ok > > if (verbose) cat(" dse3 graphics test 6 ...") dse3 graphics test 6 ...> > data <- eg1.DSE.data.diff > inputData(data) <- NULL > # next causes Error ... all lags eliminated by AIC order selection. > # outputData(data) <- outputData(data, series=1) # [,1,drop=FALSE] > zz <-outOfSample.forecastCovEstimatorsWRTdata(data, + estimation.methods = list(estVARXar=list(max.lag=2,warn=FALSE), + estVARXls=list(max.lag=2))) > tfplot(zz, series=c(1)) > if (verbose) cat("ok\n") ok > > if (verbose) cat(" dse3 graphics test 7 ...") dse3 graphics test 7 ...> zz <- forecastCovWRTtrue(list(mod1,mod2),mod1, rng=test.rng, + pred.replications=2, + # Spawn=if(exists(".SPAWN")) .SPAWN else FALSE, + trend=NULL, zero=TRUE, quiet=TRUE) > tfplot(zz, select.cov=c(1)) > if (verbose) cat("ok\n") ok > > if (verbose) cat(" dse3 graphics test 8 ...") dse3 graphics test 8 ...> zz <- forecastCovEstimatorsWRTtrue(mod1, + # Spawn=if(exists(".SPAWN")) .SPAWN else FALSE, + rng=test.rng, + estimation.methods=list(estVARXls=NULL,estVARXls=list(max.lag=2)), + # estimation.methods=list(estVARXls=NULL,estVARXar=NULL), + est.replications=2, pred.replications=2, quiet=TRUE) > tfplot(zz, select.cov=c(1)) > if (verbose) cat("ok\n") ok > > if (synopsis) + {if (verbose) cat("All dse3 graphics tests completed\n") + else cat("completed\n") + } All dse3 graphics tests completed > > unlink(outfile) > > proc.time() user system elapsed 0.73 0.10 0.78