summaryrefslogtreecommitdiffstats
path: root/tests/testthat/test_lossdistrib.R
blob: 6550852b6eaeba68a346d6465b4f82b11e03e477 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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")