Sample
int-29b83a74ea15-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 1 | 0–1; higher is more readable |
| Scalabrino | 0.959 | 0–1; higher is more readable |
| Dorn | 0.757 | 0–1; higher is more readable |
| Mi | 0.384 | 0–1; higher is more readable |
| LLOC | 13 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 9 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14 | 0–20; mean of three runs |
| BTTF | 0.573 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 77 | +30.8 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 538.575 | −17.773 |
| 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.229 | −6.344 |
Intercept 8.87 + feature contributions = 15.553 (log-odds).
Score = sigmoid(15.553) = 1.
| Score | 0.959 |
|---|
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. | 77 | −1.69 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.015 | +0.801 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 76.788 | +0.664 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 77.538 | +0.447 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 31 | +0.335 |
| 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. | 83.936 | +0.11 |
Intercept 0.07 + feature contributions = 1.134 (log-odds).
Score = sigmoid(1.134) = 0.757.
| Score | 0.384 |
|---|
| Score | 13 |
|---|
Run 1
The code has clear documentation and a straightforward structure, but readability is severely undermined by poor naming. Constructor parameters 'a', 'b', 'c' and methods 'a()', 'b()', 'c()' are cryptic and fail to convey intent. The Javadoc is thorough but disconnected from the actual API names. The class is flat and logically organized, with one action per line, concise getters, and natural field/method ordering. However, the inability to infer purpose from names without reading external documentation makes the code ambiguous and hard to maintain.
Run 2
The code has decent structure and flat nesting, but readability is severely undermined by unclear naming. Parameters and methods use meaningless names like 'a', 'b', 'c', and 'ReauthenticationContext(Authenticator a, NetworkReceive b, long c)', obscuring intent despite verbose Javadoc. The constructor parameter order also conflicts with the documented order, adding confusion. While each line performs one action and the class is concise, the disconnect between documentation and actual code identifier names significantly harms clarity and reading flow.
Run 3
The code structure is logical, with a clear class and constructor, but the use of cryptic parameter and method names (a, b, c) severely undermines clarity of intent. There is minimal nesting and the reading flow is natural, but the public API becomes ambiguous, forcing readers to rely on documentation. Code length is concise but at the cost of self-documenting code. Action granularity is good - one action per line in the constructor and methods. The Javadoc is thorough, but it offsets rather than fixes the poor naming. Overall, the code is readable in structure but fails on clear, self-explanatory identifiers, which is crucial for maintainability and collaborative development.
Run 1
Code Structure: A logically organized context class with immutable fields, a constructor, and simple accessors. Nesting: Flat, with no nested control flow. Clarity of intent: Descriptive field names and documentation explain the purpose, but constructor parameters a/b/c and accessor names a()/b()/c() obscure meaning. The constructor's @param tags do not match its actual parameter names, further weakening clarity. Code length: Implementation is concise, but lengthy, repetitive documentation dominates the class. Action granularity: Each statement performs a single assignment, validation, or return. Reading flow: The fields-to-constructor-to-accessors sequence is natural, though opaque public names force readers to inspect method bodies or comments.
Run 2
Code Structure: Logically organized as a small context class with immutable fields, a constructor, and accessors. Nesting: Completely flat, with no complex control flow. Clarity of intent: Descriptive fields and documentation explain the purpose, but single-letter constructor parameters and accessor names obscure usage. Constructor @param names also fail to match the actual parameters. Code length: Implementation is concise, but lengthy, repetitive documentation makes the class unnecessarily verbose. Action granularity: Each statement performs one clear action. Reading flow: Conventional ordering supports easy navigation, though opaque method names and documentation duplication interrupt an otherwise natural flow.
Run 3
Code Structure: Logically organized as a small immutable context class with fields, a constructor, and accessors. Nesting: Flat, with no nested control flow. Clarity of intent: Descriptive class and field names help, but single-letter constructor parameters and accessor names obscure meaning. Constructor Javadoc also references parameter names that do not match the signature. Code length: Implementation is concise, but lengthy, repetitive documentation makes the class unnecessarily verbose. Action granularity: Each statement performs one clear action. Reading flow: Conventional ordering supports easy reading, although generic method names force readers to inspect bodies or documentation to understand their purpose.