Package daikon.inv.unary.string
Class PrintableString
- Object
-
- Invariant
-
- UnaryInvariant
-
- SingleString
-
- PrintableString
-
- All Implemented Interfaces:
Serializable
,Cloneable
public final class PrintableString extends SingleString
Represents a string that contains only printable ascii characters (values 32 through 126 plus 9 (tab).- 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 Constructor Description PrintableString()
PrintableString(PptSlice slice)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description InvariantStatus
add_modified(@Interned String a, int count)
Check to see if a only contains printable ascii characters.InvariantStatus
check_modified(@Interned String a, int count)
Check to see if a only contains printable ascii characters.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_using(OutputFormat format)
Return description of invariant.static PrintableString
get_proto()
Returns the prototype invariant for PrintableString.PrintableString
instantiate_dyn(PptSlice slice)
instantiate an invariant on the specified slice@Nullable DiscardInfo
isObviousStatically(VarInfo[] vis)
Returns whether or not this is obvious statically.boolean
isSameFormula(Invariant o)
Returns true iff the two invariants represent the same mathematical formula.-
Methods inherited from class SingleString
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_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, 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 PrintableString invariants should be considered.
-
-
Constructor Detail
-
PrintableString
public PrintableString(PptSlice slice)
-
PrintableString
public PrintableString()
-
-
Method Detail
-
get_proto
public static PrintableString get_proto()
Returns the prototype invariant for PrintableString.
-
enabled
public boolean enabled()
returns whether or not this invariant is enabled
-
instantiate_dyn
public PrintableString instantiate_dyn( PrintableString this, PptSlice slice)
instantiate an invariant on the specified slice- Specified by:
instantiate_dyn
in classInvariant
- Returns:
- the new invariant
-
format_using
@SideEffectFree public String format_using(@GuardSatisfied PrintableString this, OutputFormat format)
Return description of invariant. Only Daikon format is implemented.- Specified by:
format_using
in classInvariant
-
add_modified
public InvariantStatus add_modified(@Interned String a, int count)
Check to see if a only contains printable ascii characters.- Specified by:
add_modified
in classSingleString
-
check_modified
public InvariantStatus check_modified(@Interned String a, int count)
Check to see if a only contains printable ascii characters.- Specified by:
check_modified
in classSingleString
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
-
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()
-
isObviousStatically
@Pure public @Nullable DiscardInfo isObviousStatically(VarInfo[] vis)
Returns whether or not this is obvious statically. The only check is for static constants which are obviously printable (or not) from their values.- Overrides:
isObviousStatically
in classInvariant
- Parameters:
vis
- the VarInfos this invariant is obvious over. The position and data type of the variables is the *same* as that of this.ppt.var_infos.
-
isSameFormula
@Pure public boolean isSameFormula(Invariant o)
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:
o
- the invariant to compare to this one- Returns:
- true iff the two invariants represent the same mathematical formula. Does not consider
-
-