Sample
int-b22b2c04d181-I08
Select one of ten high-readability unrelated code templates per class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.606 | 0–1; higher is more readable |
| Dorn | 0.204 | 0–1; higher is more readable |
| Mi | 0.185 | 0–1; higher is more readable |
| LLOC | 37 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 12.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 15.33 | 0–20; mean of three runs |
| BTTF | 0.404 | 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. | 3985.205 | −131.512 |
| Source linesThe number of non-empty source lines. | 150 | +60 |
| 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.923 | −7.385 |
Intercept 8.87 + feature contributions = -70.026 (log-odds).
Score = sigmoid(-70.026) = 0.
| Score | 0.606 |
|---|
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. | 150 | −4.275 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 100 | +2.722 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 100 | −1.874 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 149.903 | +1.686 |
| 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. | 111.967 | −1.077 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 111.947 | +1.002 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.058 | +0.383 |
Intercept 0.07 + feature contributions = -1.364 (log-odds).
Score = sigmoid(-1.364) = 0.204.
| Score | 0.185 |
|---|
| Score | 37 |
|---|
Run 1
The code is generally well-structured and readable. It has a clear purpose, logical organization, and good use of generics. However, there are a few issues. A stray code block inside the private constructor (`{ boolean featureEnabled = false; ... }`) appears to be a copy-paste error and is confusing. The lambda in `selectMethods` has a complex conditional with multiple `||` conditions involving `bridgedMethod` and `metadataLookup.inspect`, which could be simplified or extracted for clarity. The nested try-catch blocks in `selectInvocableMethod` are acceptable but add slight nesting. Overall, the code could benefit from minor refactoring to improve intent clarity.
Run 2
The code has serious readability issues. The private constructor contains a nonsensical block with an unused loop and dead code, indicating clutter or an accidental insertion. The selectMethods method is overly complex: it uses a long conditional chain with repeated null-check logic, making the intent unclear. The nested loop in selectInvocableMethod has deep nesting (three levels including try-catch blocks), reducing readability. Several lines combine multiple actions (e.g., adding to handlerTypes while calling ClassUtils methods), violating the 'one action per line' guideline. The overall structure is logical at a high level but the implementation details feel tangled. Method names and Javadocs are good, but the code length is unnecessarily long in places, and reading flow is disrupted by the confusing conditional expressions and the dead code in the constructor.
Run 3
The code is largely well-structured with clear class-level documentation, logical method grouping, and reasonably flat nesting in core methods. However, it includes an anomalous, purposeless nested block inside the private constructor that adds confusion and unnecessary nesting. The selectMethods method contains a convoluted boolean condition with multiple redundant equality checks, reducing clarity. The selectInvocableMethod uses nested try-catch blocks, which, while necessary for the logic, slightly impairs readability. Javadocs are strong, and naming is clear, but the mentioned issues prevent a higher score.
Run 1
Code Structure: Well-organized utility methods and a clearly defined callback interface, but the constructor contains an unrelated, unused toggle loop. Nesting: Mostly manageable, though the method-selection lambda has nested conditionals and invocable-method lookup uses nested try/catch blocks. Clarity of intent: Descriptive names and thorough Javadoc explain the reflection logic; the compound bridge-method condition requires careful reading, and the constructor obscures intent. Code length: Generally appropriate for the functionality, with unnecessary constructor code and somewhat verbose documentation. Action granularity: Most lines perform a single action, although chained calls and the filter lambda compress several operations. Reading flow: Methods follow a coherent progression, with helpful comments and consistent formatting outside the poorly indented constructor block.
Run 2
Code Structure: Methods and the callback interface are logically organized, but the constructor contains an unrelated, poorly formatted toggle loop. Nesting: Mostly moderate, with additional complexity from the nested lambda conditions and try/catch inside a loop. Clarity of intent: Descriptive names and thorough Javadoc explain the reflection and proxy handling; the compound bridge-method condition requires careful reading, and the unused constructor logic has no clear purpose. Code length: Core methods are reasonably concise, though extensive documentation and pointless constructor code add bulk. Action granularity: Statements generally perform one action per line; the filter overload compresses adaptation and result extraction into one expression. Reading flow: Method order and consistent formatting support natural reading, interrupted by the constructor's indentation and dense conditional logic.
Run 3
Code Structure: Methods and the callback interface are logically organized, but the constructor contains an unrelated, unused toggle loop with inconsistent formatting. Nesting: Generally moderate; the method-selection lambda has nested conditionals, and invocable-method resolution uses nested try/catch blocks. Clarity of intent: Descriptive names and comprehensive Javadoc explain the API well, although the compound bridge-method condition requires careful interpretation and the constructor loop has no apparent purpose. Code length: Mostly appropriate for the functionality, with some verbosity from documentation and exception text; the constructor block is unnecessary. Action granularity: Statements generally perform one action per line, though the filter overload compresses selection, conversion, and key extraction into one expression. Reading flow: The main algorithms progress naturally, with useful early returns and comments, but the oddly indented constructor block and dense conditional expressions interrupt readability.