Sample

Scalabrio178

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.22
Lines21

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
61.8Δ 34.4
Scalabrino0.2270–1; higher is more readable
19.1Δ 8.3
Dorn0.0940–1; higher is more readable
14.6Δ 12.8
Mi0.0470–1; higher is more readable
22.1Δ 5.3
LLOC10Logical lines; fewer is more readable
68.6Δ 41.2
DeepSeek V4 Pro14.670–20; mean of three runs
57.8Δ 30.4
GPT-6.1 Sol180–20; mean of three runs
83.7Δ 56.3
BTTF0.5420–1; higher is more readable
53.8Δ 26.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.647.856−21.379
Source linesThe number of non-empty source lines.21+8.4
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.486−6.728

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

Score0.227

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.952−1.204
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
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.21+0.293
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.069+0.271
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.19.871−0.132
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.21−0.061

Intercept 0.07 + feature contributions = -2.27 (log-odds).
Score = sigmoid(-2.27) = 0.094.

Score0.047
Score10
Run 1

The code is moderately readable but has several issues. Structure is mostly logical, with a clear test setup, action, and cleanup. Nesting is flat, which is good. However, clarity of intent is somewhat ambiguous: the test name is descriptive but the assertions rely on implementation details (e.g., DirectPropertyAccessor) rather than behavioral outcomes. Code length is acceptable but slightly verbose due to the chained factory method call for getting the tuplizer. Action granularity is generally one action per line, except the chained tuplizer retrieval which packs multiple accesses into one statement, reducing readability. Reading flow is disrupted by the chained call and the inconsistent indentation of the final `factory.close()` line. Overall, it is understandable but could be improved by extracting the tuplizer retrieval into a helper method or variable, and by better formatting the close statement.

Run 2

The code is well-structured with clear intent and logical organization. It demonstrates good action granularity with one primary operation per line, and the reading flow is natural - from configuration setup through tuplizer retrieval to assertions. Nesting is minimal and shallow, only occurring within assertion method calls. The method name is descriptive and the use of assertion messages clearly communicates expected behavior. Minor readability improvements could include separating the tuplizer retrieval chain into a variable for even clearer intent, and maintaining consistent indentation (the closing brace appears slightly misaligned). The code is concise and focused on testing access strategy behavior without unnecessary verbosity.

Run 3

The code is well-structured and readable. It follows a logical sequence: setup, execution, assertions, and cleanup. Nesting is minimal—only one level of assertTrue blocks, which slightly indents arguments but remains clear. Intent is clear: testing Hibernate property access annotations. Length is appropriate, with no unnecessary lines. Each statement performs one action, maintaining good granularity. Reading flow is natural, progressing from configuration to verification. Minor deductions: assertTrue arguments span multiple lines due to indentation style, and the final factory.close() is slightly less visible. Overall, a concise and understandable test method.

Run 1

Code Structure: Clearly organized into configuration, factory creation, tuplizer retrieval, assertions, and cleanup. Nesting: Flat execution with no nested control flow. Clarity of intent: The descriptive test name and assertion messages clearly communicate the expected access behavior, though getGetter(0) leaves the specific property implicit. Code length: Concise and appropriately sized for a focused test. Action granularity: Most statements perform one action; the chained tuplizer lookup remains easy to follow. Reading flow: Natural setup-to-verification progression, aided by whitespace and multiline formatting. Minor drawbacks include inconsistent indentation on factory.close() and cleanup that is not guaranteed if an assertion fails.

Run 2

Code Structure: The test follows a clear setup, inspection, assertion, and cleanup sequence. Nesting: The body is flat, with no nested control flow. Clarity of intent: The descriptive test name and assertion messages explain the expected field-versus-property access behavior, though getGetter(0) leaves the specific property implicit. Code length: Concise, with little unnecessary code; the long test name and factory construction line slightly reduce scanability. Action granularity: Statements generally perform one action each, and the chained metadata lookup is split across lines. Reading flow: Execution proceeds naturally, but inconsistent indentation on factory.close() and uneven line wrapping slightly disrupt visual consistency.

Run 3

Code Structure: Logically organized into configuration, factory creation, accessor inspection, assertions, and cleanup. Nesting: Flat, with no nested control flow; the chained calls remain easy to follow. Clarity of intent: The descriptive test name and assertion messages clearly communicate the expected access strategies, although getGetter(0) does not identify the property being tested. Code length: Concise and appropriate for a focused test. Action granularity: Statements generally perform one clear action each, and the method chain is split across lines. Reading flow: Natural setup-to-verification progression, supported by whitespace. Minor readability issues include inconsistent indentation on factory.close(), a lengthy test name, and somewhat verbose assertion formatting.