Sample
int-c47a11e16dd1-I01
Remove line comments, block comments, and Javadoc
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.65 | 0–1; higher is more readable |
| Dorn | 0.295 | 0–1; higher is more readable |
| Mi | 0.172 | 0–1; higher is more readable |
| LLOC | 18 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 16.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs |
| BTTF | 0.531 | 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. | 2411.137 | −79.568 |
| Source linesThe number of non-empty source lines. | 71 | +28.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.936 | −7.404 |
Intercept 8.87 + feature contributions = -49.701 (log-odds).
Score = sigmoid(-49.701) = 0.
| Score | 0.65 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 71 | +1.719 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 72 | −1.513 |
| 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. | 119.972 | −1.416 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 70.876 | +0.581 |
| 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.087 | +0.093 |
Intercept 0.07 + feature contributions = -0.873 (log-odds).
Score = sigmoid(-0.873) = 0.295.
| Score | 0.172 |
|---|
| Score | 18 |
|---|
Run 1
The code is well-structured with clear separation of concerns, minimal nesting, and obvious intent. It uses a simple delegate pattern for two configuration types, reads naturally, and keeps actions concise. Minor deductions for a few small style issues like inconsistent indentation and mixed brace usage, but overall highly readable.
Run 2
The code is generally clear and well-structured, with logical delegation and straightforward configuration. It maintains flat nesting and simple control flow. However, minor readability issues exist: the imports are somewhat verbose, there are many blank lines before the class, a multi-line conditional could use braces for consistent style, and the delegate field is package-private without clear documentation. Overall the code is concise, with one action per line and a natural top-to-bottom flow, but it would benefit from slightly tighter formatting and explicit documentation for the delegate pattern.
Run 3
The code is well-structured with a clear separation of concerns. The class acts as a factory-like delegator, with configure() choosing a delegate based on protocol and forwarding calls. Nesting is minimal, mostly a single if-else. Intent is clear: it provides a delegating JWT retriever with a null-check safeguard in retrieve(). Line length and method length are reasonable, and actions are generally one per line. The reading flow is natural, from configuration to retrieval to closing. Minor issues include the many blank lines in imports, the missing braces on the if/else, and some JavaDoc or parameter validation could clarify preconditions, but these are trivial.
Run 1
Code Structure: Well-organized class with separate configuration, retrieval, cleanup, and accessor methods; unused imports and excessive blank lines add clutter. Nesting: Minimal nesting and straightforward conditionals make the code easy to follow, although omitted braces slightly reduce visual clarity. Clarity of intent: Descriptive class and method names clearly communicate delegation based on the endpoint protocol; the abbreviated variable 'cu' is less descriptive. Code length: Implementation is concise, but unnecessary whitespace and imports detract from compactness. Action granularity: Each statement performs a distinct action, with no compressed multi-statement lines. Reading flow: Configuration naturally establishes the delegate, retrieval checks initialization, and cleanup closes it; the large gap before the class interrupts an otherwise coherent flow.
Run 2
Code Structure: A well-organized delegating class separates configuration, retrieval, cleanup, and delegate access into small methods. Nesting: Control flow is shallow, with simple conditionals and no nested blocks. Clarity of intent: Descriptive class and method names make the delegation strategy clear, and the exception explains the required configuration step. The abbreviated variable 'cu' and unused formatter imports slightly reduce clarity. Code length: The implementation is concise, but excessive blank lines before the class add distracting visual length. Action granularity: Each statement generally performs one action, making execution easy to follow. Reading flow: Methods follow a natural lifecycle order, from configuration to retrieval and cleanup. Missing braces around conditionals and inconsistent import organization modestly weaken visual consistency.
Run 3
Code Structure: Well-organized delegation with separate configuration, retrieval, cleanup, and accessor methods; unused formatter imports add clutter. Nesting: Very shallow, with simple conditionals and no nested blocks. Clarity of intent: Descriptive class and method names make the delegate-selection logic clear, though 'cu' is less descriptive and the accessor's purpose is not explained. Code length: Implementation is concise, but excessive blank lines before the class unnecessarily lengthen the presentation. Action granularity: Statements generally perform one action per line; chained calls remain easy to understand. Reading flow: Methods follow a natural configure-retrieve-close sequence, and the initialization guard is clear. Missing braces around conditionals and inconsistent import grouping slightly reduce scanability.