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) })