{'fraction_non_alphanumeric': 0.010482180293501049, 'fraction_numerical': 0.0, 'mean_word_length': 5.496598639455782, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Extending Dynamic Constraint Detection with Polymorphic Analysis

The general technique for dynamically detecting likely invariants, as implemented by Daikon, lacks specific object- oriented support for polymorphism. Daikon examines only the declared type of a variable which prohibits it from examination of the runtime variables in the presence of polymorphism. The approach presented in this paper extends the technique to consider the runtime type of a polymorphic variable, which may have different declared and runtime types. The runtime behavior of a polymorphic variable is captured by polymorphic constraints which have the form of an implication with the name of the runtime class in the antecedent. We demonstrate the improved accuracy of the dynamically detected specification on the Money example from the JUnit testing framework tutorial. Polymorphic constraints are shown to reveal the specification of the runtime behavior of the example.