test_that("generate_numerical generates correct XML for a single answer", {
# Inputs
answer <- c("42", "0.01")
a_values <- list()
fb_answer <- "Correct!"
fb_a_values <- NULL
# Expected output
expected_structure <- paste0(
"\n",
"\n 42",
"\n ",
"\n Correct!",
"\n ",
"\n 0.01",
"\n",
"\n 0",
"\n 0.1000000",
"\n 3",
"\n 0"
)
# Run the function
result <- generate_numerical(
answer = answer,
a_values = a_values,
fb_answer = fb_answer,
fb_a_values = fb_a_values
)
# Check if the result matches the expected structure
expect_equal(result, expected_structure)
})
test_that("generate_numerical handles multiple answers with feedback", {
# Inputs
answer <- c("100", "0.5")
a_values <- c("90<|>0.1", "110<|>0.1")
fb_answer <- "Correct answer!"
fb_a_values <- c("Close enough!", "Too high!")
# Expected output
expected_structure <- paste0(
"\n",
"\n 100",
"\n ",
"\n Correct answer!",
"\n ","\n 0.5",
"\n",
"\n 90","\n ",
"\n Close enough!",
"\n ",
"\n 0.1",
"\n",
"\n 110","\n ",
"\n Too high!",
"\n ",
"\n 0.1",
"\n",
"\n 0",
"\n 0.1000000",
"\n 3",
"\n 0"
)
# Run the function
result <- generate_numerical(
answer = answer,
a_values = a_values,
fb_answer = fb_answer,
fb_a_values = fb_a_values
)
# Check if the result matches the expected structure
expect_equal(result, expected_structure)
})