# ferdo R Lab - Ders 2 - self-contained R acceptance test
# From unpacked folder root in RStudio: source("scripts/acceptance_test.R")
files <- c("data/class_synthetic.csv",
           "scripts/check_setup.R", "scripts/lesson02_demo.R",
           "scripts/lesson02_practice.R")
stopifnot(all(file.exists(files)))
invisible(lapply(files[-1], function(f) parse(file=f)))
setup_env <- new.env(parent=globalenv())
sys.source("scripts/check_setup.R", envir=setup_env)
plot_file <- tempfile(fileext=".pdf")
grDevices::pdf(plot_file)
tryCatch({
  demo_env <- new.env(parent=globalenv())
  sys.source("scripts/lesson02_demo.R", envir=demo_env)
  stopifnot(nrow(demo_env$class_data)==12L,
            nrow(demo_env$high)==4L,
            sum(demo_env$ok)==10L,
            isTRUE(all.equal(mean(demo_env$class_data$quiz_score,na.rm=TRUE),718/11)))
}, finally = grDevices::dev.off())
stopifnot(file.exists(plot_file), file.info(plot_file)$size>0)
unlink(plot_file)
practice_env <- new.env(parent=globalenv())
sys.source("scripts/lesson02_practice.R", envir=practice_env)
stopifnot(nrow(practice_env$class_data)==12L)
cat("R LAB LESSON 2 ACCEPTANCE TEST PASS\n")
