diff --git a/test/testdata/gocognit.go b/test/testdata/gocognit.go index f73420b4ff60..dd18c0e82ac7 100644 --- a/test/testdata/gocognit.go +++ b/test/testdata/gocognit.go @@ -2,7 +2,7 @@ //config: linters-settings.gocognit.min-complexity=2 package testdata -func GocognitGetWords(number int) string { // ERROR "cognitive complexity 4 of func .* is high .*" +func GoCognit_CC4_GetWords(number int) string { // ERROR "cognitive complexity 4 of func .* is high .*" if number == 1 { // +1 return "one" } else if number == 2 { // +1 @@ -14,10 +14,39 @@ func GocognitGetWords(number int) string { // ERROR "cognitive complexity 4 of f } } // total complexity = 4 -func GoCognitFact(n int) int { // ERROR "cognitive complexity 3 of func .* is high .*" +func GoCognit_CC1_GetWords(number int) string { + switch number { // +1 + case 1: + return "one" + case 2: + return "a couple" + case 3: + return "a few" + default: + return "lots" + } +} // Cognitive complexity = 1 + +func GoCognit_CC3_Fact(n int) int { // ERROR "cognitive complexity 3 of func .* is high .*" if n <= 1 { // +1 return 1 } else { // +1 - return n + GoCognitFact(n-1) // +1 + return n + GoCognit_CC3_Fact(n-1) // +1 } } // total complexity = 3 + +func GoCognit_CC7_SumOfPrimes(max int) int { // ERROR "cognitive complexity 7 of func .* is high .*" + var total int + +OUT: + for i := 1; i < max; i++ { // +1 + for j := 2; j < i; j++ { // +2 (nesting = 1) + if i%j == 0 { // +3 (nesting = 2) + continue OUT // +1 + } + } + total += i + } + + return total +} // Cognitive complexity = 7