Sample
JetBrains/e57
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 26.3Δ 26.3 |
| Scalabrino | 0.578 | 0–1; higher is more readable | 40.7Δ 40.7 |
| Dorn | 0.488 | 0–1; higher is more readable | 39.8Δ 39.8 |
| Mi | 0.683 | 0–1; higher is more readable | 94.9Δ 94.9 |
| LLOC | 18 | Logical lines; fewer is more readable | 29.7Δ 29.7 |
| DeepSeek V4 Pro | 6.33 | 0–20; mean of three runs | 1.7Δ 1.7 |
| GPT-6.1 Sol | 10 | 0–20; mean of three runs | 0.8Δ 0.8 |
| BTTF | 0.259 | 0–1; higher is more readable | 5.9Δ 5.9 |
| Human | 0.07 | 0–1; original rating | 0.0 |
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. | 906.266 | −29.907 |
| Source linesThe number of non-empty source lines. | 23 | +9.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.157 | −6.236 |
Intercept 8.87 + feature contributions = -18.073 (log-odds).
Score = sigmoid(-18.073) = 0.
| Score | 0.578 |
|---|
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. | 46.826 | +1.682 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.208 | −1.083 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 23 | −0.107 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 21.854 | −0.104 |
Intercept 0.07 + feature contributions = -0.049 (log-odds).
Score = sigmoid(-0.049) = 0.488.
| Score | 0.683 |
|---|
| Score | 18 |
|---|
Run 1
The code has severe readability issues. There is no meaningful indentation, making it difficult to distinguish code blocks and understand the structure. The class and main method are properly defined but the body of the loops and conditional statements are not visually separated. Variable names like 'a', 'i', 'k', and 'count' are ambiguous and do not convey intent, making the algorithm hard to understand. The logic appears to implement a lucky number sieve, but this is not documented. There are multiple actions jumbled together on each line, and the reading flow is unnatural. The code is short but not concise in a helpful way, as it sacrifices clarity for brevity. Nesting is shallow, but poor indentation negates this advantage. Overall, it requires considerable effort to parse and understand.
Run 2
The code is compact but lacks readability due to poor structure, unclear intent, and minimal separation of logic. Variable names like 'a' and 'k' are ambiguous, and the use of magic numbers (1000, 2, 1) obscures purpose. Nesting is shallow, but the second loop performs an action (setting array elements to zero) with unclear motivation. The action granularity is adequate, but the reading flow is disrupted by lack of comments or meaningful naming. Code length is not excessive, but the logic is opaque—likely an implementation of lucky numbers, but this is not evident without domain knowledge. Overall, the code is functional but difficult to maintain or understand without deeper analysis.
Run 3
The code is short and mostly one action per line, but its intent is highly ambiguous. Variable names like 'a' and 'k' do not convey meaning, and the logic for zeroing elements is opaque without external context. The class name 'LuckyNumbers' hints at the algorithm, but the code itself lacks comments or helper methods to clarify the sieve-like process. Nesting is flat, which is good, but the structure is procedural and not organized into logical functions. The second loop appears to nullify the work of the first in a non-obvious manner, making the flow hard to follow. Overall, the code requires significant external explanation to understand its purpose, reducing readability despite its brevity.
Run 1
Code Structure: Initialization, elimination, and output form logical phases, but uniform indentation obscures block boundaries. Nesting: The nested loops are moderate; the output loop adds two conditional levels that make it harder to scan. Clarity of intent: The class name suggests lucky-number generation, but generic names such as a and k, unexplained index arithmetic, and zero-as-marker logic obscure the algorithm. Code length: The code is short, though the count check and break are redundant because the array contains only 1000 elements. Action granularity: Each statement performs one action, with conventional loop headers. Reading flow: Execution follows a natural sequential progression, but inconsistent spacing, absent comments, and poor indentation hinder readability.
Run 2
Code Structure: Initialization, elimination, and output occur in logical sequence, but all logic is contained in main and uniform indentation obscures block boundaries. Nesting: Moderate nesting, reaching a loop with two nested conditionals, makes the output section harder to scan. Clarity of intent: The class name suggests lucky-number generation, but terse variables, unexplained elimination rules, and zero-as-marker usage leave the algorithm unclear. Code length: Compact overall, though the count limit and break appear unnecessary given the array size and elimination of elements. Action granularity: Statements generally perform one action per line; conventional loop headers are easy to recognize. Reading flow: Execution proceeds naturally, but absent blank lines, inconsistent spacing, and poor indentation make transitions and scope difficult to follow.
Run 3
Code Structure: Initialization, elimination, and output appear in a logical sequence, but everything resides in main and uniform indentation obscures block boundaries. Nesting: The elimination uses two nested loops, while output contains nested conditionals; manageable depth is made harder to follow by formatting. Clarity of intent: LuckyNumbers suggests a purpose, but names like a and k, unexplained elimination rules, and the redundant count limit make the algorithm unclear. Code length: Compact overall, though the counter and break add unnecessary code because the array contains only 1000 entries. Action granularity: Most lines contain a single statement; loop headers combine operations conventionally. Reading flow: Sequential phases support reading, but missing spacing, meaningful names, comments, and proper indentation interrupt comprehension.