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.