Sample
int-3dad940baeef-I11
Split eligible integer literals into pairs of short-named intermediate variables
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 1 | 0–1; higher is more readable |
| Scalabrino | 0.928 | 0–1; higher is more readable |
| Dorn | 0.581 | 0–1; higher is more readable |
| Mi | 0.226 | 0–1; higher is more readable |
| LLOC | 13 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.717 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 77 | +30.8 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 529.661 | −17.479 |
| 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.253 | −6.38 |
Intercept 8.87 + feature contributions = 15.811 (log-odds).
Score = sigmoid(15.811) = 1.
| Score | 0.928 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 77 | −1.69 |
| 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. | 118.962 | −1.374 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 119 | +1.116 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.014 | +0.807 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 76.842 | +0.664 |
| 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 |
Intercept 0.07 + feature contributions = 0.326 (log-odds).
Score = sigmoid(0.326) = 0.581.
| Score | 0.226 |
|---|
| Score | 13 |
|---|
Run 1
The code is well-structured with a clear class purpose and logical organization. It uses flat nesting, minimal lines, and one action per line. Javadoc comments thoroughly explain parameters and return values, making intent unambiguous. The constructor and getters follow natural reading flow, and the use of Objects.requireNonNull is concise and clear. Minor deductions for verbose comments slightly increasing length, but overall the code is highly readable.
Run 2
The code is highly readable. It follows a clear, logical structure with fields, constructor, and accessors arranged conventionally. Nesting is minimal and flat. The intent is unambiguous, supported by thorough Javadoc comments that explain the purpose and nuance of each parameter. The code is concise, with no unnecessary repetition or dead code. Each action is on its own line, improving clarity. Reading flow is natural: fields, then constructor, then getters match typical Java style. Minor deductions: the verbose Javadoc slightly reduces skimmability, but overall the code is exemplary.
Run 3
The code is well-structured with clear separation of fields, constructor, and accessor methods. Nesting is minimal, as the class is flat and straightforward. Intent is explicit through thorough Javadoc comments, especially for the complex networkReceive parameter. Code length is appropriate for a simple data holder class, though the Javadocs are slightly verbose. Action granularity is good, with one assignment per line. Reading flow is natural: fields, constructor, then getters in logical order. Minor deductions for redundancy in Javadoc return descriptions and a missing blank line between the package and import statements.
Run 1
Code Structure: A logically organized context class with private final fields, a constructor, and straightforward accessors. Nesting: Flat methods with no nested control flow. Clarity of intent: Descriptive names and detailed documentation clearly explain re-authentication state, nullability, and timestamp semantics. Code length: Implementation is concise, though repeated Javadoc descriptions make the overall class longer than necessary. Action granularity: Each statement performs one clear assignment, validation, or return. Reading flow: The conventional fields–constructor–accessors layout is easy to follow; minor field/constructor ordering differences and verbose comments slightly interrupt an otherwise natural flow.
Run 2
Code Structure: Fields, constructor, and accessors are logically organized in a simple context class. Nesting: No nested control flow; methods are flat and easy to scan. Clarity of intent: Descriptive names, final fields, null validation, and detailed documentation clearly communicate purpose and constraints. Code length: Implementation is concise, although repeated Javadoc descriptions make the class longer than necessary. Action granularity: Each assignment and return occupies its own line, with no bundled operations. Reading flow: The progression from state to initialization to accessors is natural. Minor distractions include the long constructor signature and lack of a blank line between the package declaration and import.
Run 3
Code Structure: Fields, constructor, and accessors are logically organized in a simple context class. Nesting: No nested control flow; all methods are flat and easy to follow. Clarity of intent: Descriptive names and documentation clearly explain re-authentication state, nullability, and timing semantics. Code length: Implementation is concise, although repeated, lengthy Javadoc adds unnecessary reading overhead. Action granularity: Each statement performs one clear action, including explicit validation of the previous authenticator. Reading flow: The progression from state declaration to initialization and accessors is natural. Minor formatting issues, such as the missing blank line after the package declaration and a long constructor signature, slightly reduce polish.