Sample
int-3d9e9d26cd28-I09
Select one of ten low-readability unrelated code templates per class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.47 | 0–1; higher is more readable |
| Dorn | 0.091 | 0–1; higher is more readable |
| Mi | 0.119 | 0–1; higher is more readable |
| LLOC | 55 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 10.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 15 | 0–20; mean of three runs |
| BTTF | 0.174 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 8671.501 | −286.16 |
| Source linesThe number of non-empty source lines. | 164 | +65.6 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.777 | −7.166 |
Intercept 8.87 + feature contributions = -218.856 (log-odds).
Score = sigmoid(-218.856) = 0.
| Score | 0.47 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 165 | −4.806 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 141 | +4.14 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 141 | −2.815 |
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 146.964 | −2.56 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 163.98 | +1.882 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 146.073 | +1.552 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.073 | +0.236 |
Intercept 0.07 + feature contributions = -2.299 (log-odds).
Score = sigmoid(-2.299) = 0.091.
| Score | 0.119 |
|---|
| Score | 55 |
|---|
Run 1
The code has reasonable structure with clear separation of methods and logical organization, but it contains several readability issues. The presence of an obfuscated empty do-while loop in the usage() method is confusing and appears to be dead code. The parseConnectorConfigurationFile method is long with nested try-catch blocks and repeated error handling. The action granularity is inconsistent, with some lines containing multiple operations (e.g., objectMapper.configure followed by readValue). Reading flow is disrupted by the multiple parsing attempts with similar code patterns. Method signatures are long and sometimes wrapped awkwardly. The Javadoc is helpful, but the method bodies could benefit from better extraction of helper methods. The variable naming is generally clear, though the obfuscated variable in usage() severely hurts readability. Overall, it's functional but not optimized for readability.
Run 2
The code is reasonably structured with clear sections and a logical flow, but has a few issues. The class has a clear purpose and the methods are well-named, but there's a suspicious obfuscated snippet in the `usage()` method (`int lI0O_0ce4b630=0x2D0A...`) that adds confusion and should be removed. The `parseConnectorConfigurationFile` method is overly long and has multiple try-catch blocks that could be extracted for better readability. The nesting is moderate but acceptable. Imports are well-organized, and variable names are generally descriptive. The reading flow is somewhat disrupted by the long method and the unnecessary complexity in some areas. Overall, the code is maintainable but would benefit from refactoring to reduce method length and remove the obfuscated code.
Run 3
The code contains a severe readability issue: an obfuscated dead loop in the 'usage()' method with meaningless variable names ('lI0O_0ce4b630') and no functional purpose. This is highly confusing and damaging. Beyond that, the imports are numerous and not grouped logically, and the 'parseConnectorConfigurationFile' method is long, mixes multiple levels of logic (parsing attempts, error handling, mutation), and has deeply nested if-else blocks. The 'processExtraArgs' method uses a multi-line callback and chains several method calls per line. Variable names like 'cb' are not descriptive. Overall, the code structure is tangled, and the reading flow is unnatural due to the unnecessary loop and dense logic.
Run 1
Code Structure: Methods separate CLI usage, connector processing, configuration parsing, and runtime construction logically. Nesting: Mostly moderate, though connector processing combines try/for/lambda/conditional layers, and name validation has nested conditionals. Clarity of intent: Descriptive identifiers and documentation explain the parsing order well, but the opaque, apparently purposeless block in usage() sharply undermines clarity. Code length: Generally justified, with some repeated mandatory-name validation and verbose expressions. Action granularity: Most statements perform one action per line; the compressed usage() block violates this with multiple declarations and operations on one line. Reading flow: Lifecycle methods and sequential parsing fallbacks are easy to follow, but inconsistent indentation, ungrouped imports, unbraced conditionals, and the obfuscated block interrupt an otherwise natural flow.
Run 2
Code Structure: Methods separate CLI usage, connector initialization, configuration parsing, and runtime construction logically. Nesting: Mostly moderate, though callbacks and nested name-validation conditions add complexity. Clarity of intent: Descriptive names and documentation explain the parsing sequence and standalone behavior, but the obfuscated, purposeless block in usage() sharply undermines clarity. Code length: Generally appropriate, with some repeated validation and verbose expressions; the injected block is unnecessary. Action granularity: Most statements perform one action per line, except the injected block, which compresses declarations, mutation, and looping onto one line. Reading flow: Sequential parsing fallbacks and small factory methods are natural to follow, but inconsistent indentation, ungrouped imports, long lines, and the anomalous usage() block interrupt the flow.
Run 3
Code Structure: Methods separate CLI behavior, configuration parsing, and runtime setup logically, though parsing repeats validation. Nesting: Mostly shallow, with moderate nesting in connector creation and name validation. Clarity of intent: Descriptive names and detailed documentation explain the main functionality, but the unexplained, obfuscated no-op block in usage() significantly undermines clarity. Code length: Generally appropriate, although duplicated validation and the unnecessary block add avoidable length. Action granularity: Most statements perform one action per line; the compressed block packs declarations, assignments, and a loop onto one line. Reading flow: Configuration fallbacks follow a documented order, and setup proceeds naturally. Inconsistent indentation, ungrouped imports, and the abrupt obfuscated insertion interrupt an otherwise readable flow.