Sample

int-b2033622e73a-SRC

Unmodified source class

Lines45

Scores

MethodScoreScale
Posnett0.9930–1; higher is more readable
Dorn0.6870–1; higher is more readable
Mi0.4710–1; higher is more readable
LLOC1Logical lines; fewer is more readable
DeepSeek V4 Pro18.670–20; mean of three runs
GPT-6.1 Sol190–20; mean of three runs
BTTF0.6860–1; higher is more readable

Views

Source code

package org.springframework.test.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Test annotation for use with JUnit 4 to indicate that a test method has to finish * execution in a {@linkplain #millis() specified time period}. * * <p>If the test execution takes longer than the specified time period, then * the test is considered to have failed. * * <p>Note that the time period includes execution of the test method itself, * any {@linkplain Repeat repetitions} of the test, and any <em>set up</em> or * <em>tear down</em> of the test fixture. * * <p>This annotation may be used as a <em>meta-annotation</em> to create custom * <em>composed annotations</em>. * * @author Rod Johnson * @author Sam Brannen * @since 2.0 * @see org.springframework.test.annotation.Repeat * @see org.springframework.test.context.junit4.SpringJUnit4ClassRunner * @see org.springframework.test.context.junit4.rules.SpringMethodRule * @see org.springframework.test.context.junit4.statements.SpringFailOnTimeout * @deprecated since Spring Framework 7.0 in favor of the * {@link org.springframework.test.context.junit.jupiter.SpringExtension SpringExtension} * and JUnit Jupiter */ @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Deprecated(since = "7.0") public @interface Timed { /** * The maximum amount of time (in milliseconds) that a test execution can * take without being marked as failed due to taking too long. */ long millis(); }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Source linesThe number of non-empty source lines.45+18
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.445−14.685
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.832−7.247

Intercept 8.87 + feature contributions = 4.938 (log-odds).
Score = sigmoid(4.938) = 0.993.

Feature contributions

FeatureValueContribution
(log-odds)
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.028+0.667
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.88.957+0.631
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.46−0.592
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.44.933+0.218
Indentation frequencyHow rapidly indentation changes from line to line.18−0.115
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.88.935−0.102
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.18+0.008

Intercept 0.07 + feature contributions = 0.786 (log-odds).
Score = sigmoid(0.786) = 0.687.

Score0.471
Score1
Run 1

The code is highly readable due to its logical structure: imports, Javadoc, annotations, and interface declaration are well-separated. Nesting is non-existent. The intent is clearly conveyed through comprehensive Javadoc, including usage, constraints, and deprecation warnings. Code length is appropriate for a declarative annotation. Each element—annotations, method signature—sits on its own line. Reading flow is natural, moving from general metadata to specific method. Minor deductions: the lengthy Javadoc for a deprecated element slightly reduces conciseness, and the deprecation message could be shortened. Overall, an exemplary annotation definition.

Run 2

The code is highly readable. It has a clear, logical structure: imports, comprehensive Javadoc, annotations, interface declaration, and a single method. Nesting is non-existent. Intent is unambiguous—defining a timed test annotation. The Javadoc thoroughly explains usage, including meta-annotation support and deprecation. Code length is concise but appropriately detailed; each element serves a purpose. Action granularity is excellent, with each annotation and method declaration on its own line. Reading flow is natural: package, imports, documentation, metadata, then declaration. Minor deductions: the deprecation notice is slightly verbose and could instead reference the migration guide. Overall, it’s a textbook example of clean, well-documented annotation code.

Run 3

This annotation declaration is highly readable. The structure is logical: imports, comprehensive Javadoc, then annotations and the interface declaration. The Javadoc clearly explains the purpose, usage, semantics, and deprecation context. Nesting is nonexistent. The single method 'millis()' has a precise, well-documented purpose. Length is appropriate—the verbosity is in documentation, not code, which aids clarity. Action granularity is trivially perfect: each annotation and declaration occupies its own line. Reading flow is natural, from package context to metadata to definition. Minor deductions: the deprecated annotation could arguably be placed first among meta-annotations, but this is stylistic and does not impair comprehension.

Run 1

Code Structure: Logically organized into package, imports, documentation, annotation metadata, and a single member. Nesting: Minimal, with only the annotation body. Clarity of intent: Timed and millis() communicate the purpose clearly, while Javadoc explains timeout scope and deprecation. Code length: The implementation is concise; the longer documentation provides useful context rather than unnecessary complexity. Action granularity: Each import, annotation, and member declaration occupies its own line. Reading flow: Natural top-to-bottom progression with consistent formatting. A missing blank line between the package declaration and imports is a minor visual separation issue.

Run 2

Code Structure: Logically organized into imports, documentation, annotation metadata, and a single member. Nesting: Essentially flat, with no nested control flow. Clarity of intent: The Timed name, millis() member, and detailed Javadoc clearly explain the timeout behavior, scope, and deprecation. Code length: The implementation is minimal; documentation is longer but provides useful context. Action granularity: Each import, metadata annotation, and declaration occupies its own line. Reading flow: Natural top-to-bottom progression, with consistent formatting. A blank line between the package declaration and imports would slightly improve visual separation.

Run 3

Code Structure: Clearly organized into package, imports, documentation, annotations, and a single member. Nesting: Minimal, with only the annotation declaration containing millis(). Clarity of intent: Timed and millis() communicate purpose, while documentation explains timeout behavior, scope, and deprecation. Code length: The implementation is concise; extensive documentation is useful but slightly outweighs the code. Action granularity: Each import, annotation, and member declaration occupies its own line. Reading flow: Natural top-to-bottom progression, with only minor formatting issues such as the missing blank line between the package declaration and imports.