Sample
int-50f53effa270-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.718 | 0–1; higher is more readable |
| Dorn | 0.112 | 0–1; higher is more readable |
| Mi | 0.13 | 0–1; higher is more readable |
| LLOC | 19 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 13.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14.33 | 0–20; mean of three runs |
| BTTF | 0.357 | 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. | 1595.381 | −52.648 |
| Source linesThe number of non-empty source lines. | 48 | +19.2 |
| 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.946 | −7.42 |
Intercept 8.87 + feature contributions = -31.997 (log-odds).
Score = sigmoid(-31.997) = 0.
| Score | 0.718 |
|---|
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. | 114 | −1.163 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 48 | +0.923 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 48 | −0.681 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 47 | −0.628 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 47.852 | +0.259 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.101 | −0.042 |
Intercept 0.07 + feature contributions = -2.066 (log-odds).
Score = sigmoid(-2.066) = 0.112.
| Score | 0.13 |
|---|
| Score | 19 |
|---|
Run 1
The code is generally structured logically with clear separation of setup, teardown, and benchmark methods. However, there are notable readability issues. The teardown method contains an obfuscated line with a meaningless variable name and a switch statement that serves no functional purpose, significantly hurting clarity. The nesting is mostly flat, which is good. The intent of the benchmark methods is clear, but the presence of the obfuscated code creates ambiguity and confusion. The code length is appropriate and concise, with one action per line in most places. The reading flow is natural for a benchmark class, except for the obfuscated section which disrupts it. Overall, the code would be quite readable if not for the intentionally confusing teardown line, which appears to be obfuscated or auto-generated code that should be removed or clarified.
Run 2
The code is largely readable due to clear method names, straightforward setup/teardown, and flat structure with good action granularity. However, readability is significantly harmed by an obfuscated dead-code block in tearDown() containing a meaningless switch statement and obfuscated variable name, which is confusing and unnecessary. Additionally, the import order mixes project and external packages without clear grouping, and the benchmark methods are slightly redundant. Structurally, the class follows a logical test setup, but the dead code disrupts the reading flow and clarity of intent.
Run 3
The code is mostly readable but contains a major issue: an obfuscated, meaningless statement in the tearDown method that severely hurts clarity and intent. The structure otherwise is logical with clear benchmarks and a clean setup, but the presence of that confusing switch statement breaks reading flow and violates the principle of clear intent. Nesting is minimal and actions are generally one per line. The code length is concise and appropriate for a benchmark. However, the suspicious code in tearDown makes the overall readability drop significantly. Without that block, the code would score around 17-18.
Run 1
Code Structure: The class logically separates setup, teardown, and benchmark methods, but teardown contains an unrelated obfuscated block. Nesting: Most methods are flat; the unnecessary block and switch introduce localized nesting. Clarity of intent: Descriptive method names and JMH annotations clearly convey benchmark purposes, while the cryptic variable and redundant bitwise operations obscure teardown intent. Code length: The benchmark methods are concise, but the no-op switch adds unnecessary code. Action granularity: Most statements perform one clear action; the injected block compresses declaration, branching, assignments, and control flow onto one line. Reading flow: The overall lifecycle and paired benchmarks read naturally, but the unindented obfuscated line sharply interrupts the flow.
Run 2
Code Structure: Fields, setup, teardown, and benchmark methods are logically organized, but teardown contains unrelated obfuscated code. Nesting: Most methods are flat; the unnecessary block and switch introduce localized nesting. Clarity of intent: Descriptive method names and JMH annotations clearly convey the benchmark purpose, while the cryptic variable and redundant bitwise operations obscure teardown. Code length: The benchmark methods are concise, but the no-op switch adds unnecessary length. Action granularity: Most statements occupy separate lines; the injected teardown block compresses declarations, branching, assignments, and breaks onto one line. Reading flow: The class otherwise reads naturally, with parallel benchmark methods supporting easy comparison, but the unindented obfuscated block sharply interrupts that flow.
Run 3
Code Structure: Setup, teardown, and benchmark methods are logically separated, but teardown contains an unrelated obfuscated block. Nesting: Most code is flat; the unnecessary block and switch introduce localized nesting. Clarity of intent: Descriptive method names and JMH annotations clearly convey the benchmark purpose, while the cryptic variable and redundant bitwise operations obscure teardown. Code length: Benchmark methods are concise, but the no-op switch adds unnecessary code. Action granularity: Most statements occupy separate lines; the obfuscated block compresses declarations, branching, assignments, and breaks into one line. Reading flow: The consistent benchmark pairs read naturally, but the unindented teardown block abruptly disrupts formatting and comprehension.