Sample
int-ee3d971ce604-I02
Shorten method, parameter, and local names without collisions
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.999 | 0–1; higher is more readable |
| Scalabrino | 0.801 | 0–1; higher is more readable |
| Dorn | 0.794 | 0–1; higher is more readable |
| Mi | 0.297 | 0–1; higher is more readable |
| LLOC | 2 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14.67 | 0–20; mean of three runs |
| BTTF | 0.778 | 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. | 29 | +11.6 |
| 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.658 | −6.987 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 208.893 | −6.893 |
Intercept 8.87 + feature contributions = 6.59 (log-odds).
Score = sigmoid(6.59) = 0.999.
| Score | 0.801 |
|---|
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. | 118 | −1.333 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 114.167 | +1.038 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.02 | +0.746 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 13 | −0.287 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 13 | +0.123 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 28.697 | −0.009 |
Intercept 0.07 + feature contributions = 1.348 (log-odds).
Score = sigmoid(1.348) = 0.794.
| Score | 0.297 |
|---|
| Score | 2 |
|---|
Run 1
The code is highly readable due to its clear structure, minimal nesting, and focused purpose. The interface is logically organized with a constant, a getter method, and a setter method, all well-documented with Javadoc. The intent is unambiguous—each method explicitly describes its role in maintaining priority queue state. The code is concise, with no unnecessary lines or verbosity. Each action is on its own line, following standard formatting conventions. The reading flow is natural: constant declaration, then getter, then setter, with explanatory comments. The only minor issue is a slight parameter naming inconsistency ('que' vs 'que2'), which could mildly confuse readers, but this does not significantly detract from overall clarity.
Run 2
The code structure is clean and logical, defining a small, focused interface with clear constants and methods. Nesting is nonexistent. Intent is well-documented through Javadoc and parameter naming, though the parameter names 'que' and 'que2' are slightly ambiguous compared to 'queue'. Code length is concise and appropriate. Each method/constant is clearly separated, with one action per line. Reading flow is natural: constant, then getter, then setter, each with explanatory documentation. The main readability detractors are the inconsistent and unclear parameter names, which slightly weaken clarity and could confuse maintainers.
Run 3
The code is highly readable. It has a clear, logical structure as an interface with two related methods and a constant. Nesting is nonexistent, with a flat, straightforward layout. Intent is well-documented through Javadoc, including edge cases like undefined behavior on exceptions. The code is concise, avoiding unnecessary verbosity. Action granularity is appropriate, with each method declaration having a single clear purpose. Reading flow is natural, progressing from the constant to the getter, then to the setter. While the parameter name 'que' vs 'que2' and the generic wildcard could be slightly more descriptive, the overall clarity and structure remain strong.
Run 1
Code Structure: The small interface logically groups a sentinel constant and two related methods. Nesting: Flat, with no nested control flow. Clarity of intent: The interface documentation explains its role, but methods named priority conflict with documentation describing priorityQueueIndex, making their purpose ambiguous. Parameter names que, que2, and i are less descriptive than queue and index; the setter's @param queue also mismatches its actual parameter. Code length: Concise, with useful documentation rather than unnecessary implementation. Action granularity: Each declaration occupies its own line and represents a single responsibility. Reading flow: Natural ordering from interface purpose to constant, getter, and setter, but inconsistent naming and stale documentation interrupt comprehension.
Run 2
Code Structure: The interface logically groups a sentinel constant and two related accessor methods. Nesting: There is no nested control flow, making it easy to scan. Clarity of intent: The class documentation explains its role, but methods named priority appear to manage queue indices, and Javadoc links reference nonexistent priorityQueueIndex methods. Parameter names que and que2 are vague, while the setter documents queue instead of its actual parameter name. Code length: The interface is concise, with appropriately brief documentation. Action granularity: Each declaration occupies its own line and expresses a single responsibility. Reading flow: The constant followed by getter and setter creates a natural progression, but inconsistent naming and inaccurate documentation interrupt comprehension.
Run 3
Code Structure: The interface is logically organized, with a constant followed by getter and setter declarations. Nesting: There is no nesting, making it easy to scan. Clarity of intent: Class-level documentation explains the role, but method names suggest priority rather than queue index, and Javadoc references nonexistent priorityQueueIndex methods. Parameter names que and que2 are unclear, while the setter's @param queue does not match its signature. Code length: The code is concise and appropriately sized for an interface. Action granularity: Each declaration occupies its own line, with no combined actions. Reading flow: The constant-to-accessors sequence is natural, but inconsistent naming and stale documentation interrupt understanding and reduce confidence in the contract.