Sample
int-4b20af11f7d4-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 1 | 0–1; higher is more readable |
| Scalabrino | 0.948 | 0–1; higher is more readable |
| Dorn | 0.753 | 0–1; higher is more readable |
| Mi | 0.384 | 0–1; higher is more readable |
| LLOC | 1 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13.67 | 0–20; mean of three runs |
| BTTF | 0.819 | 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. | 51 | +20.4 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 379.567 | −12.526 |
| 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.9 | −7.35 |
Intercept 8.87 + feature contributions = 9.394 (log-odds).
Score = sigmoid(9.394) = 1.
| Score | 0.948 |
|---|
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. | 52 | −0.805 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.016 | +0.79 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 85.577 | +0.576 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 50.856 | +0.301 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 18 | −0.115 |
| 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. | 88.962 | −0.103 |
Intercept 0.07 + feature contributions = 1.113 (log-odds).
Score = sigmoid(1.113) = 0.753.
| Score | 0.384 |
|---|
| Score | 1 |
|---|
Run 1
The code is highly readable overall. The structure is logical, with clear package/import declarations, comprehensive Javadoc, and a well-documented interface. Nesting is flat, and intent is clear despite the poor method/parameter names (a, b, c, d) in the interface, which significantly reduces clarity. Code length is appropriate, with concise yet informative documentation. Action granularity is excellent, with one action per declaration. Reading flow is natural, following standard Java conventions. The only notable issue is the ambiguous parameter naming, which would hinder understanding for implementers without consulting the Javadoc.
Run 2
The code is well-structured and highly readable. The package and imports are clear, the Javadoc is thorough and informative, and the interface definition is simple and flat with no nesting. The intent of the interface is clearly communicated through its name and documentation. Action granularity and reading flow are excellent. However, the method signature and parameter names have been obfuscated, which significantly detracts from clarity and readability in the actual code block.
Run 3
The code is highly readable overall. It has a clear, logical structure with a well-documented interface and a single, coherent method signature. The Javadoc is thorough and explains intent, parameters, and exceptions clearly. Nesting is minimal, as it is an interface with only one method and a constant. Action granularity is clean — each parameter and declaration is distinct. The only significant detraction is the use of non-descriptive parameter names (`a`, `b`, `c`, `d`) in the method declaration, which hurts clarity compared to the documented names (`ps`, `paramIndex`, `sqlType`, `typeName`). This inconsistency makes the signature slightly ambiguous despite the documentation. Otherwise, the code is concise, not unnecessarily long, and follows a natural reading flow.
Run 1
Code Structure: Logically organized as a small interface with imports, a constant, and one method. Nesting: Minimal, with no nested control flow. Clarity of intent: Interface documentation explains the purpose, but the method name 'a' and parameters 'a', 'b', 'c', and 'd' obscure meaning. Documentation references 'setTypeValue' and parameter names that do not match the declaration, creating significant confusion. Code length: The implementation is concise, though documentation is relatively lengthy and occasionally repetitive. Action granularity: Declarations are clearly separated, with no multiple actions per line. Reading flow: Generally natural from interface purpose to constant to callback, but inconsistent naming and documentation interrupt comprehension.
Run 2
Code Structure: The interface is logically organized into imports, documentation, a constant, and a method declaration. Nesting: There is no nested control flow, making it easy to scan. Clarity of intent: The interface name and documentation explain its purpose, but the method name 'a' and parameters 'a', 'b', 'c', and 'd' obscure meaning. Documentation refers to 'setTypeValue' and descriptive parameter names that do not match the declaration, creating confusion. Code length: The implementation is concise; documentation is useful but somewhat repetitive. Action granularity: Each declaration is separate, with no bundled operations. Reading flow: The top-to-bottom organization is natural, but the mismatch between documentation and signature interrupts comprehension.
Run 3
Code Structure: The interface is logically organized into imports, documentation, a constant, and a single method. Nesting: There is no nested control flow, making it easy to scan. Clarity of intent: Class documentation explains the purpose well, but the method name 'a' and parameter names 'a', 'b', 'c', and 'd' obscure meaning. Documentation refers to 'setTypeValue' and named parameters that do not match the declaration, creating confusion. Code length: The implementation is concise; documentation is somewhat verbose but mostly useful. Action granularity: Each declaration is separate, with no combined actions. Reading flow: The top-to-bottom organization is natural, though inconsistent documentation and identifiers interrupt comprehension. Meaningful method and parameter names would substantially improve readability.