Genese complexity report

<- ast-method.service.ts
Methods : 3
Complexity index : 14.1
Cyclomatic complexity : 3
Cognitive complexity
100 % Correct 3/3
0 % Warning 0/3 (threshold : 10)
0 % Error 0/3 (threshold : 20)
Cyclomatic complexity
100 % Correct 3/3
0 % Warning 0/3 (threshold : 5)
0 % Error 0/3 (threshold : 10)
Methods of ast-method.service.ts
sortByDecreasingCognitiveCpx Complexity Index 3.7 Cyclomatic complexity 1
                            
                                
            
            
                /**
                 * The method sorting the rows of the methods report by decreasing cognitive complexity
                 * @param methodsReport     // The array to sort
                 */
                static sortByDecreasingCognitiveCpx(methodsReport: MethodReport[]): MethodReport[] { // ---------- +0.6 Complexity index (+0.6 atomic)
                    return methodsReport.sort((a, b) => b.cpxIndex - a.cpxIndex); // ----------------------------- +3.1 Complexity index (+1.1 atomic, +2 structural)
                }
            
                            
                        
addMethodCpxByStatus Complexity Index 5.3 Cyclomatic complexity 1
                            
                                
                
            
                /**
                 * Returns the addition of a ComplexitiesByStatus object and the complexities scores of a given astMethod
                 * @param cpxByStatus   // The object to add
                 * @param astMethod    // The AstMethod in question
                 */
                addMethodCpxByStatus(cpxByStatus: ComplexitiesByStatus, astMethod: AstMethod): ComplexitiesByStatus { // ----------- +0.6 Complexity index (+0.6 atomic)
                    let cpx: ComplexitiesByStatus = cpxByStatus ?? new ComplexitiesByStatus(); // ---------------------------------- +0.7 Complexity index (+0.7 atomic)
                    cpx = this.incrementMethodByCpxType(cpx, ComplexityType.COGNITIVE, astMethod.cognitiveStatus); // -------------- +1.9 Complexity index (+0.9 atomic, +1 structural)
                    cpx = this.incrementMethodByCpxType(cpx, ComplexityType.CYCLOMATIC, astMethod.cyclomaticStatus); // ------------ +1.9 Complexity index (+0.9 atomic, +1 structural)
                    return cpx; // ------------------------------------------------------------------------------------------------- +0.2 Complexity index (+0.2 atomic)
                }
            
                            
                        
incrementMethodByCpxType Complexity Index 5.1 Cyclomatic complexity 1
                            
                                
                
            
            
                /**
                 * For a given complexity type, returns the value of a ComplexitiesByStatus object incremented of one for a given MethodStatus
                 * @param cpxByStatus       // The ComplexitiesByStatus object
                 * @param complexityType    // The type of complexity to increment
                 * @param methodStatus      // The complexity status
                 */
                private incrementMethodByCpxType(cpxByStatus: ComplexitiesByStatus, complexityType: ComplexityType, methodStatus: MethodStatus): ComplexitiesByStatus { // ------- +0.8 Complexity index (+0.8 atomic)
                    const status: ComplexitiesByStatus = cpxByStatus; // --------------------------------------------------------------------------------------------------------- +0.4 Complexity index (+0.4 atomic)
                    switch (methodStatus) { // ----------------------------------------------------------------------------------------------------------------------------------- +1.2 Complexity index (+0.2 atomic, +1 structural)
                        case MethodStatus.CORRECT: // ---------------------------------------------------------------------------------------------------------------------------- +0.3 Complexity index (+0.3 atomic)
                            status[complexityType].correct = status[complexityType].correct + 1; // ------------------------------------------------------------------------------ +0.9 Complexity index (+0.9 atomic)
                            break;
                        case MethodStatus.WARNING: // ---------------------------------------------------------------------------------------------------------------------------- +0.3 Complexity index (+0.3 atomic)
                            status[complexityType].warning++; // ----------------------------------------------------------------------------------------------------------------- +0.3 Complexity index (+0.3 atomic)
                            break;
                        case MethodStatus.ERROR: // ------------------------------------------------------------------------------------------------------------------------------ +0.3 Complexity index (+0.3 atomic)
                            status[complexityType].error++; // ------------------------------------------------------------------------------------------------------------------- +0.3 Complexity index (+0.3 atomic)
                            break;
                        default: // ---------------------------------------------------------------------------------------------------------------------------------------------- +0.1 Complexity index (+0.1 atomic)
                            break;
                    }
                    return status; // -------------------------------------------------------------------------------------------------------------------------------------------- +0.2 Complexity index (+0.2 atomic)
                }