Nothing
# CORRECT PROTOTYPE OF RETURNED VALUE ----
test_that("random_sq() returns an object of sq class", {
expect_vector(random_sq(4, 7, "dna_bsc"),
ptype = sq_ptype(CPP_get_standard_alphabet("dna_bsc"), "dna_bsc"),
size = 4)
expect_vector(random_sq(1, 26, "ami_ext"),
ptype = sq_ptype(CPP_get_standard_alphabet("ami_ext"), "ami_ext"),
size = 1)
expect_vector(random_sq(5, 8, c("mA", "nY")),
ptype = sq_ptype(c("mA", "nY"), "atp"),
size = 5)
})
test_that("each sequence of random_sq() is of the passed length", {
for (sq in random_sq(3, 27, "rna_bsc")) {
expect_equal(attr(sq, "original_length"), 27)
}
})
# ARGUMENT PREREQUISITES ----
test_that("random_sq() doesn't accept \"unt\" as type", {
expect_error(random_sq(5, 11, "unt"),
"method 'random_sq' cannot take 'unt' as alphabet type")
})
# LENGTH SAFETY ----
test_that("using sd argument of random_sq() doesn't generate negative-length sequences", {
skip_if_not_installed("mockr")
# Using local mock to ensure that rnorm generates some negative values
# Will have to change it if random_sq() changes length generating function
# This might suggest that we should extract this as a separate function
mockr::with_mock(rnorm = function(x, mean, sd) {
seq(from = mean - 2*sd, to = mean + 2*sd, length.out = x)
}, {
for (sq in random_sq(25, 3, "dna_bsc", sd = 50)) {
expect_gte(attr(sq, "original_length"), 0)
}
}, .env = rlang::pkg_env("stats"))
})
# SEED SAFETY ---
test_that("generating random sequences with the same seed gives the same sequences", {
set.seed(6125)
sq_1 <- random_sq(10, 100, "ami_bsc")
sq_2 <- random_sq(5, 20, "dna_ext", sd = 5)
set.seed(6125)
expect_equal(random_sq(10, 100, "ami_bsc"), sq_1)
expect_equal(random_sq(5, 20, "dna_ext", sd = 5), sq_2)
})
# EDGE CASES ----
test_that("random_sq() can generate 0 sequences", {
expect_vector(random_sq(0, 13, "rna_ext"),
ptype = sq_ptype(CPP_get_standard_alphabet("rna_ext"), "rna_ext"),
size = 0)
})
test_that("random_sq() can generate 0-length sequences", {
empty_sq <- random_sq(3, 0, "ami_bsc")
expect_vector(empty_sq,
ptype = sq_ptype(CPP_get_standard_alphabet("ami_bsc"), "ami_bsc"),
size = 3)
for (sq in empty_sq) {
expect_length(sq, 0)
}
})
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.