Sample
Buse/19
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.527 | 0–1; higher is more readable | 64.6Δ 6.1 |
| Scalabrino | 0.795 | 0–1; higher is more readable | 59.1Δ 0.5 |
| Dorn | 0.81 | 0–1; higher is more readable | 86.9Δ 28.3 |
| Mi | 0.806 | 0–1; higher is more readable | 94.9Δ 36.4 |
| LLOC | 4 | Logical lines; fewer is more readable | 59.6Δ 1.0 |
| DeepSeek V4 Pro | 15 | 0–20; mean of three runs | 60.6Δ 2.0 |
| GPT-6.1 Sol | 15.67 | 0–20; mean of three runs | 44.4Δ 14.1 |
| BTTF | 0.547 | 0–1; higher is more readable | 58.6Δ 0.0 |
| Human | 3.55 | 1–5; original rating | 58.6 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (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. | 197.153 | −6.506 |
| 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.903 | −5.855 |
| Source linesThe number of non-empty source lines. | 9 | +3.6 |
Intercept 8.87 + feature contributions = 0.109 (log-odds).
Score = sigmoid(0.109) = 0.527.
| Score | 0.795 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 10 | +0.682 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 5 | −0.564 |
| 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. | 75.7 | +0.459 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 76 | +0.422 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 8.896 | −0.285 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.069 | +0.268 |
Intercept 0.07 + feature contributions = 1.45 (log-odds).
Score = sigmoid(1.45) = 0.81.
| Score | 0.806 |
|---|
| Score | 4 |
|---|
Run 1
The code demonstrates good readability through flat structure, clear naming conventions, and logical organization. Each line performs a single action (object instantiation and field assignments), maintaining good action granularity. The reading flow is natural, beginning with the core initialization and progressing to name and type assignments. The code is concise without unnecessary verbosity. However, the constructor appears incomplete (missing assignment of mainCols, refTable, refCols, deleteAction, and updateAction parameters), and there are no comments explaining the parameters or their constraints. The alignment of assignment operators improves visual scanning. Overall, the code is clear and well-structured, though the incomplete implementation and lack of parameter documentation prevent a higher score.
Run 2
The code is mostly readable. It starts with a clear constructor declaration and parameters. The body assigns fields directly, with one action per line, which is good. However, the alignment of the assignment operators using extra spaces (e.g., 'core =') is unusual and can hurt readability in some style guides. The comment 'temp constraint constructor' is vague and doesn't add much. The method is concise and flat, with no nesting. Overall, the logic is easy to follow, but the formatting detracts slightly.
Run 3
The code shows logical structure with a constructor initializing fields, and comments indicate intent. However, readability is reduced by parameter ordering that separates related columns and actions, unclear naming like 'mainCols' vs 'refCols', and lack of visibility into the 'core' object. The action granularity is acceptable but aligns fields in a way that may hinder natural flow. Overall, it is moderately readable but could be clearer with better parameter grouping and more descriptive names.
Run 1
Code Structure: The constructor and initialization statements are logically organized, but the snippet is incomplete. Nesting: Minimal nesting makes the visible code easy to scan. Clarity of intent: Constructor parameters and field assignments communicate constraint initialization, though the vague 'temp constraint constructor' comment and abbreviated names reduce clarity. Code length: The visible portion is concise, although the seven-parameter signature adds cognitive load. Action granularity: Each assignment occupies its own line. Reading flow: Consistent indentation, aligned assignments, and a neatly wrapped signature support natural reading; the missing remainder prevents assessing the constructor's overall flow.
Run 2
Code Structure: The constructor is logically organized, with a short comment followed by field initialization. Nesting: The visible code is flat, with no nested control flow. Clarity of intent: The constructor and assignments communicate initialization clearly, but the vague 'temp constraint constructor' comment and abbreviated names reduce clarity. Code length: The snippet is concise, although the seven-parameter signature adds reading effort. Action granularity: Each assignment performs one action on its own line. Reading flow: Consistent indentation, aligned assignments, and a wrapped parameter list make scanning easy. The snippet is incomplete, so the remaining constructor logic and overall flow cannot be assessed.
Run 3
Code Structure: The constructor is logically organized, with initialization statements grouped together, although the snippet is incomplete. Nesting: Flat, with no nested control flow. Clarity of intent: Constructor initialization is evident, but the vague 'temp constraint constructor' comment and abbreviated names provide limited context. Code length: Concise, with no unnecessary statements. Action granularity: Each assignment performs one action on its own line. Reading flow: The wrapped parameter list and aligned assignments are easy to scan, though the missing closing brace and unused parameters in the visible portion leave the overall purpose only partially established.