test_that("gaussian quadrature", { temp <- GHquad(100) expect_equal(length(temp$Z), 100) expect_equal(length(temp$w), 100) expect_equal(as.numeric(crossprod(temp$w, temp$Z)), 0) ##expectation of a log normal expect_equal(as.numeric(crossprod(temp$w, exp(temp$Z))), exp(0.5)) }) test_that("loss distribution", { p <- runif(100) S <- runif(100) w <- runif(100) w <- w/sum(w) N <- 101 expect_equal(lossdistC(p, w, S, N), lossdistrib2(p, w, S, N)) expect_equal(lossdistC(p, w, S, N, TRUE), lossdistrib2(p, w, S, N, TRUE)) expect_equal(length(lossdistC(p, w, S, N)), N) }) ## S <- matrix(runif(1000*500), 1000, 500) ## rho <- rep(0.45, 1000) ## temp <- GHquad(500) ## Z <- temp$Z ## w <- temp$w ## test <- lossdistCZ(p, issuer.weights, S, 301, FALSE, rho, Z) ## p <- matrix(runif(100*25), 100, 25) ## issuer.weights <- rep(1/100, 100) ## S <- runif(100) ## cat("I'm here") ## rho <- rep(0.45, 100) ## test <- BClossdistC(p, issuer.weights, 1-S, rho, temp$Z, temp$w) ## # the blas function should be roughly twice as fast ## cat("blas lossdist", run2["elapsed"], "\n")