53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| //golangcitest:args -Egocognit
 | |
| //golangcitest:config_path testdata/gocognit.yml
 | |
| package testdata
 | |
| 
 | |
| func GoCognit_CC4_GetWords(number int) string { // want "cognitive complexity 4 of func .* is high .*"
 | |
| 	if number == 1 { // +1
 | |
| 		return "one"
 | |
| 	} else if number == 2 { // +1
 | |
| 		return "a couple"
 | |
| 	} else if number == 3 { // +1
 | |
| 		return "a few"
 | |
| 	} else { // +1
 | |
| 		return "lots"
 | |
| 	}
 | |
| } // total complexity = 4
 | |
| 
 | |
| 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 { // want "cognitive complexity 3 of func .* is high .*"
 | |
| 	if n <= 1 { // +1
 | |
| 		return 1
 | |
| 	} else { // +1
 | |
| 		return n + GoCognit_CC3_Fact(n-1) // +1
 | |
| 	}
 | |
| } // total complexity = 3
 | |
| 
 | |
| func GoCognit_CC7_SumOfPrimes(max int) int { // want "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
 | 
