Sample
int-a6d83ced569a-I09
Select one of ten low-readability unrelated code templates per class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.759 | 0–1; higher is more readable |
| Dorn | 0.101 | 0–1; higher is more readable |
| Mi | 0.171 | 0–1; higher is more readable |
| LLOC | 38 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 12 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14 | 0–20; mean of three runs |
| BTTF | 0.175 | 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. | 4068.314 | −134.254 |
| Source linesThe number of non-empty source lines. | 145 | +58 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5 | −7.499 |
Intercept 8.87 + feature contributions = -74.884 (log-odds).
Score = sigmoid(-74.884) = 0.
| Score | 0.759 |
|---|
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. | 145 | −4.098 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 95 | +2.549 |
| 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. | 144.966 | −2.475 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 95 | −1.759 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 144.877 | +1.615 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 144.986 | +1.535 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.058 | +0.375 |
Intercept 0.07 + feature contributions = -2.188 (log-odds).
Score = sigmoid(-2.188) = 0.101.
| Score | 0.171 |
|---|
| Score | 38 |
|---|
Run 1
The code is generally well-structured with clear class and method separation, good use of Javadoc, and mostly flat nesting. However, there is a suspicious line of obfuscated code `{int lI0O_fd22ed78=0,lI0O_7c2d73a9=0;while...}` inside selectMethods that serves no apparent purpose and severely harms readability. The bridge method resolution condition is complex and could be extracted for clarity. The selectInvocableMethod has nested try-catch blocks but remains understandable. Overall the code is maintainable and readable for experienced Java developers, but the obfuscated line is a major red flag.
Run 2
The code is generally well-structured with clear class-level documentation and logical method separation. However, there is a significant readability issue: an obfuscated, non-functional line with meaningless variable names is inserted at the start of the selectMethods method, breaking flow and intent. The main method's logic is reasonably flat but contains a complex multi-condition bridge method check that could be extracted for clarity. The selectInvocableMethod uses nested try-catch blocks, which adds depth, though it remains understandable. Javadocs are excellent and improve clarity of intent, but the odd inserted code and dense conditional reduce overall readability.
Run 3
The code structure is generally logical, with clear method separation and a clean class-level flow. However, readability is severely hindered by an unexpected obfuscated line (`int lI0O_fd22ed78...`) injected into the `selectMethods` method without purpose or comment. Nesting remains moderate—reflection loops and conditionals are not deeply indented—but the deep conditional chain for bridge method resolution is visually dense and hard to follow. Variables are reasonably named but the overall intent of the bridge method logic is unclear, especially without explanatory comments. Code length is acceptable but could be shortened by extracting methods. Action granularity is poor in the conditional block because several conditions and assignments are packed together. Reading flow is disrupted by the obfuscated line and a long catch handling block that hides control flow. The code is maintainable in principle but fails to consistently prioritize clarity and simplicity, hence a below-average readability score.
Run 1
Code Structure: Well-organized utility class with focused methods and a clearly defined callback interface, but an unrelated obfuscated block disrupts the main method. Nesting: Moderate nesting in method traversal and exception handling increases reading effort without becoming excessive. Clarity of intent: Descriptive names and comprehensive documentation explain the reflection logic; the meaningless variable names and redundant bitwise operations obscure intent locally. Code length: Most implementation code is appropriately concise, but the injected block adds unnecessary code. Action granularity: Most lines express one action, while the injected block compresses declarations, iteration, and mutations onto one line. Reading flow: Consistent formatting and logical progression generally support natural reading, interrupted by the unformatted block and a complex bridge-method condition.
Run 2
Code Structure: Well-organized utility class with focused methods and a clearly separated callback interface, but an unrelated no-op block disrupts cohesion. Nesting: Moderate nesting in the method-selection lambda and interface-search exception handling adds complexity without becoming excessive. Clarity of intent: Descriptive names and thorough Javadocs explain the main behavior; opaque variables and meaningless arithmetic in the injected block obscure intent, while the bridge-method condition requires careful reading. Code length: Mostly justified by reflection and proxy handling, though the no-op block is unnecessary. Action granularity: Most statements perform one action per line, but the injected block compresses declarations, iteration, and arithmetic onto one line. Reading flow: Generally natural progression from setup through selection to results, with consistent formatting elsewhere; the unindented block and lengthy conditional interrupt that flow.
Run 3
Code Structure: Methods are logically separated, with a focused callback interface, but an unrelated arithmetic block disrupts the organization. Nesting: Mostly moderate, though the loop/lambda/conditional combination and nested exception handling require extra attention. Clarity of intent: Descriptive names and thorough Javadoc explain method selection and proxy handling; the opaque variable names and pointless arithmetic obscure intent locally, while the bridge-method condition is complex. Code length: Generally appropriate for the functionality, but the arithmetic block adds unnecessary code. Action granularity: Most statements perform one action per line; the injected block compresses declarations, a loop, and several operations onto one line. Reading flow: The main algorithms progress naturally, supported by comments and early returns, but the unformatted block and long compound condition interrupt otherwise consistent flow.