angular / bower-material
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 2,561 units with 25,945 lines of code in units (27.0% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 78 medium complex units (3,537 lines of code)
    • 211 simple units (4,566 lines of code)
    • 2,272 very simple units (17,842 lines of code)
0% | 0% | 13% | 17% | 68%
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
js0% | 0% | 13% | 17% | 68%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
modules/closure/menu0% | 0% | 59% | 2% | 38%
modules/js/virtualRepeat0% | 0% | 47% | 5% | 46%
modules/closure/datepicker0% | 0% | 16% | 26% | 56%
modules/js/datepicker0% | 0% | 16% | 26% | 56%
modules/js/menu0% | 0% | 44% | 2% | 52%
modules/closure/select0% | 0% | 22% | 13% | 64%
modules/js/select0% | 0% | 24% | 12% | 63%
modules/closure/virtualRepeat0% | 0% | 32% | 14% | 53%
modules/closure/chips0% | 0% | 17% | 6% | 75%
modules/js/chips0% | 0% | 15% | 5% | 79%
modules/closure/gridList0% | 0% | 19% | 12% | 67%
modules/js/gridList0% | 0% | 21% | 13% | 65%
modules/closure/autocomplete0% | 0% | 8% | 11% | 80%
modules/js/autocomplete0% | 0% | 9% | 3% | 87%
modules/closure/panel0% | 0% | 6% | 23% | 70%
modules/js/panel0% | 0% | 6% | 23% | 70%
modules/js/slider0% | 0% | 19% | 5% | 75%
modules/closure/slider0% | 0% | 22% | 6% | 70%
modules/closure/progressCircular0% | 0% | 30% | 28% | 41%
modules/js/progressCircular0% | 0% | 30% | 28% | 41%
modules/js/menuBar0% | 0% | 10% | 16% | 72%
modules/closure/menuBar0% | 0% | 11% | 17% | 71%
modules/closure/navBar0% | 0% | 8% | 11% | 79%
modules/js/navBar0% | 0% | 9% | 6% | 84%
modules/closure/sticky0% | 0% | 19% | 0% | 80%
modules/js/sticky0% | 0% | 20% | 0% | 79%
modules/closure/radioButton0% | 0% | 15% | 15% | 69%
modules/js/radioButton0% | 0% | 17% | 14% | 67%
modules/closure/input0% | 0% | 5% | 17% | 77%
modules/closure/sidenav0% | 0% | 10% | 30% | 58%
modules/closure/icon0% | 0% | 6% | 33% | 60%
modules/js/sidenav0% | 0% | 9% | 20% | 69%
modules/closure/tabs0% | 0% | 0% | 14% | 85%
modules/js/tabs0% | 0% | 0% | 15% | 84%
modules/closure/fabSpeedDial0% | 0% | 0% | 33% | 66%
modules/js/fabSpeedDial0% | 0% | 0% | 34% | 65%
modules/js/icon0% | 0% | 0% | 35% | 64%
modules/js/input0% | 0% | 0% | 19% | 80%
modules/closure/dialog0% | 0% | 0% | 23% | 76%
modules/js/dialog0% | 0% | 0% | 25% | 74%
modules/closure/tooltip0% | 0% | 0% | 34% | 65%
modules/js/tooltip0% | 0% | 0% | 35% | 64%
modules/js/list0% | 0% | 0% | 32% | 67%
modules/closure/list0% | 0% | 0% | 34% | 65%
modules/closure/toast0% | 0% | 0% | 38% | 61%
modules/js/toast0% | 0% | 0% | 38% | 61%
modules/closure/progressLinear0% | 0% | 0% | 52% | 47%
modules/js/progressLinear0% | 0% | 0% | 52% | 47%
modules/closure/colors0% | 0% | 0% | 25% | 75%
modules/js/colors0% | 0% | 0% | 25% | 74%
modules/closure/bottomSheet0% | 0% | 0% | 32% | 67%
modules/closure/checkbox0% | 0% | 0% | 34% | 65%
modules/js/checkbox0% | 0% | 0% | 35% | 64%
modules/js/button0% | 0% | 0% | 46% | 53%
modules/closure/button0% | 0% | 0% | 49% | 50%
modules/js/bottomSheet0% | 0% | 0% | 26% | 74%
modules/closure/toolbar0% | 0% | 0% | 37% | 62%
modules/js/toolbar0% | 0% | 0% | 37% | 62%
modules/js/whiteframe0% | 0% | 0% | 44% | 55%
modules/closure/whiteframe0% | 0% | 0% | 59% | 40%
modules/closure/textField0% | 0% | 0% | 0% | 100%
modules/js/textField0% | 0% | 0% | 0% | 100%
modules/js/backdrop0% | 0% | 0% | 0% | 100%
modules/js/showHide0% | 0% | 0% | 0% | 100%
modules/closure/backdrop0% | 0% | 0% | 0% | 100%
modules/js/content0% | 0% | 0% | 0% | 100%
modules/closure/subheader0% | 0% | 0% | 0% | 100%
modules/closure/showHide0% | 0% | 0% | 0% | 100%
modules/closure/content0% | 0% | 0% | 0% | 100%
modules/js/subheader0% | 0% | 0% | 0% | 100%
modules/closure/fabActions0% | 0% | 0% | 0% | 100%
modules/js/fabActions0% | 0% | 0% | 0% | 100%
modules/closure/fabToolbar0% | 0% | 0% | 0% | 100%
modules/js/fabToolbar0% | 0% | 0% | 0% | 100%
modules/closure/switch0% | 0% | 0% | 0% | 100%
modules/js/swipe0% | 0% | 0% | 0% | 100%
modules/js/switch0% | 0% | 0% | 0% | 100%
modules/closure/swipe0% | 0% | 0% | 0% | 100%
modules/js/fabTrigger0% | 0% | 0% | 0% | 100%
modules/js/truncate0% | 0% | 0% | 0% | 100%
modules/js/divider0% | 0% | 0% | 0% | 100%
modules/js/card0% | 0% | 0% | 0% | 100%
modules/closure/fabTrigger0% | 0% | 0% | 0% | 100%
modules/closure/truncate0% | 0% | 0% | 0% | 100%
modules/closure/card0% | 0% | 0% | 0% | 100%
modules/closure/divider0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
function keydown()
in modules/closure/autocomplete/autocomplete.js
46 25 1
function keydown()
in modules/js/autocomplete/autocomplete.js
46 25 1
function calculateMenuPositions()
in modules/closure/select/select.js
122 24 3
function calculateMenuPositions()
in modules/js/select/select.js
122 24 3
top: parseFloat()
in modules/closure/menu/menu.js
79 21 1
VirtualRepeatController.prototype.virtualRepeatUpdate_ = function()
in modules/closure/virtualRepeat/virtualRepeat.js
84 21 2
top: parseFloat()
in modules/js/menu/menu.js
79 21 1
84 21 2
function MenuController()
in modules/closure/menu/menu.js
113 20 9
left: parseFloat()
in modules/closure/menu/menu.js
62 20 1
left: parseFloat()
in modules/js/menu/menu.js
58 20 1
function onScroll()
in modules/closure/sticky/sticky.js
32 17 0
mdSelectCtrl.setSelectValueText = function()
in modules/closure/select/select.js
36 17 1
DateLocaleProvider.prototype.$get = function()
in modules/closure/datepicker/datepicker.js
20 17 2
function compile()
in modules/closure/chips/chips.js
67 17 2
function onScroll()
in modules/js/sticky/sticky.js
32 17 0
mdSelectCtrl.setSelectValueText = function()
in modules/js/select/select.js
36 17 1
function redrawTicks()
in modules/closure/slider/slider.js
32 16 0
function onMenuKeyDown()
in modules/closure/menu/menu.js
50 16 1
MdChipsCtrl.prototype.chipKeydown = function()
in modules/closure/chips/chips.js
30 16 1