R version 4.5.0 RC (2025-04-04 r88113 ucrt) -- "How About a Twenty-Six" Copyright (C) 2025 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. > ############################################################################# > ## ## > ## Tests for special distributions ## > ## ## > ############################################################################# > > ## --- Load test routines and test parameters ------------------------------- > > source("test_routines.R") > > ## --- Auxiliary routines --------------------------------------------------- > > ## use u-error of method PINV for continuous distributions > cont.max.uerror.of <- function (distr, args) { + uddist <- paste("ud",distr,"(",args,")", sep="") + aqfunct <- eval(parse(text=paste("function(u) {uq(pinvd.new(",uddist,",uresolution=1e-12),u)}", sep=""))) + pfunct <- eval(parse(text=paste("function(x) {p",distr,"(x,",args,")}", sep=""))) + uerr <- unur.cont.uerror(samplesize,aqfunct,pfunct) + if (uerr > 1.e-11) ## we do not want to be to stringent here + stop(paste("max u-error exceeded for '",uddist,"': ",uerr,"\n",sep="")) + } > > ## use x-error of method DGT for discrete distributions > discr.max.xerror.of <- function (distr, args) { + uddist <- paste("ud",distr,"(",args,",ub=10000)", sep="") + aqfunct <- eval(parse(text=paste("function(u) {uq(dgtd.new(",uddist,"),u)}", sep=""))) + qfunct <- eval(parse(text=paste("function(x) {q",distr,"(x,",args,")}", sep=""))) + xerr <- unur.xerror(samplesize,aqfunct,qfunct) + if (xerr > 1.e-10) ## we do not want to be to stringent here + stop(paste("max x-error exceeded for '",uddist,"': ",xerr,"\n",sep="")) + } > > ## just run when neither CDF or quantile function is available > cont.just.run <- function (distr, args) { + uddist <- paste("ud",distr,"(",args,")", sep="") + qfunct <- eval(parse(text=paste("function(u) { uq(pinvd.new(",uddist,",uresolution=1e-12),u) }", sep=""))) + x <- qfunct(runif(samplesize)) + if (! is.finite(sum(x))) + stop(paste("inverse CDF for '",uddist,"': 'Inf' or 'NaN' occured\n",sep="")) + } > > discr.just.run <- function (distr, args) { + uddist <- paste("ud",distr,"(",args,",ub=10000)", sep="") + qfunct <- eval(parse(text=paste("function(u) { uq(dgtd.new(",uddist,"),u) }", sep=""))) + x <- qfunct(runif(samplesize)) + if (! is.finite(sum(x))) + stop(paste("inverse CDF for '",uddist,"': 'Inf' or 'NaN' occured\n",sep="")) + } > > > ############################################################################# > ## ## > ## Test implementations of the ud functions. ## > ## The argments must coincide with the corresponding ## > ## d|p|q|r R functions. ## > ## ## > ############################################################################# > > ## -- Continuous distributions ---------------------------------------------- > > cont.max.uerror.of("beta","shape1=3,shape2=7") > cont.max.uerror.of("cauchy","location=1,scale=2") > cont.just.run ("chi","df=5") > cont.max.uerror.of("chisq","df=5") > cont.max.uerror.of("exp","rate=3") > cont.max.uerror.of("f","df1=5,df2=7") > cont.just.run ("frechet","shape=3,location=2,scale=5") > cont.just.run ("ghyp","lambda=1.5,alpha=3,beta=2,delta=1,mu=0") > cont.just.run ("gig","theta=3,psi=1,chi=1") > cont.just.run ("giga","theta=3,omega=2") > cont.just.run ("giga","theta=3,omega=2,eta=2") > cont.just.run ("gumbel","location=2,scale=5") > cont.just.run ("hyperbolic","alpha=3,beta=2,delta=1,mu=0") > cont.just.run ("ig","mu=3,lambda=2") > cont.just.run ("laplace","location=2,scale=5") > cont.max.uerror.of("logis","location=2,scale=5") > cont.just.run ("lomax","shape=2,scale=5") > cont.max.uerror.of("lnorm","mean=1,sd=2") > cont.just.run ("meixner","alpha=0.03,beta=0.13,delta=0.57,mu=-0.001") > cont.max.uerror.of("norm","mean=1,sd=2") > cont.just.run ("pareto","k=3,a=1") > ## just.run ("planck","a=3") -- not implemented > cont.just.run ("powerexp","shape=3") > cont.just.run ("rayleigh","scale=3") > cont.just.run ("slash","") > cont.max.uerror.of("t","df=2.5") > ## max.uerror.of("triang","df=2.5") -- not implemented > cont.just.run ("vg","lambda=2.25,alpha=210.,mu=0.001,beta=-5.1") > cont.just.run ("vg","lambda=200.,alpha=210.,mu=0.001,beta=-5.1") > cont.max.uerror.of("weibull","shape=3,scale=2") > > ## -- Discrete distributions ---------------------------------------------- > > discr.max.xerror.of("binom","size=1000,prob=0.3456789") > discr.max.xerror.of("geom","prob=0.3456789") > discr.max.xerror.of("hyper","m=15,n=5,k=7") > discr.just.run("logarithmic","shape=0.3") > discr.max.xerror.of("nbinom","size=100,prob=0.3456789") > discr.max.xerror.of("pois","lambda=2.34567") > > ## --- End ------------------------------------------------------------------ > > proc.time() user system elapsed 1.62 0.20 1.81