Package daikon.inv.unary.stringsequence
Class CommonStringSequence
- Object
-
- Invariant
-
- UnaryInvariant
-
- SingleStringSequence
-
- CommonStringSequence
-
- All Implemented Interfaces:
Serializable
,Cloneable
public class CommonStringSequence extends SingleStringSequence
Represents string sequences that contain a common subset. Prints as{s1, s2, s3, ...} subset of x[]
.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class Invariant
Invariant.ClassVarnameComparator, Invariant.ClassVarnameFormulaComparator, Invariant.InvariantComparatorForPrinting, Invariant.Match
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
dkconfig_enabled
Boolean.-
Fields inherited from class Invariant
CONFIDENCE_JUSTIFIED, CONFIDENCE_NEVER, CONFIDENCE_UNJUSTIFIED, debug, debugFlow, debugGuarding, debugIsObvious, debugIsWorthPrinting, debugPrint, debugPrintEquality, dkconfig_confidence_limit, dkconfig_fuzzy_ratio, dkconfig_simplify_define_predicates, falsified, invariantEnabledDefault, isGuardingPredicate, min_mod_non_missing_samples, ppt, PROBABILITY_JUSTIFIED, PROBABILITY_NEVER, PROBABILITY_UNJUSTIFIED
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CommonStringSequence()
protected
CommonStringSequence(PptSlice ppt)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description InvariantStatus
add_modified(@Interned String @Interned [] a, int count)
Similar toSingleStringSequence.check_modified(java.lang.String[], int)
except that it can change the state of the invariant if necessary.InvariantStatus
check_modified(@Interned String @Interned [] a, int count)
Presents a sample to the invariant.protected double
computeConfidence()
This method computes the confidence that this invariant occurred by chance.boolean
enabled()
returns whether or not this invariant is enabledString
format_csharp_contract()
String
format_daikon()
String
format_using(OutputFormat format)
Return a printed representation of this invariant, in the given format.static CommonStringSequence
get_proto()
Returns the prototype invariant for CommonStringSequence.protected CommonStringSequence
instantiate_dyn(PptSlice slice)
instantiate an invariant on the specified slice@Nullable DiscardInfo
isObviousImplied()
boolean
isSameFormula(Invariant other)
Returns true iff the two invariants represent the same mathematical formula.String
repr()
For printing invariants, there are two interfaces: repr gives a low-level representation (Invariant.repr_prob()
also prints the confidence), andInvariant.format()
gives a high-level representation for user output.-
Methods inherited from class SingleStringSequence
add, add_unmodified, check, check_unmodified, valid_types, var
-
Methods inherited from class UnaryInvariant
resurrect_done
-
Methods inherited from class Invariant
add_sample, asInvClass, checkRep, clear_falsified, clone, clone_and_permute, conf_is_ge, confidence_and, confidence_and, confidence_or, createGuardedInvariant, createGuardingPredicate, enoughSamples, falsify, find, format, format_classname, format_too_few_samples, format_unimplemented, formatFuzzy, get_comparability, get_ni_suppressions, getConfidence, getGuardingList, getGuardingList, hasUninterestingConstant, instantiate, instantiate_ok, is_false, is_ni_suppressed, isActive, isAllPrestate, isEqualityComparison, isExact, isExclusiveFormula, isObvious, isObviousDynamically, isObviousDynamically, isObviousDynamically_SomeInEquality, isObviousDynamically_SomeInEqualityHelper, isObviousStatically, isObviousStatically, isObviousStatically_AllInEquality, isObviousStatically_SomeInEquality, isObviousStatically_SomeInEqualityHelper, isReflexive, isSameInvariant, isValidEscExpression, isValidExpression, isWorthPrinting, justified, log, log, logDetail, logOn, match, merge, mergeFormulasOk, permute, prob_and, prob_and, prob_is_ge, prob_or, repCheck, repr_prob, resurrect, simplify_format_double, simplify_format_long, simplify_format_string, state_match, toString, toString, transfer, usesVar, usesVar, usesVarDerived, varNames
-
-
-
-
Field Detail
-
dkconfig_enabled
public static boolean dkconfig_enabled
Boolean. True iff CommonStringSequence invariants should be considered.
-
-
Constructor Detail
-
CommonStringSequence
protected CommonStringSequence(PptSlice ppt)
-
CommonStringSequence
protected CommonStringSequence()
-
-
Method Detail
-
get_proto
public static CommonStringSequence get_proto()
Returns the prototype invariant for CommonStringSequence.
-
enabled
public boolean enabled()
returns whether or not this invariant is enabled
-
instantiate_dyn
protected CommonStringSequence instantiate_dyn( CommonStringSequence this, PptSlice slice)
instantiate an invariant on the specified slice- Specified by:
instantiate_dyn
in classInvariant
- Returns:
- the new invariant
-
repr
public String repr(@GuardSatisfied CommonStringSequence this)
Description copied from class:Invariant
For printing invariants, there are two interfaces: repr gives a low-level representation (Invariant.repr_prob()
also prints the confidence), andInvariant.format()
gives a high-level representation for user output.
-
format_using
@SideEffectFree public String format_using(@GuardSatisfied CommonStringSequence this, OutputFormat format)
Description copied from class:Invariant
Return a printed representation of this invariant, in the given format.- Specified by:
format_using
in classInvariant
-
format_daikon
public String format_daikon(@GuardSatisfied CommonStringSequence this)
-
format_csharp_contract
public String format_csharp_contract(@GuardSatisfied CommonStringSequence this)
-
check_modified
public InvariantStatus check_modified(@Interned String @Interned [] a, int count)
Description copied from class:SingleStringSequence
Presents a sample to the invariant. Returns whether the sample is consistent with the invariant. Does not change the state of the invariant.- Specified by:
check_modified
in classSingleStringSequence
count
- how many identical samples were observed in a row. For example, three calls to check_modified with a count parameter of 1 is equivalent to one call to check_modified with a count parameter of 3.- Returns:
- whether or not the sample is consistent with the invariant
-
add_modified
public InvariantStatus add_modified(@Interned String @Interned [] a, int count)
Description copied from class:SingleStringSequence
Similar toSingleStringSequence.check_modified(java.lang.String[], int)
except that it can change the state of the invariant if necessary. If the invariant doesn't have any state, then the implementation should simply callSingleStringSequence.check_modified(java.lang.String[], int)
. This method need not check for falsification; that is done by the caller.- Specified by:
add_modified
in classSingleStringSequence
-
computeConfidence
protected double computeConfidence()
Description copied from class:Invariant
This method computes the confidence that this invariant occurred by chance. Clients should callInvariant.getConfidence()
instead.This method need not check the value of field "falsified", as the caller does that.
- Specified by:
computeConfidence
in classInvariant
- Returns:
- confidence of this invariant
- See Also:
Invariant.getConfidence()
-
isObviousImplied
@Pure public @Nullable DiscardInfo isObviousImplied()
-
isSameFormula
@Pure public boolean isSameFormula(Invariant other)
Description copied from class:Invariant
Returns true iff the two invariants represent the same mathematical formula. Does not consider the context such as variable names, confidences, sample counts, value counts, or related quantities. As a rule of thumb, if two invariants format the same, this method returns true. Furthermore, in many cases, if an invariant does not involve computed constants (as "x>c" and "y=ax+b" do for constants a, b, and c), then this method vacuously returns true.- Specified by:
isSameFormula
in classInvariant
- Parameters:
other
- the invariant to compare to this one- Returns:
- true iff the two invariants represent the same mathematical formula. Does not consider
-
-