Learn R Programming

swirl (version 2.4.1)

omnitest: Test for a correct expression, a correct value, or both.

Description

Omnitest can test for a correct expression, a correct value, or both. In the case of values it is limited to testing for character or numeric vectors of length 1.

Usage

omnitest(correctExpr = NULL, correctVal = NULL, strict = FALSE,
  eval_for_class = as.logical(NA))

Arguments

correctExpr
the correct or expected expression as a string
correctVal
the correct value (numeric or character)
strict
a logical value indicating that the expression should be as expected even if the value is correct. If FALSE (the default) a correct value will pass the test even if the expression is not as expected, but a notification will be issued.
eval_for_class
a logical value. If TRUE, evaluate the first argument of an S3 method to determine its class. Default=TRUE. Global value may also be set as customTests$EVAL_FOR_CLASS.

See Also

Other AnswerTests: AnswerTests, any_of_exprs, calculates_same_value, expr_creates_var, expr_identical_to, expr_is_a, expr_uses_func, func_of_newvar_equals, val_has_length, val_matches, var_is_a

Examples

Run this code
# Test that a user has chosen a correct menu item
  #
  omnitest(correctVal='Men in a college dorm.')
   
  # Test that a user has entered a correct number at the
  # command line
  #
  omnitest(correctVal=19)
   
  # Test that a user has entered a particular command
  #
  omnitest('myVar <- c(3, 5, 7)')
   
  # Test that a user has entered a command which computes
  # a specific value but perhaps in a different manner 
  # than anticipated
  #
  omnitest('sd(x)^2', 5.95)
  #
  # If the user enters sd(x)*sd(x), rather than sd(x)^2, a notification
  # will be issued, but the test will not fail.
  
  # Test that a user has entered a command which computes
  # a specific value in a particular way
  #
  omnitest('sd(x)^2', 5.95, strict=TRUE)
  #
  # In this case, if the user enters sd(x)*sd(x) the test will fail.

Run the code above in your browser using DataLab