Nothing
library(rpf)
library(testthat)
context("extremes")
test_that("param info", {
ans1 <- structure(list("slope", NA_real_, 1e-06,
"slope", NA_real_, 1e-06,
"intercept", NA_real_, NA_real_,
"bound", NA_real_, NA_real_,
"bound", NA_real_, NA_real_),
.Dim = c(3L, 5L), .Dimnames = list(c("type", "upper", "lower"), NULL))
expect_identical(rpf.paramInfo(rpf.drm(factors=2)), ans1)
ans2 <- structure(list("slope", NA_real_, 1e-06, "slope", NA_real_, 1e-06,
"intercept", NA_real_, NA_real_, "intercept", NA_real_, NA_real_),
.Dim = 3:4, .Dimnames = list( c("type", "upper", "lower"), NULL))
expect_identical(rpf.paramInfo(rpf.grm(outcomes=3, factors=2)), ans2)
ans3 <- structure(list("slope", NA_real_, 1e-06, "slope", NA_real_, 1e-06, "slope",
NA_real_, NA_real_, "slope", NA_real_, NA_real_, "slope", NA_real_,
NA_real_, "intercept", NA_real_, NA_real_, "intercept", NA_real_, NA_real_,
"intercept", NA_real_, NA_real_),
.Dim = c(3L, 8L), .Dimnames = list( c("type", "upper", "lower"), NULL))
expect_identical(rpf.paramInfo(rpf.nrm(outcomes=4, factors=2)), ans3)
})
spec <- list()
param <- list()
# repair the poor version of drm TODO
#spec [[length(spec) +1]] <- rpf.drm(poor=TRUE)
#param[[length(param)+1]] <- c(1, 0, 0)
spec [[length(spec) +1]] <- rpf.drm()
param[[length(param)+1]] <- c(1, 0, logit(.05), logit(.95))
spec [[length(spec) +1]] <- rpf.grm(3)
param[[length(param)+1]] <- c(1, 1, -1)
spec [[length(spec) +1]] <- rpf.nrm(3)
param[[length(param)+1]] <- c(1, .5, .6, 0, -.6)
# To debug, set breakpoint on Rf_error
where <- seq(-1000, 1000, 100)
for (ix in 1:length(spec)) {
ispec <- spec[[ix]]
iparam <- param[[ix]]
test_that(paste("extreme values in", class(ispec)), {
for (wh in where) {
v <- rpf.prob(ispec, iparam, wh)
expect_equal(sum(v), 1)
if (wh != 0) {
sep <- sort(-v)[1:2]
expect_true(abs(sep[1] - sep[2]) > .89,
info=paste(c(wh, sep), collapse=" "))
}
}
for (wh in where) {
v <- rpf.logprob(ispec, iparam, wh)
if (all(v > -35 & v < 35)) {
expect_equal(sum(exp(v)), 1)
}
}
w <- rchisq(ispec$outcomes, df=6)
for (wh in where) rpf.dLL(ispec, iparam, wh, w)
})
}
for (ix in 1:length(spec)) {
ispec <- spec[[ix]]
iparam <- param[[ix]]
test_that(paste("score=NA", class(ispec)), {
v <- rpf.prob(ispec, iparam, as.numeric(c(NA,NA)))
expect_true(all(is.na(v)))
v <- rpf.logprob(ispec, iparam, as.numeric(c(NA,NA)))
expect_true(all(is.na(v)))
})
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.