Sample
int-5222562258e8-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.8 | 0–1; higher is more readable |
| Dorn | 0.424 | 0–1; higher is more readable |
| Mi | 0.66 | 0–1; higher is more readable |
| LLOC | 22 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 7.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 12 | 0–20; mean of three runs |
| BTTF | 0.568 | 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. | 1558.985 | −51.447 |
| Source linesThe number of non-empty source lines. | 45 | +18 |
| 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.286 | −6.428 |
Intercept 8.87 + feature contributions = -31.005 (log-odds).
Score = sigmoid(-31.005) = 0.
| Score | 0.8 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 45 | +0.819 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| 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. | 68.891 | +0.747 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 45 | −0.612 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 46 | −0.592 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 44.8 | +0.216 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.112 | −0.149 |
Intercept 0.07 + feature contributions = -0.305 (log-odds).
Score = sigmoid(-0.305) = 0.424.
| Score | 0.66 |
|---|
| Score | 22 |
|---|
Run 1
The code is compact but suffers from poor readability due to cryptic naming. Method names like 'a', 'b', and 'c' obscure their purpose, forcing readers to infer behavior from context. Variable names such as 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', and 'j' provide no semantic meaning. The loop in method 'a' builds a transformer chain in reverse, which is not immediately obvious. Nesting is minimal and structure is logical, but clarity of intent is severely compromised. Action granularity is mostly acceptable, but the overall effect is terse, obfuscated code that would require significant effort to understand or maintain.
Run 2
The code has minimal nesting and a simple structure, but suffers from poor naming conventions (single-letter variables like 'a', 'b', 'c', 'd') that obscure intent. The 'a' method conflates visitor setup with transformer chaining logic, making it ambiguous. While each line generally performs one action, the unnatural reading flow and cryptic method names reduce readability significantly. The toString and visitMethod methods are straightforward, but the overall class lacks clarity without contextual knowledge.
Run 3
The code has some structural organization but suffers from poor readability due to single-letter variable names (a, b, c, d, e, f, g, h, i, j) which obscure intent. Method names like 'a', 'b', 'c' are completely unhelpful. The loop in 'a' builds a transformer chain backwards, making the logic confusing. Formatting is inconsistent with mixed indentation. While the code is relatively short and has shallow nesting, the unclear naming and ambiguous method purposes significantly reduce clarity. Action granularity is mostly one action per line, and the toString method is straightforward, but the overall reading flow is disrupted by cryptic identifiers and unclear delegation logic.
Run 1
Code Structure: Logically organized into a constructor, chain setup, method delegation, and string formatting. Nesting: Shallow overall, with only a conditional inside a loop. Clarity of intent: The class name and API calls suggest its purpose, but single-letter method names, parameters, and local variables obscure meaning. Code length: Compact and mostly appropriate, though string formatting is somewhat verbose. Action granularity: Generally one action per line, making individual operations easy to follow. Reading flow: Method order is sensible, but inconsistent indentation, awkward parameter alignment, and cryptic naming interrupt scanning and require readers to infer each method's role.
Run 2
Code Structure: The class is logically organized into construction, transformer linking, method delegation, and string representation. Nesting: Mostly flat, with only a loop containing a simple conditional. Clarity of intent: The class name and chain field communicate purpose, but single-letter method names, parameters, and local variables obscure behavior and API meaning. Code length: Concise overall, with no substantial unnecessary code. Action granularity: Each statement generally performs one action, making individual operations easy to follow. Reading flow: Method ordering is natural, but inconsistent indentation and excessive parameter alignment interrupt scanning. The reverse-order linking requires some interpretation, and descriptive names would make it substantially clearer.
Run 3
Code Structure: The class is logically organized into construction, transformer linking, method delegation, and string representation. Nesting: Mostly flat, with only a loop containing a simple conditional. Clarity of intent: The class name and chain field convey purpose, but single-letter method, parameter, and local variable names obscure behavior and require inference. Code length: Concise overall, with little unnecessary code. Action granularity: Each statement generally performs one action, making individual operations easy to follow. Reading flow: Method separation supports a natural progression, but inconsistent indentation, awkward parameter alignment, and opaque names interrupt reading. The reverse-order chain assembly is understandable with inspection but would benefit from descriptive naming or a brief explanation.