test_that("generate_ddwtos produces correct XML structure", {
# Inputs
answer <- "Correct Answer"
a_values <- c("Distractor 1", "Distractor 2")
correct_feedback <- "Well done!"
incorrect_feedback <- "Try again."
partially_correct_feedback <- "Almost there."
# Expected structure
expected_structure <- paste0(
"\n1",
"\n",
"\n ", correct_feedback, "",
"\n",
"\n",
"\n ", partially_correct_feedback, "",
"\n",
"\n",
"\n ", incorrect_feedback, "",
"\n",
"\n",
"\n",
"\n ", answer, "",
"\n 1",
"\n",
"\n",
"\n ", a_values[1], "",
"\n 1",
"\n",
"\n",
"\n ", a_values[2], "",
"\n 1",
"\n"
)
# Run the function
result <- generate_ddwtos(
answer = answer,
a_values = a_values,
correct_feedback = correct_feedback,
incorrect_feedback = incorrect_feedback,
partially_correct_feedback = partially_correct_feedback
)
# Check if the result matches the expected structure
expect_equal(result, expected_structure)
})
test_that("generate_ddwtos handles empty 'a_values' gracefully", {
# Inputs with no distractors
answer <- "Correct Answer"
a_values <- c()
correct_feedback <- "Good job!"
incorrect_feedback <- "Incorrect."
partially_correct_feedback <- "Almost there."
# Expected structure
expected_structure <- paste0(
"\n1",
"\n",
"\n ", correct_feedback, "",
"\n",
"\n",
"\n ", partially_correct_feedback, "",
"\n",
"\n",
"\n ", incorrect_feedback, "",
"\n",
"\n",
"\n",
"\n ", answer, "",
"\n 1",
"\n"
)
# Run the function
result <- generate_ddwtos(
answer = answer,
a_values = a_values,
correct_feedback = correct_feedback,
incorrect_feedback = incorrect_feedback,
partially_correct_feedback = partially_correct_feedback
)
# Check if the result matches the expected structure
expect_equal(result, expected_structure)
})