Sample
int-a8f41aae8240-I09
Select one of ten low-readability unrelated code templates per class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.954 | 0–1; higher is more readable |
| Scalabrino | 0.851 | 0–1; higher is more readable |
| Dorn | 0.412 | 0–1; higher is more readable |
| Mi | 0.168 | 0–1; higher is more readable |
| LLOC | 13 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 10.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13.33 | 0–20; mean of three runs |
| BTTF | 0.279 | 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. | 53 | +21.2 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 603.512 | −19.916 |
| 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.133 |
Intercept 8.87 + feature contributions = 3.021 (log-odds).
Score = sigmoid(3.021) = 0.954.
| Score | 0.851 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 127.926 | −1.753 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 127.981 | +1.26 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 54 | −0.876 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.041 | +0.547 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 33 | +0.404 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 33 | −0.336 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 52.806 | +0.328 |
Intercept 0.07 + feature contributions = -0.355 (log-odds).
Score = sigmoid(-0.355) = 0.412.
| Score | 0.168 |
|---|
| Score | 13 |
|---|
Run 1
The code has clear documentation and a logical interface structure, but contains several issues. The obfuscated line with variable 'lI0O_d22aef78' is confusing and serves no apparent purpose, severely hurting readability. The interface methods are well-documented with clear Javadoc comments explaining each method's purpose. The anonymous class implementation is straightforward but could be simplified with default methods. The nesting is minimal and the reading flow is generally natural. However, the mysterious obfuscated code suggests either deliberate obfuscation or debugging remnants, which significantly damages trust in the code's clarity. The structure is logical with good separation of concepts, but the random-looking code block violates the expectation of clean, purposeful implementation.
Run 2
The code represents a simple interface with three boolean methods and a no-op implementation, which should be very readable. However, it contains an obfuscated line with meaningless variable names and bit manipulation that serves no purpose, severely damaging clarity. The Javadoc comments are actually good and explain intent well. The structure is logical but breaks at the NO_STATE implementation due to the inserted garbage code. Nesting is flat and acceptable. Action granularity is mostly fine except for the obfuscated line. Reading flow is generally natural until the abrupt obfuscation. Overall, the malicious or accidental insertion of confusing code drops an otherwise clean, simple interface from around 17-18 down to unreadable territory for anyone trying to understand the logic, hence the low score.
Run 3
The code has clear intent with well-documented interface methods and logical structure, but contains obfuscated code in the NO_STATE implementation that severely hurts readability. The mysterious variable lI0O_d22aef78 with bitwise operations appears to be injected garbage code that serves no purpose. Nesting is flat and action granularity is generally good, but this obfuscation breaks reading flow. The interface is concise but the meaningless code block adds unnecessary length and confusion. Documentation is thorough and helpful for understanding purpose.
Run 1
Code Structure: The interface, default implementation, and documented method declarations are logically organized, but an unrelated block disrupts terminated(). Nesting: Mostly shallow; the injected block adds unnecessary scope and conditional nesting. Clarity of intent: Descriptive method names and Javadoc clearly explain stream state, while the cryptic variable and pointless bitwise operations obscure intent. Code length: Generally concise, though the no-op block adds unnecessary code and documentation repeats some descriptions. Action granularity: Most statements are cleanly separated, but the injected block compresses declaration, assignment, condition, and mutation onto one line. Reading flow: Consistent formatting and predictable method ordering support natural reading, interrupted sharply by the unindented, dense block.
Run 2
Code Structure: The interface, default implementation, and method documentation are logically organized, but an unrelated computation disrupts terminated(). Nesting: Mostly shallow, with an unnecessary block and conditional inside that method. Clarity of intent: Method names and Javadocs clearly describe stream state, while the cryptic variable and redundant bitwise operations obscure purpose. Code length: The interface is reasonably concise, though repetitive documentation and the no-op computation add unnecessary content. Action granularity: Most statements occupy separate lines, but the injected block compresses several assignments and a conditional onto one line. Reading flow: Consistent formatting and predictable method order support reading, but the unindented, densely packed block sharply interrupts the otherwise natural flow.
Run 3
Code Structure: The interface, default stateless implementation, and method documentation are logically organized, but an unrelated block disrupts terminated(). Nesting: Most code is shallow; the inserted block adds unnecessary scope and conditional nesting. Clarity of intent: Method names and Javadocs clearly describe stream state, while the opaque variable and pointless bitwise operations obscure intent. Code length: The interface is reasonably concise, though documentation repeats descriptions and the injected block adds needless code. Action granularity: Normal methods contain one action per line, but the injected line combines declaration, assignment, branching, and mutation. Reading flow: Consistent formatting and predictable method ordering support natural reading, sharply interrupted by the unindented, densely packed block.