Sample

JetBrains/e18

Human rating uses the original dataset scale.

DatasetJetBrains
Human0.56
Lines37

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
22.0Δ 2.5
Scalabrino0.7820–1; higher is more readable
68.6Δ 44.1
Dorn0.5410–1; higher is more readable
55.1Δ 30.5
Mi0.6650–1; higher is more readable
90.7Δ 66.1
LLOC24Logical lines; fewer is more readable
11.4Δ 13.1
DeepSeek V4 Pro15.330–20; mean of three runs
47.0Δ 22.5
GPT-6.1 Sol170–20; mean of three runs
46.2Δ 21.6
BTTF0.2870–1; higher is more readable
7.6Δ 16.9
Human0.560–1; original rating
24.6

Views

Source code

public class DrawCubes { public static void main(String[] args) { int size = 1; while (size <= 7) { // draw top of cube for (int i = 0; i < size; i++) { System.out.print("█─"); } System.out.println("█"); // draw sides of cube for (int i = 0; i < size - 1; i++) { for (int j = size - 1; j > i; j--) { System.out.print(" "); } System.out.print("╱"); for (int j = 0; j < i; j++) { System.out.print(" "); } System.out.println("│"); } // draw bottom of cube System.out.print("█─"); for (int i = 0; i < size - 2; i++) { System.out.print("──"); } System.out.println("█"); // print blank line before next cube System.out.println(); size++; } } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.1135.562−37.474
Source linesThe number of non-empty source lines.37+14.8
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.3.653−5.48

Intercept 8.87 + feature contributions = -19.284 (log-odds).
Score = sigmoid(-19.284) = 0.

Score0.782

Feature contributions

FeatureValueContribution
(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.51.973+1.464
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.33−0.336
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.36−0.238
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.119−0.216
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.35.604+0.088
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.52+0.035

Intercept 0.07 + feature contributions = 0.163 (log-odds).
Score = sigmoid(0.163) = 0.541.

Score0.665
Score24
Run 1

The code is moderately readable. The structure is logical with clear comment blocks separating cube parts, and the main loop is straightforward. Nesting is acceptable but reaches three levels in the side-drawing loop, which slightly reduces clarity. Intent is mostly clear—draw cubes of increasing size—though the geometric logic for spacing and character placement is not immediately obvious without careful study. Code length is concise for what it accomplishes. Action granularity is generally good, with one concept per line, though some loop bodies combine print calls. Reading flow is natural: top, sides, bottom, spacing. The main weakness is the lack of helper methods or named constants, which would improve clarity, especially for the cube-drawing logic. Overall, it's understandable but not exceptionally clean.

Run 2

The code is reasonably readable. The structure is logical, with clear sections for the top, sides, and bottom of the cube, aided by concise comments. Nesting is moderate: the outer while loop spans 7 sizes, and the side-drawing loop has three nested levels, but each level is simple and purposeful. Intent is clear—to draw progressively larger 3D cubes using ASCII characters. Code length is concise without being cryptic. Action granularity is generally good, with one primary output per line or loop iteration, though some inner loop constructs combine increment/decrement logic with printing. Reading flow is natural: top down, consistent progression from top to bottom, then a blank separator. Minor deductions are for slightly compact inner loops and the special handling of size=1 (which results in a bare bottom line). Overall, the code is accessible to anyone familiar with nested loops and console output.

Run 3

The code has a clear structure with comments separating the top, sides, and bottom sections of each cube. The while loop and for loops are logically organized, with nesting levels staying manageable (maximum depth of 2). Variable names like 'size' and loop counters are short but clear in context. Action granularity is mostly one operation per line, and the reading flow follows the natural top-to-bottom drawing order. However, there are minor readability issues: the spacing logic for the diagonal sides is somewhat cryptic without explanation, and the magic number 7 could be named as a constant. The inconsistent use of print vs println for line breaks adds slight mental overhead. Overall, the code is straightforward for someone familiar with 2D ASCII art drawing, but the diagonal side-drawing loop could benefit from a brief comment explaining why 'size - 1' and 'i' are used for the spacing pattern.

Run 1

Code Structure: Drawing is logically organized into top, sides, bottom, and spacing sections, with helpful comments; extracting a drawCube method could improve separation. Nesting: Moderate nesting is necessary for drawing, though the loops inside the side loop require extra attention. Clarity of intent: The class name and comments communicate the purpose clearly, but spacing calculations and the fixed limit of 7 are not explained. Code length: Compact and mostly appropriate, without unnecessary complexity. Action granularity: Each statement performs a single action, making operations easy to follow. Reading flow: Consistent indentation and sequential drawing steps support natural reading; a for loop for size would express the iteration more directly.

Run 2

Code Structure: Logically organized into top, sides, bottom, and spacing sections, though extracting drawing methods could improve organization. Nesting: Moderate loop nesting is appropriate for drawing, with the side section requiring slightly more effort to follow. Clarity of intent: The class name and section comments clearly communicate the purpose; single-letter loop variables and size-offset calculations require some interpretation. Code length: Compact, with little unnecessary code. Action granularity: Each statement performs one action, making individual steps easy to inspect. Reading flow: Consistent indentation and sequential drawing stages provide a natural flow, although the spacing calculations and Unicode characters make the resulting geometry harder to visualize.

Run 3

Code Structure: Logically organized into clearly commented top, sides, bottom, and spacing sections, though extracting cube drawing into a method would improve separation. Nesting: Mostly shallow, with moderate nesting in the side-rendering loops. Clarity of intent: The class name, size variable, comments, and drawing characters communicate the purpose; spacing calculations and size offsets require some interpretation. Code length: Concise overall, with little unnecessary code; a for loop could express size progression more directly. Action granularity: Each statement performs a single action, making execution easy to follow. Reading flow: Consistent indentation and blank lines support a natural top-to-bottom rendering sequence.