View source: R/check-control.R
| check_control | R Documentation | 
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 class '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 | 
## Not run: 
# 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()
}
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.