我目前正在编写漩涡课程,我试图测试用户创建的 ggplot2 对象是否与all.equal()
我在自定义 AnswerTest 中创建的对象有点相等()。但是,我通过访问 e$val 从 swirl api 接收的绘图对象通常继承了一个 flipped_aes = FALSE 属性,我无法在自己的绘图中创建该属性,因此all.equal(e$val, someplot)
尽管它们看起来相等,但仍会失败。
我真的很感激一些想法如何解决它或控制它的发生!
如果发生 all.equal() 失败并显示以下消息:
"Component “layers”: Component 1: Component 4: Length mismatch: comparison on first 2 components"
我当前的测试如下所示:
calculates_same_graph <- function(expression){ #If ggplot expression must be written in curly brackets in Yaml file
e <- get("e", parent.frame())
eSnap <- cleanEnv(e$snapshot)
val <- expression
passed <- isTRUE(all.equal(val[-8], e$val[-8]))
assign("e", e$val, envir = globalenv()) #only for diagnostics, changes
#when new answer is put in
return(passed)
}