Sample
JetBrains/e6
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 47.5Δ 11.0 |
| Scalabrino | 0.757 | 0–1; higher is more readable | 64.4Δ 5.9 |
| Dorn | 0.588 | 0–1; higher is more readable | 66.1Δ 7.6 |
| Mi | 0.513 | 0–1; higher is more readable | 56.8Δ 1.7 |
| LLOC | 19 | Logical lines; fewer is more readable | 25.4Δ 33.1 |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs | 69.9Δ 11.4 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 46.2Δ 12.3 |
| BTTF | 0.645 | 0–1; higher is more readable | 95.8Δ 37.3 |
| Human | 0.79 | 0–1; original rating | 58.5 |
Views
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. | 930.278 | −30.699 |
| Source linesThe number of non-empty source lines. | 36 | +14.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.433 | −5.15 |
Intercept 8.87 + feature contributions = -12.579 (log-odds).
Score = sigmoid(-12.579) = 0.
| Score | 0.757 |
|---|
Feature contributions
| Feature | Value | Contribution (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. | 57.889 | +1.213 |
| 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. | 34 | +0.439 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 36 | −0.405 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 36 | −0.238 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 34.864 | +0.078 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.096 | +0.005 |
Intercept 0.07 + feature contributions = 0.357 (log-odds).
Score = sigmoid(0.357) = 0.588.
| Score | 0.513 |
|---|
| Score | 19 |
|---|
Run 1
The code is well-structured with clear separation of concerns: main handles filtering and isPangram performs the logic. Nesting is minimal and readable, with only one level of indentation in the loops. The intent is obvious from method and variable names. Code length is concise, avoiding unnecessary boilerplate. Action granularity is mostly one action per line, aiding readability. Reading flow is natural: process each argument, check if pangram, print if true. Minor improvements could include extracting the index mapping into a separate method or using Character.toLowerCase to reduce branching, but overall the code is highly readable and maintainable.
Run 2
The code is well-structured with clear separation between the main method and the pangram-checking logic. Nesting is minimal—only two levels deep—and the flow is easy to follow. Intent is evident: it filters command-line arguments to print only pangrams. The isPangram method is concise, using a boolean array to track letters and returning early if any are missing. Each line generally performs one action, and the reading flow is natural. Minor improvements could include using Character.toLowerCase to avoid the uppercase branch, or renaming 'index' for slight clarity, but overall readability is high.
Run 3
The code is well-structured with clear separation of concerns: main handles arguments, isPangram encapsulates the logic. Nesting is generally shallow, with only a two-level if-else inside the loop, which is reasonable. Intent is clear from method and variable names like isPangram and letters. The code is concise without being cryptic, and each line performs a single action, supporting readability. The reading flow is natural: input handling, core logic, then result. Minor improvements could include extracting the letter-indexing logic into a helper method and using a for-each loop over the sentence characters, but overall the code is very readable.
Run 1
Code Structure: Clearly separates argument processing from pangram checking, with logically ordered steps. Nesting: Moderate nesting in character processing; case normalization could remove the inner conditional. Clarity of intent: Descriptive class and method names make the purpose clear, though letters and index could be more specific. Character.isLetter accepts non-ASCII letters, while the indexing assumes English letters, obscuring the supported input. Code length: Concise overall, with minor simplification possible through normalization. Action granularity: Each statement performs a distinct action, making operations easy to follow. Reading flow: Natural progression from collecting letters to verifying completeness, with early returns and helpful spacing; conventional spacing around control statements would improve polish.
Run 2
Code Structure: Clearly separates command-line processing from pangram checking, with logically ordered steps. Nesting: Mostly shallow, though the character loop contains nested conditionals for letter detection and case handling. Clarity of intent: Descriptive method and variable names make the purpose clear; however, Character.isLetter accepts non-ASCII letters while indexing assumes A–Z, creating a misleading mismatch. Code length: Concise overall, although normalizing case could simplify the branching. Action granularity: Each statement performs one distinct action, making operations easy to follow. Reading flow: Natural progression from character collection to completeness checking, with useful whitespace; minor spacing inconsistencies and the separately declared index slightly reduce polish.
Run 3
Code Structure: Clearly separates argument processing from pangram checking. Nesting: Mostly manageable, though the letter-checking loop contains nested conditionals that could be flattened through case normalization. Clarity of intent: Descriptive class and method names make the purpose obvious; however, Character.isLetter accepts non-English letters while the indexing assumes ASCII A–Z, making the supported input ambiguous. Code length: Concise overall, with some avoidable case-handling duplication. Action granularity: Each statement performs a single clear action. Reading flow: Naturally progresses from scanning characters to verifying alphabet coverage, with early returns simplifying the final check. Minor spacing inconsistencies and the broadly scoped index variable slightly reduce readability.