Sample
int-8e80c8373853-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.686 | 0–1; higher is more readable |
| Dorn | 0.669 | 0–1; higher is more readable |
| Mi | 0.2 | 0–1; higher is more readable |
| LLOC | 7 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 5.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 12.33 | 0–20; mean of three runs |
| BTTF | 0.538 | 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. | 1616.52 | −53.345 |
| Source linesThe number of non-empty source lines. | 47 | +18.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.785 | −7.177 |
Intercept 8.87 + feature contributions = -32.852 (log-odds).
Score = sigmoid(-32.852) = 0.
| Score | 0.686 |
|---|
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. | 121.958 | −1.5 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 121.958 | +1.163 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 44 | +0.785 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 48 | −0.663 |
| 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. | 46.829 | +0.245 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.075 | +0.209 |
Intercept 0.07 + feature contributions = 0.706 (log-odds).
Score = sigmoid(0.706) = 0.669.
| Score | 0.2 |
|---|
| Score | 7 |
|---|
Run 1
The code structure is logical but severely undermined by extremely poor naming. Parameters like 'a', 'b', 'c', 'd', 'e', 'f', and 'g' obscure all intent, making the code unreadable despite its short length. Method names 'a', 'b', and 'c' are equally cryptic. Nesting is flat and action granularity is acceptable, but the reading flow is completely broken because the reader cannot discern what any method or parameter does without external context. The class purpose is stated in the Javadoc, but the implementation details are a black box. A developer would need to reverse-engineer the code to understand it, which defeats readability.
Run 2
The code has some structural organization (clear class hierarchy, logical method grouping), but suffers from poor naming conventions. Parameters like 'a', 'b', 'c', 'd', 'e', 'f', 'g' and methods 'a()', 'b()', 'c()' severely obscure intent. This forces readers to infer purpose from context or documentation. The 'b()' method contains a method overload with a null comment that helps somewhat, but the multi-line method call breaks reading flow. Nesting is minimal and action granularity is mostly reasonable. However, the constructor chains parameters without clear meaning at call sites. The unsupported operation methods are clear in intent but the surrounding naming destroys readability. Overall, the code requires significant mental overhead to understand, making it difficult to maintain despite the relatively simple logic.
Run 3
The code is short (just 4 methods) but it is NOT readable. Key issues: (1) the method names are totally meaningless: a(), b(), c(); (2) the parameter names are also meaningless: a, b, c, d, e, f, g; (3) the methods are declared but simply throw UnsupportedOperationException or delegate, which makes the class PURPOSE highly confusing and raises the question of why they are even here; (4) inside method b(), there are TWO calls called 'b' — one is the method itself and one is a call to an overloaded 'b' with 3 args, which creates confusion; (5) the unused argument 'd' in method a() implies design issues. The class inherits from a long class name, and comments are also sparse. Nesting is flat and line count is low, but this is only a skeleton with abstract methods. The overall code reads like decompiled or obfuscated code, which significantly hurts clarity and maintainability.
Run 1
Code Structure: A small, logically organized class with a constructor and clearly separated overrides. Nesting: Very flat, with no nested control flow. Clarity of intent: The descriptive class name, documentation, and exception messages help, but single-letter method and parameter names obscure responsibilities and data meaning. The overloaded b call also requires external context to understand. Code length: Concise, with little unnecessary code. Action granularity: Each statement performs one main action, and multiline argument lists aid scanning. Reading flow: The constructor-to-overrides progression is natural, but inconsistent indentation, tightly packed imports, and cryptic identifiers interrupt comprehension. Overall, the simple structure is readable, while poor naming substantially limits understanding.
Run 2
Code Structure: The class is logically organized into a constructor and three overrides, with no tangled logic. Nesting: Very shallow; there are no nested control structures. Clarity of intent: The descriptive class name, documentation, exception messages, and schema references provide context, but single-letter method and parameter names severely obscure individual responsibilities. Code length: Concise, with little unnecessary code. Action granularity: Each statement performs one clear action, and multiline calls separate arguments reasonably well. Reading flow: The constructor-to-overrides sequence is natural, but inconsistent indentation, tightly grouped imports, and the overloaded method named b make scanning and understanding delegation harder.
Run 3
Code Structure: The class is logically organized into a constructor and short overrides, with no tangled logic. Nesting: Minimal nesting makes it easy to scan. Clarity of intent: The class name, documentation, and exception messages convey the overall purpose, but single-letter method and parameter names obscure individual responsibilities. Code length: Concise, with little unnecessary code. Action granularity: Statements perform one action each, and multiline argument lists aid readability. Reading flow: The constructor-to-overrides progression is natural, but inconsistent indentation, tightly packed imports, and opaque names interrupt comprehension.