Sample

Scalabrio87

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.22
Lines38

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
53.3Δ 25.9
Scalabrino0.4790–1; higher is more readable
46.2Δ 18.8
Dorn0.5050–1; higher is more readable
57.3Δ 29.9
Mi0.0870–1; higher is more readable
31.7Δ 4.3
LLOC17Logical lines; fewer is more readable
35.7Δ 8.3
DeepSeek V4 Pro14.330–20; mean of three runs
54.3Δ 26.9
GPT-6.1 Sol160–20; mean of three runs
34.7Δ 7.3
BTTF0.5530–1; higher is more readable
56.8Δ 29.4
Human3.221–5; original rating
27.4

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

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.969.985−32.009
Source linesThe number of non-empty source lines.38+15.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.3.868−5.802

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

Score0.479

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.114.921−1.202
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.114.974+1.051
Indentation frequencyHow rapidly indentation changes from line to line.35+0.473
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.35−0.382
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.38−0.309
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.075+0.215
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.36.784+0.104

Intercept 0.07 + feature contributions = 0.019 (log-odds).
Score = sigmoid(0.019) = 0.505.

Score0.087
Score17
Run 1

The code is moderately readable. The structure is logical, with a local Verifier class encapsulating tree traversal and clear test comments. Nesting is moderate, with two nested while loops but no excessive depth. Intent is clear for domain experts familiar with HQL ASTs, though variable name 'queue' is misleading since it is used as a stack. Code length is reasonable. Action granularity is mostly one per line, though some conditions span multiple lines but remain understandable. Reading flow is natural, with setup, parsing, and assertions grouped. Main detractor is ambiguity in the traversal algorithm and naming (queue vs stack), which slightly hampers clarity.

Run 2

The code is moderately readable. It has a clear purpose (verifying NOT->EXISTS tree structure) and uses a local class to encapsulate the verification logic, which aids organization. However, readability is reduced by several factors: the method name 'testHHH1780' is opaque, the Verifier class uses a Stack named 'queue' (misleading naming), and the verification logic is nested within two while loops. Action granularity is mostly one action per line, but some conditions span multiple lines. The reading flow is interrupted by the inner class definition between test setup and assertions. The code is concise for what it does but could benefit from better naming and perhaps extracting the Verifier to a helper method. Overall, it's functional but not exemplary in clarity.

Run 3

The code is generally readable with clear intent and a logical structure. The use of a local class to verify the AST is well organized, and comments explain the purpose of each test phase. Nesting is moderate: the while loops and if statement are not excessively deep, but the inner 'while' with sibling traversal adds complexity. Action granularity is mostly one action per line, though the assertTrue calls are combined with the verification logic. The code is concise but could be improved by extracting the Verifier class to a separate method or using a more descriptive name than 'HHH1780'. Long string literals reduce readability slightly. Overall, the code is understandable but not exceptionally polished.

Run 1

Code Structure: The verifier and two clearly separated test cases are logically organized, though a local class adds some overhead. Nesting: Two loops and an if create moderate nesting, but the traversal remains manageable. Clarity of intent: Comments explain the NOT-to-EXISTS check and AND/OR cases; however, testHHH1780 is opaque, and naming a Stack 'queue' is misleading. Code length: Reasonably concise, with minor duplication between the two parsing/assertion sequences. Action granularity: Most lines perform one action, making operations easy to follow. Reading flow: The helper-first layout followed by parsing and assertions is natural, although the long query strings require careful reading.

Run 2

Code Structure: The local verifier cleanly separates AST traversal from the two test scenarios, though a separate helper method would simplify the test. Nesting: Two loops and a conditional create moderate nesting, compounded by the local class and method. Clarity of intent: Comments explain the NOT-to-EXISTS check and AND/OR cases, but testHHH1780 is opaque and naming a Stack 'queue' is misleading. Code length: The implementation is reasonably concise; duplicated parsing and assertions are minor and make both scenarios explicit. Action granularity: Most lines perform one action, with only the annotation and method declaration sharing a line. Reading flow: The helper followed by setup-and-assert scenarios is logical, although long query strings and the embedded class slightly interrupt scanning.

Run 3

Code Structure: The local verifier separates AST traversal from the two clearly grouped test cases, although a reusable helper method would simplify the test. Nesting: Two loops and an if create moderate nesting, but the early return keeps control flow manageable. Clarity of intent: Comments explain the NOT-to-EXISTS check and AND/OR cases; however, the issue-number test name is opaque, and naming a Stack 'queue' is misleading. Code length: Reasonably concise, with minor repetition between the two parsing and assertion blocks. Action granularity: Most lines perform one action; placing the annotation and method declaration on the same line slightly reduces visual separation. Reading flow: The traversal follows a predictable sequence, and the test cases read naturally, though the embedded class delays reaching the actual tests.