Error(s) in re-building vignettes:
  ...
--- re-building 'rte-vignette_creating_exams.Rmd' using rmarkdown
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
 ----------- FAILURE REPORT -------------- 
 --- failure: the condition has length > 1 ---
 --- srcref --- 
: 
 --- package (from environment) --- 
RndTexExams
 --- call from context --- 
rte.grade.exams(exam.names = my.names, exam.version = ver.test, 
    exam.answer.matrix = my.answers, list.build.rdn.exam = list.build.rdn.exam)
 --- call from argument --- 
if (class(exam.answer.matrix) != "matrix") {
    stop("Input exam.answer.matrix should be a matrix")
}
 --- R stacktrace ---
where 1: rte.grade.exams(exam.names = my.names, exam.version = ver.test, 
    exam.answer.matrix = my.answers, list.build.rdn.exam = list.build.rdn.exam)
where 2: eval(expr, envir, enclos)
where 3: eval(expr, envir, enclos)
where 4: withVisible(eval(expr, envir, enclos))
where 5: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, 
    error = eHandler, message = mHandler)
where 6: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, 
    enclos)), warning = wHandler, error = eHandler, message = mHandler))
where 7: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, 
    envir, enclos)), warning = wHandler, error = eHandler, message = mHandler)))
where 8: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, 
    debug = debug, last = i == length(out), use_try = stop_on_error != 
        2L, keep_warning = keep_warning, keep_message = keep_message, 
    output_handler = output_handler, include_timing = include_timing)
where 9: evaluate::evaluate(...)
where 10: evaluate(code, envir = env, new_device = FALSE, keep_warning = !isFALSE(options$warning), 
    keep_message = !isFALSE(options$message), stop_on_error = if (options$error && 
        options$include) 0L else 2L, output_handler = knit_handlers(options$render, 
        options))
where 11: in_dir(input_dir(), evaluate(code, envir = env, new_device = FALSE, 
    keep_warning = !isFALSE(options$warning), keep_message = !isFALSE(options$message), 
    stop_on_error = if (options$error && options$include) 0L else 2L, 
    output_handler = knit_handlers(options$render, options)))
where 12: block_exec(params)
where 13: call_block(x)
where 14: process_group.block(group)
where 15: process_group(group)
where 16: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), 
    error = function(e) {
        setwd(wd)
        cat(res, sep = "\n", file = output %n% "")
        message("Quitting from lines ", paste(current_lines(i), 
            collapse = "-"), " (", knit_concord$get("infile"), 
            ") ")
    })
where 17: process_file(text, output)
where 18: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet, 
    encoding = encoding)
where 19: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), 
    ...)
where 20: vweave_rmarkdown(...)
where 21: engine$weave(file, quiet = quiet, encoding = enc)
where 22: doTryCatch(return(expr), name, parentenv, handler)
where 23: tryCatchOne(expr, names, parentenv, handlers[[1L]])
where 24: tryCatchList(expr, classes, parentenv, handlers)
where 25: tryCatch({
    engine$weave(file, quiet = quiet, encoding = enc)
    setwd(startdir)
    output <- find_vignette_product(name, by = "weave", engine = engine)
    if (!have.makefile && vignette_is_tex(output)) {
        texi2pdf(file = output, clean = FALSE, quiet = quiet)
        output <- find_vignette_product(name, by = "texi2pdf", 
            engine = engine)
    }
    outputs <- c(outputs, output)
}, error = function(e) {
    thisOK <<- FALSE
    fails <<- c(fails, file)
    message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", 
        file, conditionMessage(e)))
})
where 26: tools:::buildVignettes(dir = "/home/hornik/tmp/R.check/r-devel-clang/Work/PKGS/RndTexExams.Rcheck/vign_test/RndTexExams", 
    ser_elibs = "/tmp/RtmpP9rTLT/file2e7e3c28d7d5.rds")

 --- value of length: 2 type: logical ---
[1] FALSE  TRUE
 --- function from context --- 
function (exam.names, exam.version, exam.answer.matrix, list.build.rdn.exam, 
    question.points = NULL) 
{
    if (length(exam.version) != length(exam.names)) {
        stop("Length of inputs exam.version DO NOT match with the length of exam.names")
    }
    if (nrow(exam.answer.matrix) != length(exam.names)) {
        stop("The number of rows in exam.answer.matrix DO NOT match with the length of exam.names")
    }
    correct.answer.sheet <- list.build.rdn.exam$answer.matrix
    rnd.idx.questions <- list.build.rdn.exam$df.answer.long$rnd.idx.questions
    idx.questions <- list.build.rdn.exam$df.answer.long$n.test
    if (class(exam.names) != "character") {
        stop("Input exam.names should be a character class")
    }
    if (!any(class(exam.version) != c("numeric", "integer"))) {
        stop("Input exam.version should be a numeric class")
    }
    if (class(exam.answer.matrix) != "matrix") {
        stop("Input exam.answer.matrix should be a matrix")
    }
    if (class(correct.answer.sheet) != "matrix") {
        stop("Input correct.answer.sheet should be a matrix")
    }
    n.question <- ncol(correct.answer.sheet)
    if (is.null(question.points)) {
        question.points <- rep(1/n.question, n.question)
    }
    if (length(question.points) != n.question) {
        stop("Input question.points should have number of elements equal to the number of questions in exam.answer.matrix")
    }
    size.names <- length(exam.names)
    size.version <- length(exam.version)
    if (size.names != size.version) {
        stop("The number of elements in input exam.names does not match the number of elements in exam.version")
    }
    if (size.names != nrow(exam.answer.matrix)) {
        stop("The number of rows in exam.answer.matrix should match the number of elements in size.names")
    }
    df.grade <- data.frame()
    for (i.std in seq(1, size.names)) {
        name.now <- exam.names[i.std]
        ver.now <- exam.version[i.std]
        answers.now <- exam.answer.matrix[i.std, ]
        correct.answer.now <- correct.answer.sheet[ver.now, ]
        logical.correct <- (answers.now == correct.answer.now)
        names(logical.correct) <- paste0("Q.", seq(1:length(logical.correct)))
        names(logical.correct) <- NULL
        temp.df <- data.frame(exam.names = name.now, exam.ver = ver.now, 
            n.question = seq(1:n.question), rnd.idx.questions = rnd.idx.questions[idx.questions == 
                ver.now], question.score = question.points, grade.logical = logical.correct)
        df.grade <- rbind(df.grade, temp.df)
    }
    df.final.score <- with(df.grade, aggregate(question.score * 
        grade.logical, by = list(exam.names), FUN = sum))
    colnames(df.final.score) <- c("exam.names", "final.score")
    df.correction.wide <- data.table::dcast(data = data.table::data.table(df.grade), 
        formula = exam.names ~ rnd.idx.questions, fun.aggregate = function(x) return(x), 
        value.var = "grade.logical", fill = NA)
    grade.l.out <- list(df.grade = df.grade, df.final.score = df.final.score, 
        df.correction.wide = df.correction.wide)
    return(grade.l.out)
}
<bytecode: 0x21f5be8>
<environment: namespace:RndTexExams>
 --- function search by body ---
Function rte.grade.exams in namespace RndTexExams has this body.
 ----------- END OF FAILURE REPORT -------------- 
Fatal error: the condition has length > 1