Nothing
test_that(".assert_column_exists works", {
foo <- data.frame(aaa = c(1:5),
bbb = c(1:5))
expect_no_error(.assert_column_exists("aaa", foo))
expect_error(.assert_column_exists("zzz", foo))
})
test_that(".assert_is_numeric works", {
df <- data.frame(
some_numbers = c(1:10),
some_strings = LETTERS[1:10],
some_factors <- as.factor(letters[1:10])
)
expect_no_error(.assert_is_numeric("some_numbers", df))
expect_error(.assert_is_numeric("some_strings", df))
expect_error(.assert_is_numeric("some_factors", df))
})
test_that(".assert_no_NA throws error when NA is present", {
df <- data.frame(good_col = c(10, 20, 30), bad_col = c(10, NA, 30))
expect_no_error(.assert_no_NA("good_col", df))
expect_error(.assert_no_NA("bad_col", df))
})
test_that(".assert_positive throws error when zeros or negatives are present", {
df <- data.frame(
good_col = c(10, 20, 30),
zero_col = c(0, 20, 30),
negative_col = c(-1, 20, 30)
)
expect_no_error(.assert_positive("good_col", df))
expect_error(.assert_positive("zero_col", df))
expect_error(.assert_positive("negative_col", df))
})
test_that(".get_columns works by passing column name as symbols", {
foo <- data.frame(aaa = c(1:5),
bbb = c(5:9))
cols <- list(one_to_five = substitute(aaa))
res <- .get_columns(cols, foo)
expect_equal(res$one_to_five, c(1:5))
})
test_that(".get_columns throws errors when columns are not numeric", {
foo <- data.frame(aaa = c(1:5),
ccc = LETTERS[1:5],
eee = rep(TRUE, 5))
cols_chars <- list(some_chars = substitute(ccc))
cols_logical <- list(some_logical = substitute(eee))
expect_error(.get_columns(cols_chars, foo))
expect_error(.get_columns(cols_logical, foo))
})
test_that(".get_columns throws errors when column does't exits", {
foo <- data.frame(aaa = c(1:5),
ccc = LETTERS[1:5],
eee = rep(TRUE, 5))
bad_colname <- list(some_chars = substitute(bbb))
expect_error(.get_columns(bad_colname, foo))
})
test_that(".assert_cor_value throws errors when values are not between -1 and 1", {
df <- data.frame(foo = c("a", "b", "c"))
good_vector <- c(0, 0.2, -0.3)
bad_vector <- c(0.2, 1, 3)
expect_error(.assert_cor_value(bad_vector, df))
expect_no_error(.assert_cor_value(good_vector, df))
})
test_that(".assert_cor_value throws error when length is not 1 or equal to len(data)", {
df <- data.frame(foo = c("a", "b", "c"))
good_vector <- c(0, 0.2, -0.3)
bad_vector <- c(0.2, 1)
another_good <- 0.5
expect_error(.assert_cor_value(bad_vector, df))
expect_no_error(.assert_cor_value(good_vector, df))
expect_no_error(.assert_cor_value(another_good, df))
})
test_that(".has_infinite detects Inf and -Inf in dataframes", {
good_df <- data.frame(foo = c(1, 2, 3))
pos_inf <- data.frame(foo = c(1, Inf, 3))
neg_inf <- data.frame(foo = c(1, 2, -Inf))
expect_false(.has_infinite(good_df))
expect_true(.has_infinite(pos_inf))
expect_true(.has_infinite(neg_inf))
})
test_that(".infinite_to_NA transforms infinites into NAs", {
df <- data.frame(foo = c(10, Inf, 10, -Inf))
expected_df <- data.frame(foo = c(10, NA, 10, NA))
expect_warning(.infinite_to_NA(df))
# Avoid warning to store new_df. If not, a warning will arise in test
suppressWarnings(new_df <- .infinite_to_NA(df))
expect_equal(new_df, expected_df)
})
test_that(".compute_and_format warns about infinite values", {
studies <- data.frame(
Ctrl_mean = c(12.3, 0),
Ctrl_sd = c(2.1, 3.2),
Ctrl_n = c(22, 24),
Fert_mean = c(18.5, 21.3),
Fert_sd = c(3.1, 4.1),
Fert_n = c(22, 25)
)
expect_warning(
res <- lnRR_ind(
data = studies,
Ctrl_mean = "Ctrl_mean", Ctrl_sd = "Ctrl_sd", Ctrl_n = "Ctrl_n",
A_mean = "Fert_mean", A_sd = "Fert_sd", A_n = "Fert_n"
)
)
expect_true(any(is.na(res$yi)))
})
test_that(".get_columns throws error when required column is missing", {
studies <- data.frame(
Ctrl_mean = c(12.3, 0),
Ctrl_sd = c(2.1, 3.2),
Ctrl_n = c(22, 24),
Fert_mean = c(18.5, 21.3),
Fert_sd = c(3.1, 4.1),
Fert_n = c(22, 25)
)
# Missing 'Ctrl_mean'
expect_error(
lnRR_ind(
data = studies,
Ctrl_sd = "Ctrl_sd", Ctrl_n = "Ctrl_n",
A_mean = "Fert_mean", A_sd = "Fert_sd", A_n = "Fert_n"
)
)
})
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.