Sample

Scalabrio1

Human rating uses the original dataset scale.

DatasetScalabrino
Human4.22
Lines16

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.6110–1; higher is more readable
94.5Δ 11.6
Scalabrino0.9440–1; higher is more readable
98.2Δ 15.3
Dorn0.8650–1; higher is more readable
98.0Δ 15.1
Mi0.5890–1; higher is more readable
81.7Δ 1.3
LLOC7Logical lines; fewer is more readable
81.7Δ 1.3
DeepSeek V4 Pro16.330–20; mean of three runs
80.9Δ 2.0
GPT-6.1 Sol170–20; mean of three runs
58.5Δ 24.4
BTTF0.6530–1; higher is more readable
84.7Δ 1.8
Human4.221–5; original rating
82.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)
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.285.293−9.415
Source linesThe number of non-empty source lines.16+6.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.3.603−5.404

Intercept 8.87 + feature contributions = 0.451 (log-odds).
Score = sigmoid(0.451) = 0.611.

Score0.944

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.66.875+0.833
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.16+0.47
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.67+0.277
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.069+0.269
Indentation frequencyHow rapidly indentation changes from line to line.14−0.253
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.14.853−0.202

Intercept 0.07 + feature contributions = 1.861 (log-odds).
Score = sigmoid(1.861) = 0.865.

Score0.589
Score7
Run 1

The code is generally readable with clear intent: running a test in a new thread and ensuring cleanup via a finally block. The structure is logical and the nesting is minimal — only two levels (method → anonymous class → run method). Each action is on its own line, which improves clarity. However, the anonymous Thread subclass adds some verbosity and slightly obscures the flow; a lambda or dedicated Runnable would be cleaner. The inline comment explaining the inlined code is helpful but references outdated VA/Java limitations, which could confuse modern readers. Overall, the code is clear and maintainable but could be more concise.

Run 2

The code is concise and logically structured, with a single anonymous Thread class that clearly encapsulates the asynchronous test execution. Nesting is minimal and necessary, contributing to flat readability. The intent is unambiguous: run a test in a new thread and signal completion in a finally block. Code length is appropriate, with one action per line inside the run method. The reading flow is natural, although the commented-out line and the comment about VA/Java limitations introduce slight noise. Overall, it is highly readable with only minor improvements possible, such as removing the dead commented code.

Run 3

The code is generally readable with a logical structure: it creates an anonymous Thread subclass, starts it, and uses a try/finally to ensure cleanup. Nesting is minimal (method, inner class, run method, try/finally). The intent is clear despite a commented-out line that slightly obscures the original purpose. Length is concise. Action granularity is mostly one action per line. Reading flow is natural, though the commented-out super call and inline comment about VA/Java limitations add minor noise. Overall, the code is clean and understandable but could be improved slightly by removing the commented-out code or adding a brief explanation for the workaround.

Run 1

Code Structure: Logically organized into thread creation, test execution, completion notification, and thread startup. Nesting: The anonymous Thread subclass and try/finally introduce moderate nesting, but the method remains easy to follow. Clarity of intent: Running a test asynchronously and always signaling completion are clear; the variable name 't' and unexplained 'VA/Java' reference slightly reduce clarity. Code length: Concise overall, though the commented-out superclass call adds minor clutter. Action granularity: Each statement performs one distinct action. Reading flow: Execution proceeds naturally from thread setup to startup, with only the anonymous-class boilerplate and inconsistent indentation interrupting readability.

Run 2

Code Structure: Logically organized around creating and starting a test thread, with completion handled reliably in finally. Nesting: The anonymous Thread subclass, run method, and try/finally add moderate nesting, but the short body remains manageable. Clarity of intent: Running the test asynchronously and signaling completion are clear; the vague thread name t and legacy VA/Java comment reduce clarity slightly. Code length: Concise overall, though the commented-out call adds clutter. Action granularity: Each executable statement performs one action. Reading flow: Execution proceeds naturally from thread creation to test execution, cleanup, and thread start, although the anonymous class interrupts the outer method's linear flow.

Run 3

Code Structure: Logically organized into thread creation, test execution, completion notification, and thread startup. Nesting: Moderate nesting from the anonymous Thread subclass and try/finally adds visual complexity but remains manageable. Clarity of intent: Running a test asynchronously and signaling completion are clear; the generic variable name 't' and legacy comment slightly reduce clarity. Code length: Concise overall, though the commented-out superclass call adds clutter. Action granularity: Each executable statement performs one action. Reading flow: Execution follows naturally from constructing the thread to starting it, with finally clearly guaranteeing completion notification.