Package randoop.contract
Class CheckRepContract
java.lang.Object
randoop.contract.ObjectContract
randoop.contract.CheckRepContract
Represents the contract that an object must conform to its representation invariant, as expressed
in a user-supplied representation check method. A rep check method for a class must be declared
as a public instance method with no parameters in the given class, annotated with a
@CheckRep
annotation, and have return type boolean
or void
. In the first
case, a return value true
means the check passed, and false
, or an exception,
means it failed. In the second case, normal return means the check passed, and an exception means
it failed.-
Field Summary
Modifier and TypeFieldDescriptionfinal Method
final Class<?>
private final TypedClassOperation
(package private) boolean
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
Evaluates the contract on the given values.Returns a string describing the observer.int
getArity()
The number of values that this contract is over.Returns the input types for this contract.int
hashCode()
A string that can be used as Java source code and will result in the expression being evaluated.A string that will be inserted as a comment in the test before the code corresponding to this contract.Methods inherited from class randoop.contract.ObjectContract
checkContract, failedContract, toStringHandleExceptions
-
Field Details
-
checkRepMethod
-
operation
-
returnsBoolean
boolean returnsBoolean -
declaringClass
-
-
Constructor Details
-
CheckRepContract
-
-
Method Details
-
equals
-
hashCode
public int hashCode() -
evaluate
Description copied from class:ObjectContract
Evaluates the contract on the given values. Returnsfalse
if the contract was violated. Returnstrue
if the contract was satisfied or was not applicable.When calling this method during execution of a test, Randoop guarantees that
objects
does not contain anynull
objects, and thatobjects.length == getArity()
.- Specified by:
evaluate
in classObjectContract
- Parameters:
objects
- the actual parameters to this contract- Returns:
- false if the contract is violated, true otherwise
- Throws:
Throwable
- if an exception is thrown in evaluation
-
getArity
public int getArity()Description copied from class:ObjectContract
The number of values that this contract is over.- Specified by:
getArity
in classObjectContract
- Returns:
- the number of arguments to the contract
-
getInputTypes
Description copied from class:ObjectContract
Returns the input types for this contract.- Specified by:
getInputTypes
in classObjectContract
- Returns:
- the input types for this contract
-
toCommentString
Description copied from class:ObjectContract
A string that will be inserted as a comment in the test before the code corresponding to this contract. Occurrences of variables x0, x1, x2, etc. in the string will be replaced by actual values.- Specified by:
toCommentString
in classObjectContract
- Returns:
- the comment string representation of this contract
-
get_observer_str
Description copied from class:ObjectContract
Returns a string describing the observer.- Specified by:
get_observer_str
in classObjectContract
- Returns:
- a string description of the contract
-
toCodeString
Description copied from class:ObjectContract
A string that can be used as Java source code and will result in the expression being evaluated.The N-th object that participates in the contract check should be referred to as "xN" (for N one of 0, ... , 9). For example, if the expression of arity 2 represents a call of the equals method between two objects, the code should be something like
assert x0.equals(x1);
".The string does not contain a trailing newline. When there is a leading comment, it should start with a newline.
- Specified by:
toCodeString
in classObjectContract
- Returns:
- the code string representation of this contract; must be non-null
-