Sample
int-7f47225fa8dc-I06
Invert eligible conditions and exchange their branches
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.135 | 0–1; higher is more readable |
| Scalabrino | 0.57 | 0–1; higher is more readable |
| Dorn | 0.769 | 0–1; higher is more readable |
| Mi | 0.727 | 0–1; higher is more readable |
| LLOC | 12 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.631 | 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. | 840.254 | −27.728 |
| Source linesThe number of non-empty source lines. | 60 | +24 |
| 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.665 | −6.998 |
Intercept 8.87 + feature contributions = -1.856 (log-odds).
Score = sigmoid(-1.856) = 0.135.
| Score | 0.57 |
|---|
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. | 58 | −1.017 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 96.721 | +0.756 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 40 | +0.646 |
| 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.984 | −0.57 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.047 | +0.488 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 59.941 | +0.428 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
Intercept 0.07 + feature contributions = 1.2 (log-odds).
Score = sigmoid(1.2) = 0.769.
| Score | 0.727 |
|---|
| Score | 12 |
|---|
Run 1
This interface is highly readable and well-structured. The code organization is logical, with method declarations grouped into sections (adjacent nodes, incident edges, edge operations) and separated by whitespace. Nesting is minimal - only the class/interface declaration and method bodies are nested, making the code flat and easy to scan. Intent is crystal clear through descriptive method names and purposeful Javadoc comments that explain each method's behavior and edge cases. The code length is concise - no unnecessary boilerplate or redundant annotations. Action granularity is appropriate for an interface, with each method declaration on its own line. Reading flow is natural, moving from basic accessor methods to more complex edge operations in a progressive manner. The only minor deduction is for the slightly verbose Javadoc on some methods, but this actually enhances understanding rather than hindering readability. Overall, this is exceptionally clean, well-documented Java code.
Run 2
The code is highly readable. It defines a clean interface named NetworkConnections with clear Javadoc comments explaining each method's purpose. The structure is logical, grouping related methods for adjacency, predecessors/successors, and incident edges. Nesting is non-existent; methods are flat and concise. Each method performs a single, well-defined action. Annotations (@Nullable, @CanIgnoreReturnValue) add clarity without clutter. Parameter names are descriptive, and the generic type parameters are documented. Minor issues include slightly verbose JavaDocs for very simple methods, but this is consistent with library documentation standards. Overall, the code is well-organized, easy to follow, and adheres to strong readability principles.
Run 3
This code is highly readable. It's a clean, well-documented interface with a logical structure: simple getter methods grouped first, followed by mutation methods. The method names clearly express intent (e.g., adjacentNodes, removeInEdge, addOutEdge). The nesting is completely flat, with no control flow to complicate reading. Each method declaration is concise, and documentation is focused and informative, particularly noting edge cases like self-loops and parallel edges. While the interface is somewhat long due to many methods, each is necessary and follows a consistent pattern. The use of @CanIgnoreReturnValue and @Nullable annotations enhances clarity. Reading flow is natural, moving from basic queries to more complex operations. Minor deductions only for slight verbosity in comments, but overall this is exemplary interface design.
Run 1
Code Structure: The interface logically groups node queries, edge queries, and mutation methods. Nesting: There is no nested control flow, making the declarations easy to scan. Clarity of intent: Descriptive method names, generic types, and focused documentation clearly communicate purpose; the isSelfLoop parameter on addInEdge could use explicit documentation. Code length: The interface is concise, with comments adding useful context rather than repetition. Action granularity: Each method declaration occupies its own line, and annotations are clearly associated with their methods. Reading flow: The progression from queries to removals and additions is natural, with consistent spacing and formatting. Minor improvements would include documenting the initial query methods' contract details and separating the package declaration from imports.
Run 2
Code Structure: The interface logically groups node queries, edge queries, removals, and additions. Nesting: Flat method declarations introduce no nested control flow. Clarity of intent: Descriptive method names and focused Javadoc explain operations, directionality, and special cases; the undocumented basic queries and addInEdge's isSelfLoop parameter leave minor gaps. Code length: Concise declarations and relevant documentation avoid unnecessary verbosity. Action granularity: Each declaration occupies its own line and represents a single operation. Reading flow: Consistent formatting and query-before-mutation ordering make the interface easy to scan, though spacing between the package and imports would slightly improve visual separation.
Run 3
Code Structure: The interface logically groups node queries, edge queries, and mutation methods. Nesting: Flat declarations with no nested control flow make scanning easy. Clarity of intent: Descriptive method names and focused Javadoc explain purpose, directionality, and special cases; the undocumented query methods and addInEdge's isSelfLoop parameter leave minor gaps. Code length: Concise signatures and useful documentation avoid unnecessary verbosity. Action granularity: Each declaration occupies its own line and represents a focused operation. Reading flow: Consistent spacing and progression from queries to removals and additions support natural reading, although separating the package declaration from imports would slightly improve presentation.