Sample
int-1819125354af-I10
Remove about 40% of line-break groups while retaining structure
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.55 | 0–1; higher is more readable |
| Dorn | 0.139 | 0–1; higher is more readable |
| Mi | 0.032 | 0–1; higher is more readable |
| LLOC | 36 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 3.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 11.67 | 0–20; mean of three runs |
| BTTF | 0.575 | 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. | 2903.683 | −95.822 |
| Source linesThe number of non-empty source lines. | 80 | +32 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5.007 | −7.511 |
Intercept 8.87 + feature contributions = -62.462 (log-odds).
Score = sigmoid(-62.462) = 0.
| Score | 0.55 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 236.988 | −6.373 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 236.988 | +3.019 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 81 | −1.832 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 73 | +1.788 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 79.849 | +0.706 |
| 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.056 | +0.397 |
Intercept 0.07 + feature contributions = -1.826 (log-odds).
Score = sigmoid(-1.826) = 0.139.
| Score | 0.032 |
|---|
| Score | 36 |
|---|
Run 1
The code has severe readability issues. The package and import statements are jumbled onto single lines, and method declarations are frequently crammed together with opening braces, annotations, and return statements on the same line. This violates action granularity and reading flow, forcing the reader to parse multiple logical units per line. Nesting is not deeply problematic, but the inconsistent formatting makes the structure hard to follow. While the class name and method names are clear, the intent is obscured by formatting chaos. The length is acceptable but not concise due to missing whitespace and line breaks. Overall, the code functions but reads as if auto-formatted by a minifier, not a human.
Run 2
The code suffers from severe formatting and structural issues. Multiple methods are crammed onto single lines, breaking the one-action-per-line principle. Braces are inconsistently placed, with opening braces sometimes on new lines and closing braces followed immediately by new method signatures. Import statements are disorganized and some are on the same line. The lack of whitespace between methods makes the class difficult to scan. Javadoc is present but minimal. While the logic of each method is simple (mostly throwing exceptions), the physical layout severely hampers readability and reading flow. Deeply inconsistent indentation further compounds these issues.
Run 3
The code is extremely difficult to read due to several severe issues. The import statements are jumbled, with multiple imports on single lines and inconsistent spacing. The class declares several fields but never initializes them, which is misleading. Most methods follow a simple getter/setter pattern, but the formatting is terrible — multiple methods are placed on the same line with no separation, making it nearly impossible to distinguish where one method ends and another begins. For example, getDefaultAsyncSendTimeout() and setAsyncSendTimeout() are concatenated on a single line. The connectToServer and addEndpoint methods throw UnsupportedOperationException, but the exception messages are often split awkwardly across lines. Additionally, there is no consistent indentation, line breaks are haphazard, and braces are inconsistently placed. While the class has a single clear purpose (mocking ServerContainer), the implementation completely disregards standard Java formatting conventions, making the code almost unreadable despite its simplicity. The lack of field initialization and the repetitive, poorly formatted exception-throwing methods further reduce clarity.
Run 1
Code Structure: Fields and methods are logically grouped by interface responsibilities, but inconsistent formatting obscures boundaries. Nesting: Methods are flat and simple, with no complex control flow. Clarity of intent: Descriptive names, class documentation, and explicit unsupported-operation messages clearly convey the mock's purpose. Code length: The implementation is reasonably concise; repeated exception messages are mostly justified by interface requirements. Action granularity: Several imports, annotations, method declarations, and closing braces share lines, making individual elements harder to distinguish. Reading flow: Irregular whitespace, compressed methods, and section comments attached to preceding code interrupt scanning. Overall, straightforward logic and clear naming preserve readability, but poor layout significantly reduces it.
Run 2
Code Structure: Fields and interface methods are logically grouped, but inconsistent formatting obscures method boundaries and section comments. Nesting: Very flat, with no nested control flow. Clarity of intent: Descriptive names, class documentation, straightforward accessors, and explicit unsupported-operation messages clearly communicate the mock's purpose. Code length: Reasonably concise for implementing the interface; repeated exception messages add some verbosity but remain useful. Action granularity: Several imports, annotations, method declarations, and statements share lines, making individual elements harder to distinguish. Reading flow: Irregular line breaks, spacing, and brace placement disrupt scanning, especially where one method ends and another begins. Overall, simple logic and clear naming preserve readability, but formatting significantly reduces it.
Run 3
Code Structure: Fields and methods are logically grouped by interface responsibilities, but inconsistent formatting obscures boundaries. Nesting: Very shallow, with no complex branching or loops. Clarity of intent: Descriptive names, class documentation, and explicit unsupported-operation messages clearly communicate the mock's purpose. Code length: Reasonably concise for an interface implementation; repetitive getters, setters, and exception methods are largely necessary. Action granularity: Several imports, annotations, method declarations, and statements share lines, making individual operations harder to distinguish. Reading flow: Irregular indentation, crowded method boundaries, and inconsistent line breaks repeatedly interrupt scanning. The underlying logic is straightforward, but presentation significantly reduces readability.