R/grade.set.R

Defines functions grade.set

Documented in grade.set

###########################################################################
#
# matches an unordered set to a students
#
###########################################################################
grade.set <- function(correctans,studentans,tolerance=0.01,
                      useeval=TRUE, usena=FALSE, useinf=FALSE,
                      quiet=TRUE) {
  #
  # No null input allowed
  #
  stopifnot(grade.allnotnull(correctans, studentans, tolerance,
                             useeval, usena, useinf))
  stopifnot(all(is.logical(useeval), is.logical(usena), is.logical(useinf),
                is.logical(quiet)))

  #################################################################
  correctans <- grade.parse(correctans, useeval, usena, useinf, quiet)
  stopifnot(is.null(correctans) == FALSE)
  
  studentans <- grade.parseset(studentans, useeval, usena, useinf)
  if (is.null(studentans)) return(FALSE)
  
  tol.num <- grade.gettolerance(tolerance)
  if(is.null(tol.num)) return(FALSE)

  # sort and compare the lists
  correctans <- sort(correctans, na.last=FALSE)
  studentans <- sort(studentans, na.last=FALSE)
  return(isTRUE(all.equal(correctans, studentans, tolerance=tol.num)))
}

Try the grade package in your browser

Any scripts or data that you put into this service are public.

grade documentation built on May 2, 2019, 9:15 a.m.