# ferdo R Lab | Lesson 4 v1.0 | RStudio acceptance test
# From the unpacked ZIP root:
# source("scripts/acceptance_test.R")
files <- c("data/class_synthetic.csv","scripts/check_setup.R",
           "scripts/lesson04_demo.R","scripts/lesson04_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)
pdf_out <- tempfile(fileext=".pdf")
grDevices::pdf(pdf_out)
tryCatch({
  demo_env <- new.env(parent=globalenv())
  sys.source("scripts/lesson04_demo.R",envir=demo_env)
  stopifnot(
    length(demo_env$scored)==11L,
    sum(demo_env$ok)==10L,
    identical(demo_env$hist_counts,c(2L,2L,3L,2L,1L,1L)),
    identical(as.integer(demo_env$group_sizes),c(6L,6L)),
    isTRUE(all.equal(unname(as.numeric(demo_env$medians)),c(69,64.5))),
    isTRUE(all.equal(unname(as.numeric(demo_env$means)),c(65.2,392/6)))
  )
},finally=grDevices::dev.off())
stopifnot(file.exists(pdf_out),file.info(pdf_out)$size>0)
unlink(pdf_out)
practice_env <- new.env(parent=globalenv())
sys.source("scripts/lesson04_practice.R",envir=practice_env)
stopifnot(identical(dim(practice_env$d),c(12L,4L)))
cat("R LAB LESSON 4 ACCEPTANCE TEST PASS\n")
