test_that("calc_icat returns a single numeric", { data(toy_ldata, package = "tlsR") ldata <- detect_TLS("ToySample", k = 30, ldata = toy_ldata) val <- calc_icat("ToySample", tlsID = 1, ldata = ldata) expect_length(val, 1) expect_true(is.numeric(val)) }) test_that("calc_icat returns NA when TLS has too few cells", { data(toy_ldata, package = "tlsR") ldata <- detect_TLS("ToySample", k = 30, ldata = toy_ldata) # Inject a fake TLS ID with only 2 cells ldata[["ToySample"]]$tls_id_knn[1:2] <- 999L expect_message( val <- calc_icat("ToySample", tlsID = 999, ldata = ldata), "fewer than" ) expect_true(is.na(val)) }) test_that("calc_icat errors on missing tls_id_knn column", { data(toy_ldata, package = "tlsR") expect_error( calc_icat("ToySample", tlsID = 1, ldata = toy_ldata), "missing required column" ) }) test_that("calc_icat errors on unknown sample", { data(toy_ldata, package = "tlsR") ldata <- detect_TLS("ToySample", k = 30, ldata = toy_ldata) expect_error( calc_icat("Ghost", tlsID = 1, ldata = ldata), "not found" ) })