Sample
int-a26692c823dc-I09
Select one of ten low-readability unrelated code templates per class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.946 | 0–1; higher is more readable |
| Dorn | 0.559 | 0–1; higher is more readable |
| Mi | 0.275 | 0–1; higher is more readable |
| LLOC | 2 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs |
| BTTF | 0.685 | 0–1; higher is more readable |
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. | 965.73 | −31.869 |
| Source linesThe number of non-empty source lines. | 45 | +18 |
| 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.991 | −7.487 |
Intercept 8.87 + feature contributions = -12.486 (log-odds).
Score = sigmoid(-12.486) = 0.
| Score | 0.946 |
|---|
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. | 112.978 | −1.12 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 112.913 | +1.017 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.032 | +0.633 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 46 | −0.592 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 28 | +0.231 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 28 | −0.222 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 44.93 | +0.218 |
Intercept 0.07 + feature contributions = 0.236 (log-odds).
Score = sigmoid(0.236) = 0.559.
| Score | 0.275 |
|---|
| Score | 2 |
|---|
Run 1
The code is well-structured as a concise interface definition. Constants are logically grouped and consistently formatted, though the list is long. The interface avoids unnecessary nesting and has a clear purpose: defining a custom private key method for SSL operations. Method signatures are concise with clear parameter names and return types. Javadoc comments effectively document intent and behavior. Reading flow is natural, with constants first, then methods, and clear documentation separating them. Minor deductions result from repetitive constant declarations and slight verbosity in Javadoc, but overall readability is high.
Run 2
The code is highly readable. It's a well-structured interface with clear purpose, documented methods, and organized constants. The structure is logical: imports, class-level Javadoc, constants grouped by cryptographic algorithm, then method signatures with thorough documentation. There is no nesting or method body complexity. Constants are derived from SSLPrivateKeyMethod, keeping the code concise and avoiding duplication. Each element is on its own line, making the flow natural and easy to scan. Minor deductions: the interface-level comment should be complete Javadoc with @author/@since, and the long constant list could potentially be grouped with comments for even better scannability, but overall it's clean and maintainable.
Run 3
The code is highly readable. It has a clear, logical structure: imports, interface declaration, constants, then method signatures. Nesting is essentially flat. The intent of the interface and each constant/method is well-documented with Javadoc. Constants are mapped to an internal library, keeping the public API stable while avoiding duplication. Method signatures are concise and use descriptive parameter names. The action granularity is appropriate—each constant is on its own line for clarity. The reading flow is natural, starting from the interface purpose down to method behaviors. Minor deductions: the Javadoc could mention the constant meanings, and the interface-level comment is slightly informal ('atm'), but overall it is concise and does not suffer from unnecessary length.
Run 1
Code Structure: The interface is logically organized into imports, algorithm constants, and documented methods. Nesting: Entirely flat apart from the interface scope, making it easy to scan. Clarity of intent: Descriptive constants, method names, and Javadoc clearly communicate signing and decryption responsibilities, although references to a 'given key' do not explain how that key is supplied. Code length: Concise for its API role; the repetitive constants are justified but visually dense. Action granularity: Each constant or method declaration occupies its own line, with no combined actions. Reading flow: Constants precede operations naturally, and consistent documentation supports smooth reading. Minor weaknesses include missing spacing around the package/import sections, no visual grouping of algorithm families, and informal wording such as 'atm'.
Run 2
Code Structure: The interface is logically organized into imports, algorithm constants, and two documented methods. Nesting: Flat declarations with no nested control flow make scanning easy. Clarity of intent: Descriptive constant names and method documentation clearly communicate signing and decryption responsibilities, although the introductory RSA wording is ambiguous given the non-RSA signing algorithms. Code length: Concise for its purpose; repetitive constants are appropriate API declarations rather than unnecessary verbosity. Action granularity: Each declaration occupies its own line, with no combined actions. Reading flow: Constants followed by operation contracts provide a natural progression. Minor improvements include separating the package and import sections with whitespace, grouping constants by algorithm family, and replacing informal documentation wording such as 'atm.'
Run 3
Code Structure: Clearly organized interface with algorithm constants followed by two documented methods; grouping constants by algorithm family would improve scanning. Nesting: Flat declarations with no nested control flow. Clarity of intent: Descriptive names and parameter/return documentation make signing and decryption responsibilities clear, although the introductory RSA wording is ambiguous given the non-RSA signing constants. Code length: Concise for its API scope; repetitive constant mappings are justified. Action granularity: Each line declares one constant or method, with no combined operations. Reading flow: Natural progression from imports to interface description, constants, and methods. Minor weaknesses include missing spacing between package and imports and informal wording such as 'atm'.