Sample
int-c442599dbb9f-I02
Shorten method, parameter, and local names without collisions
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.718 | 0–1; higher is more readable |
| Dorn | 0.72 | 0–1; higher is more readable |
| Mi | 0.706 | 0–1; higher is more readable |
| LLOC | 53 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 6.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14 | 0–20; mean of three runs |
| BTTF | 0.549 | 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. | 4277.025 | −141.142 |
| Source linesThe number of non-empty source lines. | 146 | +58.4 |
| 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.736 | −7.103 |
Intercept 8.87 + feature contributions = -80.975 (log-odds).
Score = sigmoid(-80.975) = 0.
| Score | 0.718 |
|---|
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. | 147 | −4.168 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 113 | +3.171 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 145.505 | +1.624 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 99.946 | +0.808 |
| 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. | 99.959 | −0.569 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.137 | −0.39 |
Intercept 0.07 + feature contributions = 0.944 (log-odds).
Score = sigmoid(0.944) = 0.72.
| Score | 0.706 |
|---|
| Score | 53 |
|---|
Run 1
The code follows a consistent delegation pattern, but readability is significantly harmed by cryptic method and parameter names (e.g., 'nod', 'edg', 'is', 'allows2', 'incident2', 'node3', 'node4', 'end2'). These names obscure intent and make the code ambiguous, directly violating the 'clarity of intent' criterion. While the structure is flat and each method performs one action per line, the proliferation of numbered variants suggests a needless obfuscation. The reading flow is repetitive but mechanical. Code length is reasonable for a forwarding class, but the poor naming forces readers to constantly cross-reference the delegate methods. Overall, the logic is simple but the expression is unnecessarily cryptic.
Run 2
The code suffers from severe readability problems. Method names are cryptic and stripped of meaning (del, nod, edg, is, allows, allows2, pre, suc, incident2, in2, edge2, edge3), making intent very difficult to discern. Parameter names like nod4, nod5, nod7, node3, node4, end2, end3, edg2 are equally unclear. While the structure is flat (low nesting) and one action per line is mostly followed, these positives are undermined by the naming scheme, which appears artificially obfuscated. The class documentation is present but doesn't compensate for the poor naming throughout. The code would be far more readable with proper method names (delegate, nodes, edges, isDirected, allowsParallelEdges, predecessors, successors, etc.) and meaningful parameter names.
Run 3
The code has a simple, flat structure with one delegate call per method, but naming is severely obfuscated: methods like nod(), edg(), is(), allows(), allows2(), node(), edge(), incident2(), edge2(), edge3(), in2(), out2(), deg(), pre(), suc(), and parameters like nod, nod2, nod3, node3, node5, end2, end3, etc. These names obscure intent and make the code nearly unreadable. While the forwarding pattern itself is clear and concise, the deliberate abbreviation and numbering destroy clarity. The lack of Javadoc on methods and inconsistent naming patterns (e.g. mix of full and truncated names) further degrade readability. Code length is reasonable, and nesting is minimal, but the primary purpose of each method is ambiguous without cross-referencing the Network interface. Action granularity is good—one action per line—but reading flow is disrupted by the need to mentally map obfuscated names to their intended operations.
Run 1
Code Structure: Logically organized as a forwarding class, with consistently formatted methods and related operations grouped together. Nesting: Flat, with no nested control flow. Clarity of intent: Documentation and delegate calls reveal the purpose, but abbreviated names such as del, nod, is, and edge2 obscure method meaning. Numbered parameters also fail to communicate roles, especially endpoint direction. Code length: Long but justified by the forwarding pattern; each method is concise. Action granularity: Each method performs a single delegation, with one action per line. Reading flow: Consistent formatting and predictable implementations support scanning, but readers must inspect delegate calls to understand ambiguous method names.
Run 2
Code Structure: Consistently organized forwarding methods separate responsibilities clearly. Nesting: Completely flat method bodies make execution easy to follow. Clarity of intent: The class documentation and delegate calls explain the forwarding purpose, but abbreviated names such as del, nod, is, allows2, and edge3 obscure individual method meanings; numbered parameters also fail to distinguish semantic roles. Code length: The class is repetitive but each method is concise, and the repetition is appropriate for forwarding an interface. Action granularity: Each method contains a single return statement performing one delegation, with no crowded lines. Reading flow: Uniform formatting and sensible grouping support scanning, but cryptic names force readers to inspect method bodies to understand the API.
Run 3
Code Structure: Consistent, logically grouped forwarding methods make the class easy to navigate. Nesting: Flat, single-return methods introduce no nested control flow. Clarity of intent: The class documentation and delegate calls explain the forwarding purpose, but abbreviated names such as del, nod, is, allows2, and edge3 obscure individual operations; numbered parameters further weaken meaning. Code length: Each method is concise, and the overall repetition is reasonable for a forwarding class. Action granularity: Each method performs one delegation, with one action per line. Reading flow: Uniform formatting and a predictable method sequence support scanning, but readers must inspect method bodies to distinguish ambiguously named operations.