microsoft / PowerBI-visuals-CardBrowser
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 134 units with 1,588 lines of code in units (50.1% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 5 medium complex units (316 lines of code)
    • 14 simple units (330 lines of code)
    • 115 very simple units (942 lines of code)
0% | 0% | 19% | 20% | 59%
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
ts0% | 0% | 39% | 15% | 44%
js0% | 0% | 6% | 24% | 69%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src0% | 0% | 39% | 15% | 45%
lib/@uncharted/cards/src/components/inlineCardsView0% | 0% | 20% | 27% | 51%
lib/@uncharted/cards/src/util0% | 0% | 18% | 23% | 57%
lib/@uncharted/cards/src/components/card0% | 0% | 0% | 44% | 55%
lib/@uncharted/cards/src/components/cards0% | 0% | 0% | 24% | 75%
lib/@uncharted/cards/src/components/headerImage0% | 0% | 0% | 37% | 62%
lib/@uncharted/cards/src/components/verticalReader0% | 0% | 0% | 22% | 77%
lib/@uncharted/cards/src/components/wrappedCardsView0% | 0% | 0% | 0% | 100%
lib/@uncharted/cards/src/components/readerContent0% | 0% | 0% | 0% | 100%
lib/@uncharted/cards/src/handlebarHelper0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
function convertToRowObjs()
in src/dataConversion.ts
64 23 3
public update()
in src/VisualMain.ts
79 19 1
constructor()
in src/VisualMain.ts
111 17 1
renderCardsInViewPort()
in lib/@uncharted/cards/src/components/inlineCardsView/inlineCardsView.js
33 11 0
off()
in lib/@uncharted/cards/src/util/IBindable.js
29 11 3
_getIndexOfFirstCardInViewPort()
in lib/@uncharted/cards/src/components/inlineCardsView/inlineCardsView.js
45 9 1
_registerDOMEvents()
in lib/@uncharted/cards/src/components/verticalReader/verticalReader.js
20 9 0
31 9 2
render()
in lib/@uncharted/cards/src/components/card/card.js
38 8 0
_registerDomEvents()
in lib/@uncharted/cards/src/components/card/card.js
24 8 0
_fadeOutOverflowingCardMetadataTexts()
in lib/@uncharted/cards/src/components/cards/cards.js
19 8 1
toggleInlineDisplayMode()
in lib/@uncharted/cards/src/components/cards/cards.js
11 8 1
32 8 0
render()
in lib/@uncharted/cards/src/components/headerImage/headerImage.js
27 7 0
emit()
in lib/@uncharted/cards/src/util/IBindable.js
18 7 2
function countDocuments()
in src/dataConversion.ts
18 7 1
function toHSL()
in src/utils.ts
22 7 1
_moveReaderContent()
in lib/@uncharted/cards/src/components/card/card.js
6 6 0
on()
in lib/@uncharted/cards/src/util/IBindable.js
19 6 2
reset()
in lib/@uncharted/cards/src/components/headerImage/headerImage.js
14 5 1