## Copyright (C) 2018 Marius Hofert, Ivan Kojadinovic, Martin Maechler, and Jun Yan ## ## This program is free software; you can redistribute it and/or modify it under ## the terms of the GNU General Public License as published by the Free Software ## Foundation; either version 3 of the License, or (at your option) any later ## version. ## ## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS ## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more ## details. ## ## You should have received a copy of the GNU General Public License along with ## this program; if not, see . ### Miscellaneous regression tests for 'copula' package ### ------------------------------ ====== require(copula) source(system.file("Rsource", "utils.R", package="copula", mustWork=TRUE)) ##-> assertError(), assert.EQ(), ... showProc.time() if(!dev.interactive(orNone=TRUE)) pdf("misc-tests_copula.pdf") ## Testing chiPlot() and Kplot() --> ../R/graphics.R ## ------- ----- ~~~~~~~~~~~~~~~ X <- cbind(c(-2.224, -1.538, -0.807, 0.024, 0.052, 1.324), c(0.431, 1.035, 0.586, 1.465, 1.115, -0.847)) ## For now, ":::" because they are not exported yet: chiP <- copula:::chiPlot(X, main = quote(list(chiPlot(X), X %in% R^{6 %*% 2}))) Kplt <- copula:::Kplot (X, main = "Kplot(X)") ## stopifnot(all.equal(Kplt[,"H"], c(0, 0, 2, 2, 6, 6)/10), all.equal(Kplt[,"W"], tolerance = 5e-6, c(0.0383659, 0.0924076, 0.163329, 0.255939, 0.381122, 0.568837)), all.equal(chiP, tolerance = 2e-6, cbind(H= c(0, 0.2, 0.2, 0.6, 0.6, 0), F= c(0, 0.2, 0.4, 0.6, 0.8, 1), G= c(0.2, 0.6, 0.4, 1, 0.8, 0), chi=c(NaN, 0.408248, 1/6, NaN, -0.25, NaN), lambda=c(1, -0.36, 0.04, 1, 0.36, -1))), TRUE) ## Testing A() -- failed after svn c1770, copula book, ch.3: kg <- khoudrajiCopula(copula2 = gumbelCopula(4), shapes = c(0.2, 0.95)) Akg <- A(kg, w = (0:8)/8) stopifnot(Akg[c(1,9)] == 1, all.equal(Akg, tolerance = 6e-6, c(1, 0.88987, 0.85893, 0.87634, 0.90023, 0.92504, 0.95, 0.975, 1)) ) ## has returned an "invalid" object in {copula} versions <= 1.1-3 : tools::assertError(verbose = TRUE, fgC <- fgmCopula(c(-1:1))) if(!copula:::doExtras()) q("no") ## Only for package maintainer etc -- not in standard tests : use <- baseenv()[[paste0("re", "quire")]] ## Failure in 'copuladaes' : if(use("copulaedas")) { ### From example CEDA-class: UMDA <- CEDA(copula = "indep", margin = "norm", popSize = 200, fEval = 0, fEvalTol = 1e-03) UMDA@name <- "Univariate Marginal Distribution Algorithm" resultsUMDA <- edaRun(UMDA, fSphere, rep(-600, 5), rep(600, 5)) ## Error in edaLearn(eda, gen, model, selectedPop, selectedEval, lower, upper) : ## no slot of name "parameters" for this object of class "indepCopula" }