Sample
int-15189b0da9c1-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.999 | 0–1; higher is more readable |
| Scalabrino | 0.866 | 0–1; higher is more readable |
| Dorn | 0.793 | 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 | 6 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13.67 | 0–20; mean of three runs |
| BTTF | 0.62 | 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.653 | −6.98 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 206.716 | −6.822 |
Intercept 8.87 + feature contributions = 6.668 (log-odds).
Score = sigmoid(6.668) = 0.999.
| Score | 0.866 |
|---|
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.021 | +0.742 |
| 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.706 | −0.009 |
Intercept 0.07 + feature contributions = 1.345 (log-odds).
Score = sigmoid(1.345) = 0.793.
| Score | 0.297 |
|---|
| Score | 2 |
|---|
Run 1
The code is severely compromised by obfuscated method and parameter names ('a', 'b', 'c') that make the API impossible to understand without external context. While the overall structure is straightforward and the documentation is thorough, the naming completely destroys clarity of intent and reading flow. The comments reference method names like 'priorityQueueIndex(DefaultPriorityQueue, int)' that don't actually exist in the code, creating confusion. The nesting is non-existent (good), length is minimal (good), and action granularity is fine, but the single worst choice—obfuscated names—undermines every other quality. The interface itself is logically organized, but the reader cannot determine what any method does without guessing. This appears to be deliberately obfuscated or a result of automated renaming, making it effectively unreadable despite good documentation practices.
Run 2
The code is well-structured as an interface with clear Javadoc and logical organization, but several factors reduce readability. The method names 'a' and parameter names 'a', 'b', 'c' are meaningless, forcing readers to rely on documentation rather than self-documenting code. While the Javadoc explains intent, the naming convention contradicts standard Java practices. The nesting is flat and action granularity is fine, but the reading flow suffers from poorly named methods that obscure their purpose. The documentation references methods correctly but the placeholder-style naming suggests either obfuscation or incomplete refactoring, significantly impacting clarity. The code is concise but overly abbreviated, trading expressiveness for brevity.
Run 3
This code is extremely obfuscated, likely intentionally minified. Method names like 'a' and parameters 'a', 'b', 'c' completely obscure intent, making the interface impossible to understand without external documentation. While the structure is logically organized with clear Javadoc comments, the identifiers are meaningless. The code has minimal nesting, is concise, and has one action per line, but reading flow is severely damaged because every reference to 'a' is ambiguous. The comments describe what the methods should do, but the names don't reflect their purpose, creating a major disconnect. The Javadoc references methods like #priorityQueueIndex() that don't match the actual method signatures, further reducing clarity. For these reasons, readability is critically low despite good structural organization.
Run 1
Code Structure: The interface is logically organized, with a constant followed by getter and setter declarations. Nesting: Completely flat and easy to scan. Clarity of intent: Documentation explains the queue-index contract, but method names 'a' and parameters 'a', 'b', and 'c' obscure meaning. Javadoc links reference nonexistent priorityQueueIndex methods, and @param names do not match the setter signature, reducing trust in the documentation. Code length: Short and appropriately scoped, although comments occupy most of the snippet. Action granularity: Each declaration is on its own line, with no combined actions. Reading flow: The constant-to-getter-to-setter sequence is natural, but inconsistent naming between documentation and declarations interrupts understanding.
Run 2
Code Structure: The interface logically groups a sentinel constant and two related methods. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: Documentation explains the queue-index contract, but method names 'a' and parameter names 'a', 'b', and 'c' obscure intent. Javadoc references priorityQueueIndex methods that are not declared, and @param names do not match the actual parameters, undermining documentation reliability. Code length: The implementation is concise; documentation is proportionate to the contract. Action granularity: Each declaration occupies its own line, with no combined actions. Reading flow: The constant followed by getter-like and setter-like methods forms a natural progression, but readers must reconcile meaningful documentation with opaque identifiers.
Run 3
Code Structure: The interface logically groups a sentinel constant and two queue-state operations. Nesting: There is no control-flow nesting, making the declarations easy to scan. Clarity of intent: The class documentation and constant name explain the purpose, but overloaded methods named 'a' and parameters named 'a', 'b', and 'c' obscure the getter/setter roles. Javadoc links reference nonexistent priorityQueueIndex methods, and @param names do not match the declaration, further reducing clarity. Code length: The interface is concise, with mostly useful documentation. Action granularity: Each declaration occupies its own line and represents one operation. Reading flow: Formatting and declaration order are natural, but readers must reconcile descriptive documentation with ambiguous identifiers and stale references.