Sample
int-5e45914582a3-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.833 | 0–1; higher is more readable |
| Dorn | 0.341 | 0–1; higher is more readable |
| Mi | 0.529 | 0–1; higher is more readable |
| LLOC | 11 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 12.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 15 | 0–20; mean of three runs |
| BTTF | 0.644 | 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. | 918.933 | −30.325 |
| Source linesThe number of non-empty source lines. | 31 | +12.4 |
| 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.692 | −7.038 |
Intercept 8.87 + feature contributions = -16.093 (log-odds).
Score = sigmoid(-16.093) = 0.
| Score | 0.833 |
|---|
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 |
| 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. | 103.906 | −0.736 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 31 | +0.335 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.085 | +0.12 |
| 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. | 30.781 | +0.02 |
Intercept 0.07 + feature contributions = -0.658 (log-odds).
Score = sigmoid(-0.658) = 0.341.
| Score | 0.529 |
|---|
| Score | 11 |
|---|
Run 1
The code has a clear structure with a single class, constructor, and accessor methods, but it suffers from poor naming conventions. Parameters 'a', 'b', and 'c' obscure the intent, even though the fields 'partition' and 'isolationLevel' are named clearly. The unnatural accessor names 'a()' and 'b()' further reduce clarity and interrupt reading flow. Nesting is minimal and action granularity is good, with one action per line. The code is concise, but the ambiguous naming and odd method names make it less readable than it could be. Overall, the logical organization is sound, but clarity and intent suffer significantly due to non-descriptive identifiers and method names.
Run 2
The code has a clear class structure and short, readable methods, but it suffers from poor naming conventions. Parameter and method names like 'a', 'b', and 'c' obscure the intent, making the code harder to understand at a glance. The logical organization is good with a single responsibility per method and minimal nesting, but the unclear naming reduces the overall readability. The class is concise and follows a natural flow, but the use of non-descriptive names is a significant drawback. The constructor properly uses Objects.requireNonNull, which is a good practice for ensuring non-null inputs. However, the method a() returning partition and b() returning isolationLevel are ambiguous and would benefit from descriptive names. Overall, the code is readable once the intent is inferred, but it lacks the clarity that descriptive naming would provide.
Run 3
The code is logically structured and relatively flat, but parameter and method names (a, b, c) are unhelpful, obscuring intent. Action granularity is okay, but the override of toString as method c() is unclear. Class purpose is evident, but poor naming hurts readability overall.
Run 1
1. Code Structure: Fields, constructor, accessors, and overridden method are logically organized. 2. Nesting: Flat methods with no nested control flow make the code easy to scan. 3. Clarity of intent: The class name, field names, and CURRENT_LAG event type communicate purpose, but parameter and method names a, b, and c obscure meaning, especially the deadline-like constructor argument and string-formatting override. 4. Code length: Concise, with little unnecessary code. 5. Action granularity: Each statement performs a focused action; the string concatenation is straightforward. 6. Reading flow: Conventional class layout supports natural reading, though cryptic public method names and minimal separation between package and imports reduce readability.
Run 2
Code Structure: Logically organized into fields, constructor, accessors, and an override. Nesting: Flat, with no nested control flow. Clarity of intent: The class name, field names, and event type convey purpose, but constructor parameters a/b/c and methods a()/b()/c() obscure meaning, particularly the overridden string method. Code length: Concise, without unnecessary logic or duplication. Action granularity: Each statement performs one clear action; the string concatenation is cohesive. Reading flow: The declaration-to-construction-to-accessor sequence is natural, though cryptic method names and the lack of spacing between package and import sections reduce readability.
Run 3
Code Structure: Logically organized into fields, constructor, accessors, and an overridden method. Nesting: Flat and easy to follow, with no nested control flow. Clarity of intent: The class and field names communicate purpose, but parameters a, b, c and methods a(), b(), c() obscure meaning, particularly the long parameter and overridden method. Code length: Concise, with little unnecessary code. Action granularity: Each statement performs one clear action; the string concatenation remains manageable. Reading flow: Conventional Java ordering supports natural reading, though cryptic naming forces readers to infer behavior from types and implementations.