Sample
int-0277d21da9e4-I05
Rewrite eligible decimal integer literals in hexadecimal notation
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.001 | 0–1; higher is more readable |
| Scalabrino | 0.746 | 0–1; higher is more readable |
| Dorn | 0.714 | 0–1; higher is more readable |
| Mi | 0.351 | 0–1; higher is more readable |
| LLOC | 5 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.672 | 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. | 647.078 | −21.354 |
| 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.756 | −7.134 |
Intercept 8.87 + feature contributions = -7.217 (log-odds).
Score = sigmoid(-7.217) = 0.001.
| Score | 0.746 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 88.25 | +0.619 |
| 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. | 94 | −0.316 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.07 | +0.266 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 32 | −0.097 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 20 | −0.045 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 30.832 | +0.021 |
Intercept 0.07 + feature contributions = 0.916 (log-odds).
Score = sigmoid(0.916) = 0.714.
| Score | 0.351 |
|---|
| Score | 5 |
|---|
Run 1
The code is highly readable. Structure is logical: package, imports, Javadoc, class definition, single static factory method. Nesting is minimal—only a lambda within a lambda, but both are simple. Clarity of intent is strong due to clear naming ('asynchronous', 'listener', 'executor') and comprehensive Javadoc. Code length is concise and appropriate, with no redundant boilerplate. Action granularity is mostly one action per line; the lambda bodies are compact but still understandable. Reading flow is natural: validation first, then return of the composed listener. Minor deductions: the static import is used correctly, and the inner lambda could arguably be extracted for absolute clarity, but current form is acceptable. Overall, this is exemplary Java library code.
Run 2
The code is highly readable. Structure is clean: a final utility class with a private constructor and a single static factory method. Nesting is minimal, using a lambda and method reference to avoid deep indentation. Intent is clear from the class Javadoc, method Javadoc, and parameter validation. Code length is concise—no unnecessary boilerplate. Action granularity is appropriate, with null checks and the return statement each on separate lines. Reading flow is natural: validation then behavior. The only minor deduction is that the lambda's asynchronous execution could be slightly more explicit, but overall it is very well-written.
Run 3
The code is exceptionally readable. It has a clear, logical structure with a single static factory method, minimal nesting, and concise implementation. The purpose is unambiguous: it creates an asynchronous removal listener. Each action (validation, lambda construction, executor call) is cleanly separated. The reading flow is natural, enhanced by clear Javadoc and meaningful parameter names. The only minor deduction is that the nested lambda could slightly reduce clarity for readers unfamiliar with functional syntax, but overall this is near-exemplary code.
Run 1
Code Structure: A well-organized utility class with a private constructor and one focused factory method. Nesting: Minimal; the nested lambdas are shallow and easy to follow. Clarity of intent: Descriptive names and Javadoc clearly explain the asynchronous listener wrapper, although 'eviction notifications' is slightly narrower than removal notifications. Code length: Concise, with no unnecessary implementation detail. Action granularity: Each null check occupies its own line, and the return expression performs one coherent wrapping operation. Reading flow: Documentation, argument validation, and listener construction follow a natural sequence. A blank line between the package declaration and imports would slightly improve visual organization.
Run 2
Code Structure: A well-organized utility class with a private constructor and one focused factory method. Nesting: Minimal; the nested lambdas are shallow and easy to follow. Clarity of intent: Descriptive names, documentation, and explicit null checks clearly communicate asynchronous notification handling. Code length: Concise, with no unnecessary implementation logic. Action granularity: Each validation occupies its own line, while the compact return expression cleanly expresses task submission and callback execution. Reading flow: Natural progression from documentation and signature through validation to listener creation. Minor readability drawbacks are the tightly packed package/import declarations and the modest cognitive overhead of nested lambdas.
Run 3
Code Structure: A focused utility class with a private constructor and one logically organized factory method. Nesting: Minimal; the nested lambdas are shallow and easy to follow. Clarity of intent: Descriptive names, documentation, and explicit null checks clearly communicate asynchronous listener delegation. Code length: Concise, with no unnecessary implementation or abstraction. Action granularity: Each validation occupies its own line, while the compact return expression naturally groups task submission and callback execution. Reading flow: Documentation, signature, validation, and return follow a predictable sequence. Minor drawbacks are the lack of spacing between package and imports and the slightly denser nested-lambda expression.