tests/testthat/test-calc_np.R

skip("relies on system file")
load(system.file("test_data/toy_graph.Rda", package = "crosstalkr"))

#np_all
seeds <- c("OLR1", "APP", "VAV2", "ITGAV", "JAG1", "APOH")
toy_exp <- c(4.9, 9.9, 1.0, 0.2, 7.5, 8.4)
names(toy_exp) <- seeds

expected_np <- c(15.7, -4.8, Inf, -0.94, -2.23, -1.38)
names(expected_np) <- seeds

g <- igraph::induced_subgraph(g, seeds)

testnp <- calc_np_all(g = g, exp = toy_exp)
testnp <- testnp[names(expected_np)]

test_that("calc_np_all returns expected output", {
 expect_lte(length(calc_np_all(toy_exp, g)), length(toy_exp))
 expect_true(is.numeric(calc_np_all(toy_exp,g)))
 expect_equal(testnp, expected_np, tolerance = 0.1)
})


g_new <- igraph::delete.vertices(g, "JAG1")
seeds_new <- seeds[seeds != "JAG1"]
expected_np_new <- c(15.67, 1.39, Inf, -0.86, -1.38)
names(expected_np_new) <- seeds_new
testnp <- calc_np_all(g = g_new, exp = toy_exp)
testnp <- testnp[names(expected_np_new)]

test_that("calc_np_all works with different length arguments", {
expect_equal(testnp, expected_np_new, tolerance = 0.1)
})

expected_np <- c(15.67, -4.81, Inf,0,0,0)
names(expected_np) <- seeds
testnp <- calc_np_all(g = g, exp = toy_exp, v = c("OLR1", "APP", "VAV2"))
testnp <- testnp[names(expected_np)]
test_that("calc_np_all can process subsets of a graph", {
  expect_equal(testnp,
               expected = expected_np, tolerance = 0.1)
})

test_that("calc_np returns expected output", {
  expect_equal(calc_np(c_i= 10, c_j = 20), -6.931472, tolerance = 0.0001)
  expect_gte(calc_np(c_i = 10, c_j = 5), 0)
  expect_lte(calc_np(c_i = 10, c_j = 11), 0)
  expect_true(is.infinite(calc_np(c_i = 1, c_j = 0)))
})
DavisWeaver/crosstalkr documentation built on May 6, 2024, 6:09 p.m.