Sample
int-e8485988e5bc-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.926 | 0–1; higher is more readable |
| Dorn | 0.557 | 0–1; higher is more readable |
| Mi | 0.616 | 0–1; higher is more readable |
| LLOC | 11 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 7.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14.33 | 0–20; mean of three runs |
| BTTF | 0.586 | 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. | 981.33 | −32.384 |
| Source linesThe number of non-empty source lines. | 30 | +12 |
| 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.585 | −6.878 |
Intercept 8.87 + feature contributions = -18.392 (log-odds).
Score = sigmoid(-18.392) = 0.
| Score | 0.926 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| 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. | 78 | +0.361 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 29 | +0.266 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 31 | −0.061 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 29.823 | +0.007 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.098 | −0.006 |
Intercept 0.07 + feature contributions = 0.23 (log-odds).
Score = sigmoid(0.23) = 0.557.
| Score | 0.616 |
|---|
| Score | 11 |
|---|
Run 1
The code has a clear purpose, but readability is hampered by poor naming conventions. Method names 'a' and 'b' obscure intent, and parameters 'a' and 'b' are equally vague. The structure is mostly flat with low nesting, which is good, but the action granularity and flow are mixed. The try-catch block is concise but could clarify the error message with a specific prefix. The blank string return is acceptable but does not explain why it's allowed. The code length is reasonable, but renaming methods and parameters (e.g., 'validate' and 'toString') would dramatically improve clarity. The import list is tidy, and the class's single responsibility is clear, though the overall logic would benefit from more descriptive identifiers to convey intent without extra comments.
Run 2
The code is heavily obfuscated. Parameter and variable names (a, b, c, d) and method names (a, b) are entirely non-descriptive, making intent impossible to infer without deep analysis. The logic is otherwise structurally simple and flat, but the naming destroys clarity of intent and readability. Renaming elements to meaningful identifiers (e.g., validate(name, value), toString(), endpoint, exception) would make this a reasonably clear validator. As presented, it reads like decompiled or intentionally minified code, violating nearly every readability criterion except basic structure and length. Action granularity is acceptable, and nesting is minimal, but reading flow and clarity of intent are severely compromised by the meaningless identifiers.
Run 3
The code is terse and obfuscated due to poor naming (parameters a, b; local c; exception d), which obscures intent. The structure is logical but access modifiers and imports make it unclear if this is a test or production class. Nesting is minimal and action granularity is acceptable, but the generic parameter names and method name b() harm clarity and reading flow. The logic is concise but sacrifices readability.
Run 1
Code Structure: Well organized into a validation method and a description method, with imports and a descriptive class name. Nesting: Shallow conditionals and a simple try-catch; the early return keeps the flow flat. Clarity of intent: Type checking, blank-value handling, and endpoint validation are understandable, but single-letter method and variable names obscure roles and reduce readability. Code length: Concise without unnecessary logic or repetition. Action granularity: Each statement performs one clear action, with no crowded lines. Reading flow: Validation proceeds naturally from type checking to blank handling to endpoint parsing and exception wrapping. Missing spacing after the package declaration is a minor formatting issue.
Run 2
Code Structure: The validator is logically organized into type checking, blank-value handling, endpoint validation, and a descriptive string method. Nesting: Shallow conditionals and an early return keep the code easy to follow. Clarity of intent: The class name, exception messages, and library calls reveal the purpose, but method names a/b and variables a/b/c/d obscure roles and reduce readability substantially. Code length: Concise, with no unnecessary logic or repetition. Action granularity: Each statement performs a single clear action. Reading flow: Validation proceeds naturally from basic checks to parsing and error handling, though cryptic identifiers interrupt comprehension.
Run 3
Code Structure: The class is logically organized into validation and descriptive methods, with imports grouped at the top. Nesting: Shallow conditionals, an early return, and a simple try/catch keep complexity low. Clarity of intent: The class name, exception messages, and endpoint parser reveal the purpose, but method names a/b and variable names a/b/c/d obscure roles and reduce readability substantially. Code length: The implementation is concise without unnecessary logic. Action granularity: Each statement performs one action, making individual steps easy to follow. Reading flow: Validation proceeds naturally from type checking to blank handling to endpoint parsing, though cryptic identifiers interrupt comprehension.