R/check-control.R
check_control.Rd
Check whether student coded a control statement correctly
check_if_else(state, index = 1, not_found_msg = NULL, append = TRUE) check_while(state, index = 1, not_found_msg = NULL, append = TRUE) check_for(state, index = 1, not_found_msg = NULL, append = TRUE) check_cond(state) # S3 method for ControlState check_body(state, ...) check_if(state) check_else(state, not_found_msg = NULL, append = TRUE)
state | state to start from (for |
---|---|
index | Number of that particular control statement to check |
not_found_msg | Custom message in case the control statement was not found |
append | Whether or not to append the feedback to feedback built in previous states |
... | S3 stuff |
if (FALSE) { # Example 1: if else vec <- c("a", "b", "c") if("a" %in% vec) { print("a in here") } else if(any("b" > vec)) { cat("b not smallest") } else { str(vec) } # SCT check_if_else(1) %>% { check_cond(.) %>% { check_code(., "%in%") check_code(., "vec") } check_if(.) %>% check_function(., "print") check_else(.) %>% check_if_else() %>% { check_cond(.) %>% check_code(">") check_if(.) %>% check_function("cat") check_else(.) %>% check_function("str") } } # Example 2: while loop while(x < 18) { x <- x + 5 print(x) } # SCT check_while(1) %>% { check_cond(.) %>% check_code(c("< 18", "18 >")) check_body(.) %>% { check_code(., c("x + 5", "5 + x")) check_function(., "print") %>% test_arg("x") } } # Example 3: for loop for(i in 1:5) { print("hurray!") } # SCT ex() %>% check_for() %>% { check_cond(.) %>% { check_code(., "in") check_code(., "1") check_code(., "5") } check_body(.) %>% check_function("print") %>% check_arg("x") %>% check_equal() } }