dwww Home | Show directory contents | Find package

library(pROC)
data(aSAH)

context("ci.thresholds")

# Only test whether ci.thresholds runs and returns without error.
# Uses a very small number of iterations for speed
# Doesn't test whether the results are correct.

# Silence progress bars
options(pROCProgress = list(name = "none"))


for (stratified in c(TRUE, FALSE)) {
        test_that("ci.threshold accepts thresholds=best", {
                n <- round(runif(1, 3, 9)) # keep boot.n small
                obtained <- ci.thresholds(r.wfns, thresholds="best", boot.n = n, 
                                                                  boot.stratified = stratified, conf.level = .91)
                expect_is(obtained, "ci.thresholds")
                expect_is(obtained, "ci")
                expect_equal(names(obtained), c("specificity", "sensitivity"))
                expect_equal(dim(obtained$specificity), c(1, 3))
                expect_equal(dim(obtained$sensitivity), c(1, 3))
                expect_equal(attr(obtained, "conf.level"), .91)
                expect_equal(attr(obtained, "boot.n"), n)
                expect_equal(colnames(obtained$specificity), c("4.5%", "50%", "95.5%"))
                expect_equal(colnames(obtained$sensitivity), c("4.5%", "50%", "95.5%"))
                expect_equal(attr(obtained, "boot.stratified"), stratified)
        })
        
        test_that("ci.threshold accepts thresholds=best", {
                n <- round(runif(1, 3, 9)) # keep boot.n small
                obtained <- ci.thresholds(r.ndka, thresholds = "local maximas", boot.n = n, 
                                                                  boot.stratified = stratified, conf.level = .91)
                expected.thresholds <- coords(r.ndka, x = "l", ret = "t", transpose = FALSE)$threshold
                expect_is(obtained, "ci.thresholds")
                expect_is(obtained, "ci")
                expect_equal(names(obtained), c("specificity", "sensitivity"))
                expect_equal(dim(obtained$specificity), c(length(expected.thresholds), 3))
                expect_equal(dim(obtained$sensitivity), c(length(expected.thresholds), 3))
                expect_equal(attr(obtained, "conf.level"), .91)
                expect_equal(attr(obtained, "boot.n"), n)
                expect_equal(colnames(obtained$specificity), c("4.5%", "50%", "95.5%"))
                expect_equal(colnames(obtained$sensitivity), c("4.5%", "50%", "95.5%"))
                expect_equal(attr(obtained, "boot.stratified"), stratified)
        })
        
        test_that("ci.threshold accepts numeric thresholds", {
                n <- round(runif(1, 3, 9)) # keep boot.n small
                obtained <- ci.thresholds(r.ndka, thresholds = c(0.5, 0.2), boot.n = n, 
                                                                  boot.stratified = stratified, conf.level = .91)
                expected.thresholds <- coords(r.ndka, x = "l", ret = "t", transpose = FALSE)$threshold
                expect_is(obtained, "ci.thresholds")
                expect_is(obtained, "ci")
                expect_equal(names(obtained), c("specificity", "sensitivity"))
                expect_equal(dim(obtained$specificity), c(2, 3))
                expect_equal(dim(obtained$sensitivity), c(2, 3))
                expect_equal(attr(obtained, "conf.level"), .91)
                expect_equal(attr(obtained, "boot.n"), n)
                expect_equal(colnames(obtained$specificity), c("4.5%", "50%", "95.5%"))
                expect_equal(colnames(obtained$sensitivity), c("4.5%", "50%", "95.5%"))
                expect_equal(attr(obtained, "boot.stratified"), stratified)
        })
}

Generated by dwww version 1.15 on Tue Jul 2 08:44:11 CEST 2024.