test_that("exercise mocks: mock_prep_setup()", {
chunks <- list(
mock_chunk("setup-1", "x <- 1"),
mock_chunk("setup-2", "y <- 2", exercise.setup = "setup-1"),
mock_chunk("setup-3", "z <- 3", exercise.setup = "setup-2")
)
expect_equal(mock_prep_setup(chunks, "setup-3"), "x <- 1\ny <- 2\nz <- 3")
expect_equal(mock_prep_setup(chunks, "setup-2"), "x <- 1\ny <- 2")
expect_equal(mock_prep_setup(chunks, "setup-1"), "x <- 1")
# random order
expect_equal(mock_prep_setup(chunks[3:1], "setup-3"), "x <- 1\ny <- 2\nz <- 3")
expect_equal(mock_prep_setup(chunks[c(1, 3, 2)], "setup-3"), "x <- 1\ny <- 2\nz <- 3")
expect_equal(mock_prep_setup(chunks[c(2, 3, 1)], "setup-3"), "x <- 1\ny <- 2\nz <- 3")
expect_equal(mock_prep_setup(chunks[c(2, 1, 3)], "setup-3"), "x <- 1\ny <- 2\nz <- 3")
# checks that setup chunk is in chunks
expect_error(mock_prep_setup(chunks, "setup-Z"), "setup-Z")
# cycles
chunks[[1]]$opts$exercise.setup = "setup-3"
expect_error(mock_prep_setup(chunks, "setup-3"), "-> setup-3$")
# duplicate labels
expect_error(mock_prep_setup(chunks[c(1, 1)], "setup-1"), "Duplicated")
})
test_that("mock_exercise() errors for duplicated chunks", {
expect_error(
mock_exercise(
chunks = list(
mock_chunk("ex1", "1 + 1", exercise = TRUE),
mock_chunk("ex1", "2 + 2", exercise = TRUE)
),
label = "ex"
)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.