library(GeneralizedHyperbolic) data(ghypParam) test.ghypMean <- function(testParam = ghypSmallShape, n = 10000, accuracy = 0.01) { for (i in 1:nrow(testParam)) { param <- testParam[i, ] # random number generation: x <- rghyp(n, param = param) # Compute mean of the sample data: sampleMean <- mean(x) # Get mean value from vgMean function: funMean <- ghypMean(param = param) # Precision within the accuracy value? difference <- abs(sampleMean - funMean) cat("param", sep = "\n") print(param) cat("sample mean", sep = "\n") print(sampleMean) cat("function mean", sep = "\n") print(funMean) cat("difference", sep = "\n") print(difference) cat("checkTrue", sep = "\n") print(checkTrue("test.ghypMean", difference < accuracy)) } } test.ghypVar <- function(testParam = ghypSmallShape, n = 10000, accuracy = 0.01) { for (i in 1:nrow(testParam)) { param <- testParam[i, ] # random number generation: x <- rghyp(n, param = param) # Compute variance of the sample data: sampleVar <- var(x) # Get mean value from vgVar function: funVar <- ghypVar(param = param) # Precision within the accuracy value? difference <- abs(sampleVar - funVar) cat("param", sep = "\n") print(param) cat("sample variance", sep = "\n") print(sampleVar) cat("function variance", sep = "\n") print(funVar) cat("difference", sep = "\n") print(difference) cat("checkTrue", sep = "\n") print(checkTrue("test.ghypVar", difference < accuracy)) } } test.ghypSkew <- function(testParam = ghypSmallShape, n = 10000, accuracy = 0.01) { for (i in 1:nrow(testParam)) { param <- testParam[i, ] # random number generation: x <- rghyp(n, param = param) # Compute skewness of the sample data: sampleSkew <- DistributionUtils::skewness(x) # Get skewness value from vgSkew function: funSkew <- ghypSkew(param = param) # Precision within the accuracy value? difference <- abs(sampleSkew - funSkew) cat("param", sep = "\n") print(param) cat("sample skewness", sep = "\n") print(sampleSkew) cat("function skewness", sep = "\n") print(funSkew) cat("difference", sep = "\n") print(difference) cat("checkTrue", sep = "\n") print(checkTrue("test.ghypSkew", difference < accuracy)) } } test.ghypKurt <- function(testParam = ghypSmallShape, n = 10000, accuracy = 0.01) { for (i in 1:nrow(testParam)) { param <- testParam[i, ] # random number generation: x <- rghyp(n, param = param) # Compute kurtosis of the sample data: sampleKurt <- DistributionUtils::kurtosis(x) # Get kurtosis value from vgKurt function: funKurt <- ghypKurt(param = param) # Precision within the accuracy value? difference <- abs(sampleKurt - funKurt) cat("param", sep = "\n") print(param) cat("sample kurtosis", sep = "\n") print(sampleKurt) cat("function kurtosis", sep = "\n") print(funKurt) cat("difference", sep = "\n") print(difference) cat("checkTrue", sep = "\n") print(checkTrue("test.ghypKurt", difference < accuracy)) } } checkTrue <- function(f, bool) { if (bool) { paste(f, ": PASS", sep = "") } else { paste(f, ": FAIL", sep = "") } } test.ghypMean() test.ghypVar() test.ghypSkew() test.ghypKurt()