Sample

Scalabrio101

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.33
Lines22

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.9530–1; higher is more readable
98.0Δ 63.1
Scalabrino0.1110–1; higher is more readable
7.5Δ 27.4
Dorn00–1; higher is more readable
0.0Δ 34.9
Mi0.0060–1; higher is more readable
3.0Δ 31.9
LLOC10Logical lines; fewer is more readable
68.6Δ 33.7
DeepSeek V4 Pro11.330–20; mean of three runs
27.6Δ 7.3
GPT-6.1 Sol15.670–20; mean of three runs
27.1Δ 7.8
BTTF0.4780–1; higher is more readable
31.7Δ 3.3
Human3.331–5; original rating
34.9

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)
Source linesThe number of non-empty source lines.22+8.8
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.225.14−7.43
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.822−7.234

Intercept 8.87 + feature contributions = 3.007 (log-odds).
Score = sigmoid(3.007) = 0.953.

Score0.111

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.354.864−11.366
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
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.02+0.751
Indentation frequencyHow rapidly indentation changes from line to line.1−0.703
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.20.744−0.12
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.22−0.084

Intercept 0.07 + feature contributions = -11.254 (log-odds).
Score = sigmoid(-11.254) = 0.

Score0.006
Score10
Run 1

The test method has a clear single purpose (asserting no loss across SQL variants) and each assertion is isolated per line or block, which aids action granularity. However, readability suffers from extremely long, dense SQL strings that dominate the method and make it hard to scan or mentally compare cases. Some strings wrap in awkward ways due to length, and there is inconsistent indentation (some calls use hanging indents, others don't), which weakens code structure and reading flow. The embedded SQL is complex, but that is inherent to the test data; still, the lack of separation into named constants or helper methods reduces clarity of intent. Nesting is flat, which is positive, and there is no branching logic, but the method's sheer vertical and horizontal length makes it feel cluttered. Overall, it is functional but not especially readable for someone unfamiliar with the test cases.

Run 2

The code is generally readable but suffers from very long SQL string literals that hurt readability. The structure is logical—testing a single method with multiple inputs—and nesting is flat. However, clarity of intent is weakened by the lack of comments or named constants for the SQL cases. Code length is reasonable, but the long strings make it feel cluttered. Action granularity is good: one assertion per line, with clean indentation for wrapped lines. Reading flow is mostly natural, though the embedded SQL with complex joins and conditions forces the reader to parse large blocks of text. Overall, it's readable for a developer familiar with the domain, but not exceptionally clear.

Run 3

The code structure is a single test method with multiple similar assertions, which gives it some logical organization but also makes it cumbersome. Nesting is minimal (one method), which is positive. Clarity of intent is moderate: the method name 'testNoLoss' is vague, but the use of a helper method 'assertNoLoss' reveals the purpose. Code length is excessive due to extremely long SQL strings passed as arguments, severely reducing readability. Action granularity is mostly one action per line, but many lines contain very long strings that hide multiple logical clauses. Reading flow is disrupted by hard-to-scan SQL embedded in Java. Overall, the code is understandable at a high level but suffers from poor formatting and long, unbroken string literals.

Run 1

Code Structure: A single test method consistently groups SQL examples through the same assertion helper, though cases lack descriptive labels. Nesting: Java control flow is flat; nested SQL expressions and subqueries add some reading complexity. Clarity of intent: testNoLoss and assertNoLoss communicate the broad purpose, but do not specify what must be preserved or which feature each example tests. Code length: The method is reasonably concise, but several SQL literals are excessively long and difficult to scan. Action granularity: Each statement performs one assertion, with no unrelated actions combined. Reading flow: Repeated assertion calls provide a predictable flow from basic statements to more complex queries, but inconsistent SQL spacing and unbroken query lines hinder readability.

Run 2

Code Structure: A single focused test method organizes SQL cases as sequential assertions, though the cases lack descriptive grouping. Nesting: Java control flow is flat; nested SQL expressions add some reading complexity. Clarity of intent: testNoLoss and assertNoLoss communicate the general goal, but what must be preserved is not explicit without the helper implementation. Code length: The test is concise overall, but several very long SQL literals and repeated CASE expressions hinder scanning. Action granularity: Each statement performs one assertion, keeping actions clearly separated. Reading flow: The progression from simple insert, delete, and update statements to more complex queries is natural. Inconsistent SQL spacing and unbroken query lines reduce readability.

Run 3

Code Structure: A single, logically organized test method consistently applies the same assertion to several SQL examples. Nesting: Java code is flat, although some SQL strings contain nested expressions and subqueries. Clarity of intent: The test annotation and assertNoLoss calls communicate the general purpose, but what constitutes 'loss' and why each case matters are not explained. Code length: The test is reasonably concise, though repeated CASE expressions and very long SQL literals increase visual density. Action granularity: Each statement performs one assertion, with no unrelated actions combined. Reading flow: The repeated assertion pattern is easy to follow, but inconsistent SQL spacing, long unbroken strings, and unlabeled test cases make individual scenarios harder to scan.