##### SMD ----------------- test_that("smd alone wth / wthout n_cases", { dfwoN<- subset(df.SMD, select=-c(n_cases, n_controls, sd_cases,sd_controls, ci_lo, ci_up, se, mean_cases,mean_controls)) expect_error(umbrella(dfwoN, verbose=FALSE, seed = 4321)) }) test_that("means alone wth / wthout n_cases", { dfwoN<- subset(df.SMD, select=-c(n_cases, n_controls, value, ci_lo, ci_up, se)) expect_error(umbrella(dfwoN, verbose=FALSE, seed = 4321)) }) test_that("smd se wth / wthout n_cases", { dfwoN<- subset(df.SMD, select=-c(n_cases, n_controls, ci_lo,ci_up, mean_cases,mean_controls)) umb1 <- umbrella(df.SMD, verbose=FALSE, seed = 4321) umb2 <- umbrella(dfwoN, verbose=FALSE, seed = 4321) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-3) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-3) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-2) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-3) expect_true(abs(umb1[[1]]$n$cases - umb2[[1]]$n$cases) < 200) }) test_that("smd se wth only n_cases", { dfwocases<- subset(df.SMD, factor=="Pharmacological", select=-c(n_controls, ci_lo,ci_up, mean_cases,mean_controls)) umb1 <- umbrella(df.SMD, verbose=FALSE, seed = 4321) umb2 <- umbrella(dfwocases, verbose=FALSE, seed = 4321) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-3) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-3) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-2) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-3) expect_true(umb2[[1]]$n$cases == sum(dfwocases$n_cases)) expect_true(umb1[[1]]$n$cases == sum(dfwocases$n_cases)) }) test_that("smd CI wth / wthout n_cases", { dfwoN<- subset(df.SMD, select=-c(n_cases, n_controls, se, mean_cases,mean_controls)) umb1 <- umbrella(df.SMD, verbose=FALSE, seed = 4321) umb2 <- umbrella(dfwoN, verbose=FALSE, seed = 4321) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 2e-3) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-3) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-2) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 2e-3) expect_true(abs(umb1[[1]]$n$cases - umb2[[1]]$n$cases) < 200) }) ##### MD ----------------- test_that("md CI wth / wthout n_cases", { dfMDwoN<- subset(df.MD, select=-c(n_cases, n_controls, mean_cases, mean_controls)) # x = dfMDwoN umb1 <- umbrella(df.MD, verbose=FALSE, seed = 4321) expect_error(umbrella(dfMDwoN, verbose=FALSE, seed = 4321)) }) test_that("md means wth / wthout n_cases", { dfwoN<- subset(df.MC, select=-c(n_cases, n_controls, se)) expect_error(umbrella(dfwoN, verbose=FALSE, seed = 4321)) }) ### SMC ---------------------------------------------------------------- test_that("smc wth / wthout n_cases", { dfwoN<- subset(df.SMC, select=-c(n_cases, n_controls)) umb1 <- umbrella(df.SMC, verbose=FALSE, seed = 4321) umb2 <- umbrella(dfwoN, verbose=FALSE, seed = 4321) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 5e-2) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 5e-3) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-2) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-2) expect_true(is.na(umb2[[1]]$n$cases)) }) ##### R ----------------- test_that("R wth / wthout n_sample", { dfwoN<- subset(df.R, select=-c(n_sample)) es_r = metaConvert::es_from_pearson_r( pearson_r = df.R$value, n_sample = df.R$n_sample ) dfwoN$ci_lo = es_r$r_ci_lo dfwoN$ci_up = es_r$r_ci_up umb1 <- umbrella(df.R, verbose=FALSE, seed = 4321) umb2 <- umbrella(dfwoN, verbose=FALSE, seed = 4321) # view.errors.umbrella(dfwoN, "message") expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-2) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 5e-3) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-2) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-2) expect_true(abs(umb1[[1]]$n$total_n - umb2[[1]]$n$total_n) < 100) }) test_that("Z wth / wthout n_sample", { df.Z = df.R df.Z$measure = "Z" dfwoN<- subset(df.Z, select=-c(n_sample)) es_z = metaConvert::es_from_fisher_z( fisher_z = df.Z$value, n_sample = df.Z$n_sample ) dfwoN$ci_lo = es_z$z_ci_lo dfwoN$ci_up = es_z$z_ci_up umb1 <- umbrella(df.Z, verbose=FALSE, seed = 4321) umb2 <- umbrella(dfwoN, verbose=FALSE, seed = 4321) # view.errors.umbrella(dfwoN, "message") expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-10) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-10) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-10) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-10) expect_true(abs(umb1[[1]]$n$total_n - umb2[[1]]$n$total_n) < 100) }) ##### OR ----------------- test_that("OR wth / wthout n", { skip_on_cran() dforwoN <- subset(df.OR, select = -c(n_exp, n_nexp, n_cases, n_controls, n_cases_exp, n_cases_nexp, n_controls_exp, n_controls_nexp)) umb1 <- umbrella(dforwoN, seed = 4321, verbose = FALSE) umb2 <- umbrella(df.OR, seed = 4321, verbose = FALSE) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-10) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-10) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-10) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-10) }) ##### RR ----------------- test_that("RR wth wthout N", { skip_on_cran() dfrr1 <- subset(df.RR, select = -c(n_exp, n_nexp, n_cases_exp, n_cases_nexp)) umb1 <- umbrella(dfrr1, seed = 4321, verbose = FALSE) umb2 <- umbrella(df.RR, seed = 4321, verbose = FALSE) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-10) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-10) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-10) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-10) }) ##### HR ----------------- test_that("HR wth wthout N", { skip_on_cran() dfhr1 <- subset(df.HR, select = -c(n_cases,n_controls)) umb1 <- umbrella(dfhr1, seed = 4321, verbose = FALSE) umb2 <- umbrella(df.HR, seed = 4321, verbose = FALSE) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-10) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-10) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-10) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-10) }) ##### IRR ----------------- test_that("IRR wth wthout N", { skip_on_cran() dfirr1 <- subset(df.IRR, select = -c(n_cases_exp, n_cases_nexp, time_exp, time_nexp)) umb1 <- umbrella(dfirr1, seed = 4321) umb2 <- umbrella(df.IRR, seed = 4321) expect_equal(umb1[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], umb2[[1]]$ma_results[, c("value", "p.value", "ci_lo", "ci_up", "pi_lo", "pi_up")], tolerance = 1e-10) expect_equal(umb1[[1]]$heterogeneity$i2, umb2[[1]]$heterogeneity$i2, tolerance = 1e-10) expect_equal(umb1[[1]]$esb$p.value, umb2[[1]]$esb$p.value, tolerance = 1e-10) expect_equal(umb1[[1]]$egger$p.value, umb2[[1]]$egger$p.value, tolerance = 1e-10) })