Sample
int-4bef36b32e82-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.984 | 0–1; higher is more readable |
| Scalabrino | 0.944 | 0–1; higher is more readable |
| Dorn | 0.805 | 0–1; higher is more readable |
| Mi | 0.791 | 0–1; higher is more readable |
| LLOC | 5 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18 | 0–20; mean of three runs |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs |
| BTTF | 0.415 | 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. | 36 | +14.4 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 375 | −12.375 |
| 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.503 | −6.755 |
Intercept 8.87 + feature contributions = 4.14 (log-odds).
Score = sigmoid(4.14) = 0.984.
| Score | 0.944 |
|---|
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. | 70.946 | +0.66 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.056 | +0.4 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 70.946 | +0.34 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 26 | −0.176 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 26 | +0.162 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 33 | −0.132 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 35.778 | +0.09 |
Intercept 0.07 + feature contributions = 1.416 (log-odds).
Score = sigmoid(1.416) = 0.805.
| Score | 0.791 |
|---|
| Score | 5 |
|---|
Run 1
The code is highly readable due to its clear structure, flat hierarchy, and conventional Java exception pattern. It follows standard practices: package declaration, imports, JavaDoc, and serialVersionUID. The class extends CodecException logically, and each constructor is concise, delegating to the superclass appropriately. Nesting is minimal (single class level). Intent is unambiguous—this is a specific encoder-related exception. Code length is minimal and appropriate for the purpose. Action granularity is effectively one operation per constructor. Reading flow is natural, with JavaDoc preceding each constructor. The only minor deduction is the use of generic parameter names (a, b, c, d) in constructors, which could be more descriptive (e.g., message, cause), slightly reducing clarity. Overall, it exemplifies clean, maintainable code.
Run 2
The code is highly readable. It follows a simple, logical structure for a custom exception class, with clear separation of constructors. There is no nesting, and each action is on its own line. The class and constructor purposes are obvious despite repetitive placeholder Javadocs. The code is concise and avoids unnecessary complexity. The only minor drawback is the uninformative parameter names (a, b, c, d) and generic Javadoc comments, which slightly reduce clarity but do not significantly impact overall readability.
Run 3
The code is highly readable. It has a clear, logical structure as a simple exception class with straightforward constructors, and there is no nesting. The intent is unambiguous, with each constructor delegating to the superclass. The code is concise, with minimal boilerplate, and each action (constructor declaration) is separated onto its own line. The reading flow is natural and consistent. The only minor deduction is for generic parameter names (a, b, c, d) in the constructors, which slightly reduce clarity compared to descriptive names like 'message' or 'cause'. Overall, it is a well-formatted and easily understandable piece of code.
Run 1
Code Structure: Well-organized exception class with a serialization identifier followed by constructor overloads. Nesting: Minimal, with no nested control flow. Clarity of intent: The class name, inheritance, and class-level documentation clearly establish its purpose, but parameter names a, b, c, and d obscure message and cause roles. Code length: Concise overall, though repeated generic constructor comments add little value. Action granularity: Each constructor performs at most one action, clearly separated onto its own line. Reading flow: Consistent formatting and predictable constructor organization make the code easy to scan.
Run 2
Code Structure: Clean, conventional exception class with logically grouped constructors. Nesting: Minimal, with no nested control flow. Clarity of intent: The class name, inheritance, and class documentation clearly convey its purpose, but parameter names a, b, c, and d obscure their roles; message and cause would be clearer. Code length: Concise overall, though repeated generic constructor comments add little value. Action granularity: Each constructor performs a single delegation, with one action per line. Reading flow: Natural top-to-bottom organization and consistent formatting make the code easy to scan.
Run 3
Code Structure: Well-organized exception class with a serialization constant and logically grouped constructors. Nesting: Minimal; each constructor contains at most one statement. Clarity of intent: The class name, inheritance, and class-level documentation clearly convey its purpose, but parameter names a, b, c, and d obscure their roles; message and cause would be clearer. Code length: Concise and appropriate, although repeated generic constructor documentation adds little value. Action granularity: Each statement performs a single action on its own line. Reading flow: Consistent formatting and straightforward constructor delegation make the code easy to scan.