Sample
int-07d815b1f713-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.306 | 0–1; higher is more readable |
| Scalabrino | 0.983 | 0–1; higher is more readable |
| Dorn | 0.724 | 0–1; higher is more readable |
| Mi | 0.805 | 0–1; higher is more readable |
| LLOC | 6 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 8 | 0–20; mean of three runs |
| GPT-6.1 Sol | 15.67 | 0–20; mean of three runs |
| BTTF | 0.778 | 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. | 410.343 | −13.541 |
| Source linesThe number of non-empty source lines. | 27 | +10.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.631 | −6.946 |
Intercept 8.87 + feature contributions = -0.817 (log-odds).
Score = sigmoid(-0.817) = 0.306.
| Score | 0.983 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.049 | +0.469 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 58.071 | +0.133 |
| 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. | 89 | −0.104 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 28 | +0.045 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 26.744 | −0.036 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 21 | −0.011 |
Intercept 0.07 + feature contributions = 0.963 (log-odds).
Score = sigmoid(0.963) = 0.724.
| Score | 0.805 |
|---|
| Score | 6 |
|---|
Run 1
The code has some redeeming structural qualities: it follows a clear, flat organization, includes Javadocs, and demonstrates concise methods with one action per line. However, readability is severely undermined by poor naming. The method names 'a()' and parameter 'a' obscure the intent completely, despite the Javadocs explaining the 'validateOnly' flag. The field is well-named, but the public API fails to reflect purpose, forcing users to rely on documentation rather than self-documenting code. The logic is trivial, little nesting, and no unnecessary length, but the lack of clear intent in naming destroys clarity. If the methods were named 'validateOnly()' and 'validateOnly(boolean)', this would be highly readable.
Run 2
The code has a clear, logical class structure with proper package, imports, and Javadoc comments explaining purpose. It inherits from a base options class and follows a fluent builder pattern. However, the method names 'a()' and 'a(boolean a)' are ambiguous and severely reduce clarity of intent — they do not convey that they relate to the 'validateOnly' flag. While the code is flat, concise, and has one action per line, the cryptic naming forces readers to rely on documentation rather than the code itself. The reading flow is generally natural, but the parameter name 'a' and method name 'a' break readability. If renamed to 'validateOnly()' and 'validateOnly(boolean validateOnly)', the score would be significantly higher.
Run 3
The code has a clear class structure and simple, flat logic, but it is severely undermined by meaningless naming. The method names 'a' and parameter 'a' completely obscure the intent, making the code confusing and unreadable despite its otherwise minimal length. The Javadoc describes the behavior, but the identifiers fail to communicate purpose. The code length is concise, and actions are granular, but the reading flow is disrupted by having to cross-reference documentation just to understand what 'a' does. This is a classic case of structurally sound but semantically unreadable code.
Run 1
Code Structure: A logically organized options class with a field, getter, and fluent setter. Nesting: Minimal, with no nested control flow. Clarity of intent: The class name, validateOnly field, and documentation explain the purpose, but naming both methods and the setter parameter 'a' obscures the API's meaning. Documentation also refers to configs rather than quotas, slightly weakening precision. Code length: Short and focused, with no unnecessary complexity. Action granularity: Each statement performs one action on its own line. Reading flow: Natural field-to-getter-to-setter progression, though descriptive method names and spacing around imports would improve readability.
Run 2
Code Structure: The class is logically organized, with a field followed by its getter and fluent setter. Nesting: Methods are flat and contain no branching. Clarity of intent: The class name, validateOnly field, and documentation explain the purpose, but naming both methods 'a' and the parameter 'a' obscures their meaning. Code length: The implementation is concise without unnecessary logic. Action granularity: Each statement performs a single action on its own line. Reading flow: The field-to-getter-to-setter sequence is natural, although descriptive method and parameter names would make the code easier to read and use.
Run 3
Code Structure: The class is logically organized, with one field followed by a getter and fluent setter. Nesting: Methods are flat and easy to scan. Clarity of intent: The class name, validateOnly field, and documentation explain the purpose, but naming both methods and the setter parameter 'a' obscures their meaning and makes usage harder to understand. Code length: The implementation is concise without unnecessary logic. Action granularity: Each statement performs one action, and assignment and return are separated. Reading flow: The field-to-getter-to-setter sequence is natural, although missing spacing between the package and imports slightly reduces visual organization. Descriptive method and parameter names would substantially improve readability.