JUnit 5
Conditional Complexity

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 3,246 units with 17,332 lines of code in units (58.8% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 10 medium complex units (400 lines of code)
    • 31 simple units (769 lines of code)
    • 3,205 very simple units (16,163 lines of code)
0% | 0% | 2% | 4% | 93%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
java0% | 0% | 2% | 4% | 93%
Legend:
51+
26-50
11-25
6-10
1-5
Conditional Complexity per Logical Component
primary logical decomposition
junit-platform-commons0% | 0% | 8% | 8% | 82%
junit-jupiter-api0% | 0% | 4% | 2% | 93%
junit-platform-engine0% | 0% | 3% | 2% | 93%
junit-jupiter-engine0% | 0% | 0% | 5% | 94%
junit-platform-launcher0% | 0% | 0% | 5% | 94%
junit-jupiter-params0% | 0% | 0% | 4% | 95%
junit-platform-console0% | 0% | 0% | 4% | 95%
junit-platform-testkit0% | 0% | 0% | 4% | 95%
documentation0% | 0% | 0% | 27% | 72%
junit-platform-reporting0% | 0% | 0% | 7% | 92%
junit-vintage-engine0% | 0% | 0% | 0% | 100%
junit-jupiter-migrationsupport0% | 0% | 0% | 0% | 100%
junit-platform-runner0% | 0% | 0% | 0% | 100%
junit-platform-jfr0% | 0% | 0% | 0% | 100%
Legend:
51+
26-50
11-25
6-10
1-5
Most Complex Units
Top 50 most complex units
Unit# linesMcCabe index# params
private static void assertArrayElementsEqual()
in junit-jupiter-api/src/main/java/org/junit/jupiter/api/AssertArrayEquals.java
41 24 4
static boolean isWideningConversion()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java
42 20 2
private Optional resolve()
in junit-platform-engine/src/main/java/org/junit/platform/engine/support/discovery/EngineDiscoveryRequestResolution.java
45 14 1
void assertLinesMatchWithFastForward()
in junit-jupiter-api/src/main/java/org/junit/jupiter/api/AssertLinesMatch.java
50 14 0
public static Stream toStream()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/CollectionUtils.java
41 14 1
public static Optional fromQuery()
in junit-platform-engine/src/main/java/org/junit/platform/engine/discovery/FilePosition.java
31 13 1
public static Optional fromQuery()
in junit-platform-engine/src/main/java/org/junit/platform/engine/support/descriptor/FilePosition.java
31 13 1
private static JRE determineCurrentVersion()
in junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/JRE.java
41 13 0
public static String nullSafeToString()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/StringUtils.java
41 13 1
private static Optional findAnnotation()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/AnnotationUtils.java
37 12 4
public boolean equals()
in documentation/src/main/java/example/domain/Person.java
29 10 1
public void executionFinished()
in junit-platform-launcher/src/main/java/org/junit/platform/launcher/listeners/SummaryGeneratingListener.java
36 10 2
private void printStackTrace()
in junit-platform-launcher/src/main/java/org/junit/platform/launcher/listeners/MutableTestExecutionSummary.java
27 10 7
private static boolean isAllowedXmlCharacter()
in junit-platform-reporting/src/main/java/org/junit/platform/reporting/legacy/xml/XmlReportWriter.java
8 9 1
static Optional create()
in junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/StreamInterceptingTestExecutionListener.java
20 9 2
private SortedMap deleteAllFilesAndDirectories()
in junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/TempDirectory.java
59 9 0
static OS parse()
in junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/OS.java
24 8 1
public static Optional getLocation()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/ClassLoaderUtils.java
29 8 1
private static void findRepeatableAnnotations()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/AnnotationUtils.java
32 8 6
private static void findNestedClasses()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java
23 8 3
private void addFilters()
in junit-platform-console/src/main/java/org/junit/platform/console/tasks/DiscoveryRequestCreator.java
25 8 2
private Object invokeTestInstanceFactory()
in junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassBasedTestDescriptor.java
33 8 2
private static void findRepeatableAnnotations()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/AnnotationUtils.java
21 7 6
private static Optional findMethod()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java
19 7 2
private static boolean hasCompatibleSignature()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java
22 7 3
private Object resolveParameter()
in junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/ExecutableInvoker.java
41 7 4
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/discovery/MethodSelector.java
12 6 1
public void execute()
in junit-platform-engine/src/main/java/org/junit/platform/engine/support/hierarchical/NodeTestTask.java
27 6 0
private void reportCompletion()
in junit-platform-engine/src/main/java/org/junit/platform/engine/support/hierarchical/NodeTestTask.java
27 6 0
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/support/descriptor/MethodSource.java
12 6 1
private static List createExecutions()
in junit-platform-testkit/src/main/java/org/junit/platform/testkit/engine/Executions.java
34 6 1
private static T assertTimeoutPreemptively()
in junit-jupiter-api/src/main/java/org/junit/jupiter/api/AssertTimeout.java
43 6 3
private static void detectInnerClassCycle()
in junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java
17 6 1
static TestCounts from()
in junit-platform-reporting/src/main/java/org/junit/platform/reporting/legacy/xml/XmlReportWriter.java
20 6 2
private void advance()
in junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvFileArgumentsProvider.java
17 6 0
public Stream provideArguments()
in junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/EmptyArgumentsProvider.java
27 6 1
private void print()
in junit-platform-console/src/main/java/org/junit/platform/console/tasks/TreePrinter.java
15 6 3
private String createMissingOperandMessage()
in junit-platform-launcher/src/main/java/org/junit/platform/launcher/tagexpression/Operator.java
13 6 2
public void selectorProcessed()
in junit-platform-launcher/src/main/java/org/junit/platform/launcher/listeners/discovery/LoggingLauncherDiscoveryListener.java
21 6 3
public ExecutionMode getExecutionMode()
in junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterTestDescriptor.java
20 6 0
public void after()
in junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassBasedTestDescriptor.java
16 6 1
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/discovery/NestedMethodSelector.java
10 5 1
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/discovery/ClasspathResourceSelector.java
11 5 1
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/discovery/FilePosition.java
10 5 1
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/discovery/NestedClassSelector.java
11 5 1
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/discovery/FileSelector.java
10 5 1
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/UniqueId.java
10 5 1
public static boolean isValid()
in junit-platform-engine/src/main/java/org/junit/platform/engine/TestTag.java
10 5 1
public boolean equals()
in junit-platform-engine/src/main/java/org/junit/platform/engine/support/hierarchical/ExclusiveResource.java
10 5 1
private void add()
in junit-platform-engine/src/main/java/org/junit/platform/engine/support/hierarchical/ThrowableCollector.java
13 5 1