aws-amplify / amplify-ios
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

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 4,692 units with 73,413 lines of code in units (60.8% of code).
    • 1 very complex units (118 lines of code)
    • 1 complex units (104 lines of code)
    • 65 medium complex units (4,222 lines of code)
    • 244 simple units (10,875 lines of code)
    • 4,381 very simple units (58,094 lines of code)
<1% | <1% | 5% | 14% | 79%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
swift<1% | <1% | 5% | 14% | 79%
rb0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
AmplifyPlugins/Predictions3% | 0% | 3% | 7% | 85%
AmplifyPlugins/DataStore0% | <1% | 12% | 22% | 64%
AmplifyPlugins/API0% | 0% | 5% | 31% | 63%
AmplifyPlugins/Auth0% | 0% | 2% | 11% | 85%
AmplifyPlugins/Core0% | 0% | <1% | 2% | 97%
AmplifyTests/CoreTests0% | 0% | 2% | 2% | 94%
AmplifyPlugins/Storage0% | 0% | 0% | 4% | 95%
AmplifyTests/CategoryTests0% | 0% | 0% | 2% | 97%
AmplifyPlugins/Analytics0% | 0% | 0% | 6% | 93%
Amplify/Core0% | 0% | 0% | 13% | 86%
Amplify/Categories0% | 0% | 0% | 2% | 97%
AmplifyPlugins/Geo0% | 0% | 0% | 0% | 100%
AmplifyTools/AmplifyXcode0% | 0% | 0% | 0% | 100%
Amplify/DevMenu0% | 0% | 0% | 0% | 100%
AmplifyFunctionalTests/Hub0% | 0% | 0% | 0% | 100%
Amplify/DefaultPlugins0% | 0% | 0% | 0% | 100%
AmplifyTests/DevMenuTests0% | 0% | 0% | 0% | 100%
AmplifyFunctionalTests0% | 0% | 0% | 0% | 100%
AmplifyTestApp0% | 0% | 0% | 0% | 100%
build-support0% | 0% | 0% | 0% | 100%
AmplifyTestCommon/Models0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
func getLanguageType()
in AmplifyPlugins/Predictions/CoreMLPredictionsPlugin/Dependency/CoreMLNaturalLanguageAdapter.swift
118 57 0
func compare()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPlugin/Sync/Support/Model+Compare.swift
104 32 2
func getSpeechType()
in AmplifyPlugins/Predictions/AWSPredictionsPlugin/Support/Internal/AWSComprehendPartOfSpeechTagTypeExtension.swift
44 20 0
func testDeleteParentEmitsMutationEventsForParentAndChild()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/Storage/StorageEngineTestsHasMany.swift
57 17 0
func comparator()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPlugin/Subscribe/Support/Model+Sort.swift
81 16 3
func onReceive()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPlugin/Storage/StorageEngine.swift
34 16 1
func testUpdateRegistrationToAnotherAttendee()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/TransformerV2/DataStoreConnectionScenario8V2Tests.swift
93 15 0
func testDeleteAttendeeShouldCascadeDeleteRegistration()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/TransformerV2/DataStoreConnectionScenario8V2Tests.swift
91 15 0
func testDeleteMeetingShouldCascadeDeleteRegistration()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/TransformerV2/DataStoreConnectionScenario8V2Tests.swift
91 15 0
func testDeleteAndGetProjectReturnsNilWithSync()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/TransformerV2/DataStoreConnectionScenario1V2Tests.swift
82 15 0
func testDeleteAndGetProjectReturnsNilWithSync()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/TransformerV2/DataStoreConnectionScenario2V2Tests.swift
82 15 0
func testTranslateComplexGroupedQueryPredicateScenario1()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/Core/SQLStatementTests.swift
33 15 0
func attemptToResolve()
in AmplifyPlugins/Core/AWSPluginsCoreTests/Query/QueryPredicateEvaluateGenerator.swift
20 15 5
func testSaveThenUpdateAndImmediatelyDelete()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginFlutterIntegrationTests/DataStoreFlutterConsecutiveUpdatesTests.swift
110 14 0
func testDeleteRegistration()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/TransformerV2/DataStoreConnectionScenario8V2Tests.swift
90 14 0
func testSaveThenUpdateAndImmediatelyDelete()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/DataStoreConsecutiveUpdatesTests.swift
107 14 0
func testSaveThenMultipleUpdate()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginIntegrationTests/DataStoreConsecutiveUpdatesTests.swift
94 14 0
func testDeletePostShouldDeleteComments()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/Sync/LocalSubscriptionWithJSONModelTests.swift
89 14 0
func testProcessesNewEvents()
in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/Sync/SubscriptionSync/ModelReconciliationQueueBehaviorTests.swift
99 14 0
func graphQLInputForMutation()
in AmplifyPlugins/Core/AWSPluginsCore/Model/Support/Model+GraphQL.swift
52 14 1