Sample
int-3b48f93611c0-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.895 | 0–1; higher is more readable |
| Dorn | 0.796 | 0–1; higher is more readable |
| Mi | 0.618 | 0–1; higher is more readable |
| LLOC | 21 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 12 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13 | 0–20; mean of three runs |
| BTTF | 0.464 | 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. | 1541.726 | −50.877 |
| Source linesThe number of non-empty source lines. | 52 | +20.8 |
| 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.55 | −6.826 |
Intercept 8.87 + feature contributions = -28.033 (log-odds).
Score = sigmoid(-28.033) = 0.
| Score | 0.895 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 49 | +0.958 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 53 | −0.84 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 97 | +0.761 |
| 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. | 96.925 | −0.44 |
| 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. | 51.827 | +0.315 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.083 | +0.14 |
Intercept 0.07 + feature contributions = 1.36 (log-odds).
Score = sigmoid(1.36) = 0.796.
| Score | 0.618 |
|---|
| Score | 21 |
|---|
Run 1
The code structure is logical but significantly hampered by poor naming conventions. Parameters and local variables use single-letter or cryptic names ('a', 'b', 'c', 'd', 'e') that obscure intent. The method names are also single letters, making the code ambiguous. Nesting is minimal, and action granularity is reasonable, but reading flow suffers due to unclear naming. The code is concise, but this conciseness comes at the cost of understandability. The ternary expressions are compact but slightly reduce readability. Proper documentation exists for the class, but it does not compensate for the internal naming issues.
Run 2
The code has a clear purpose and basic structure, but suffers from several readability issues. The method and parameter names (a, b, c, d, e) are meaningless, forcing readers to infer intent from usage rather than names. The class-level Javadoc is helpful, but method-level documentation is absent. While the nesting is minimal and action granularity is reasonable, the conditional logging and exception creation create some duplication. The abbreviation of variable names and lack of descriptive method signatures significantly impacts clarity of intent. The overall flow is logical but the naming conventions make it harder to follow than necessary. With proper naming (e.g., handleFault, maybeThrow, firstException, setIgnore), this would be a solid 17-18.
Run 3
The code has a clear purpose and decent structure, but readability suffers from poor naming and unconventional exception handling. The class is logically organized with fields separated from methods. Nesting is minimal (one if-else with nested ternary). However, method and parameter names like 'a', 'b', 'c', 'd', 'e' are cryptic and obscure intent. The ternary expressions are slightly dense, making the exception creation harder to scan. Action granularity is mostly one action per line. The reading flow is disrupted by inconsistent naming and the fact that handleFault always returns the *first* exception rather than the current one, which is unusual but at least documented. Overall, the structure is sound, but clarity of intent is significantly reduced by poor naming choices.
Run 1
Code Structure: Fields, constructor, fault handling, and accessors are logically organized into small methods. Nesting: Shallow conditionals keep control flow easy to follow. Clarity of intent: The class documentation and descriptive fields explain the overall purpose, but method names a, b, c, d and parameter names a–e obscure individual operations. The documentation references handleFault, while the implementation is named a, creating confusion. Code length: Compact without substantial unnecessary code, though repeated null checks add minor redundancy. Action granularity: Most lines perform one action; the multiline exception-construction ternary combines conditional selection, string composition, and construction. Reading flow: The main method follows a natural log-create-store-return sequence, but cryptic identifiers and the wrapped ternary interrupt readability.
Run 2
Code Structure: Fields, constructor, fault handling, and accessors are logically organized into small methods. Nesting: Shallow conditionals keep control flow easy to follow. Clarity of intent: The class documentation and descriptive fields explain the overall purpose, but single-letter method names, parameters, and local variables obscure individual operations. The documentation references handleFault, whereas the implemented method is named a, adding confusion. Code length: Compact and mostly appropriate, although the multiline ternary requires extra attention. Action granularity: Statements generally perform one action per line; the exception construction combines message formatting and object creation but remains manageable. Reading flow: Conventional Java layout and consistent formatting help, while opaque identifiers and the split ternary interrupt otherwise natural reading.
Run 3
Code Structure: Fields, constructor, fault handling, and accessors are logically organized into small methods. Nesting: Shallow conditionals keep control flow easy to follow. Clarity of intent: The class documentation and descriptive field names help, but single-letter method names and parameters obscure operations and require readers to infer their meaning. The documentation references handleFault, whereas the implementation is named a, creating confusion. Code length: Compact and largely free of unnecessary code, though exception construction spans several lines. Action granularity: Statements generally perform one action per line; the multiline ternary combines selection and construction but remains manageable. Reading flow: The overall sequence is natural, but cryptic identifiers and the split exception-construction expression interrupt comprehension.