6
6
7
7
'''
8
8
9
-
9
+ branch_coverage = {
10
+ "check_1" : False , # if branch for x > 0
11
+ "check_2" : False , # else branch
12
+ "check_3" : False ,
13
+ "check_4" : False ,
14
+ }
10
15
11
16
def stoogesort (arr , l , h ):
12
17
if l >= h :
18
+ branch_coverage ["check_1" ] = True
13
19
return
14
20
15
21
# If first element is smaller
16
22
# than last, swap them
17
23
if arr [l ]> arr [h ]:
24
+ branch_coverage ["check_2" ] = True
18
25
t = arr [l ]
19
26
arr [l ] = arr [h ]
20
27
arr [h ] = t
21
28
22
29
# If there are more than 2 elements in
23
30
# the array
24
31
if h - l + 1 > 2 :
32
+ branch_coverage ["check_3" ] = True
25
33
t = (int )((h - l + 1 )/ 3 )
26
34
27
35
# Recursively sort first 2 / 3 elements
@@ -33,11 +41,27 @@ def stoogesort(arr, l, h):
33
41
# Recursively sort first 2 / 3 elements
34
42
# again to confirm
35
43
stoogesort (arr , l , (h - t ))
44
+
45
+ branch_coverage ["check_4" ] = True
46
+
47
+ def print_coverage ():
48
+ total = len (branch_coverage )
49
+ reached = sum (branch_coverage .values ())
50
+ coverage_percentage = (reached / total ) * 100
51
+ for branch , hit in branch_coverage .items ():
52
+ print (f"{ branch } was { 'hit' if hit else 'not hit' } " )
53
+ print (f"coverage_percentage: { coverage_percentage } %" )
54
+
55
+ arr1 = [10 , - 1 , 2 , 3 , 0 ]
56
+ arr2 = []
57
+ result = stoogesort (arr1 , 0 , len (arr1 ) - 1 )
58
+ result = stoogesort (arr1 , 0 , len (arr2 ) - 1 )
59
+ print_coverage ()
36
60
37
61
38
- if __name__ == "__main__" :
39
- array = [1 ,3 ,64 ,5 ,7 ,8 ]
40
- n = len (array )
41
- stoogesort (array , 0 , n - 1 )
42
- for i in range (0 , n ):
43
- print (array [i ], end = ' ' )
62
+ # if __name__ == "__main__":
63
+ # array = [1,3,64,5,7,8]
64
+ # n = len(array)
65
+ # stoogesort(array, 0, n-1)
66
+ # for i in range(0, n):
67
+ # print(array[i], end = ' ')
0 commit comments