1
1
package com .fishercoder .solutions ;
2
+ import java .util .HashMap ;
3
+ import java .util .Map ;
4
+
2
5
3
6
public class _29 {
4
7
5
8
public static class Solution1 {
9
+
10
+ private static Map <String , Boolean > branchCoverage = new HashMap <>();
11
+
12
+ static {
13
+ branchCoverage .put ("flag1" , false );
14
+ branchCoverage .put ("flag2" , false );
15
+ branchCoverage .put ("flag3" , false );
16
+ branchCoverage .put ("flag4" , false );
17
+ branchCoverage .put ("flag5" , false );
18
+ branchCoverage .put ("flag6" , false );
19
+ branchCoverage .put ("flag7" , false );
20
+ }
21
+
22
+ public void printCoverage () {
23
+ for (Map .Entry <String , Boolean > entry : branchCoverage .entrySet ()) {
24
+ System .out .println (entry .getKey () + " was " + (entry .getValue () ? "hit" : "not hit" ));
25
+ }
26
+ }
27
+
6
28
/**
7
29
* credit: https://leetcode.com/problems/divide-two-integers/solution/ solution 1
8
30
* <p>
@@ -16,29 +38,37 @@ public static class Solution1 {
16
38
* Space: O(1)
17
39
*/
18
40
public int divide (int dividend , int divisor ) {
19
- if (dividend == Integer .MIN_VALUE && divisor == -1 ) {
41
+ if (dividend == Integer .MIN_VALUE && divisor == -1 ) { //1
42
+ branchCoverage .put ("flag1" , true );
20
43
return Integer .MAX_VALUE ;
21
44
}
22
45
int negativeCount = 0 ;
23
- if (dividend < 0 ) {
46
+ if (dividend < 0 ) { //2
47
+ branchCoverage .put ("flag2" , true );
24
48
negativeCount ++;
25
- } else {
49
+ } else { //3
50
+ branchCoverage .put ("flag3" , true );
26
51
dividend = -dividend ;
27
52
}
28
- if (divisor < 0 ) {
53
+ if (divisor < 0 ) { //4
54
+ branchCoverage .put ("flag4" , true );
29
55
negativeCount ++;
30
- } else {
56
+ } else { //5
57
+ branchCoverage .put ("flag5" , true );
31
58
divisor = -divisor ;
32
59
}
33
60
34
61
int quotient = 0 ;
35
- while (dividend <= divisor ) {
62
+ while (dividend <= divisor ) { //6
63
+ branchCoverage .put ("flag6" , true );
36
64
dividend -= divisor ;
37
65
quotient ++;
38
66
}
39
- if (negativeCount == 1 ) {
67
+ if (negativeCount == 1 ) { //7
68
+ branchCoverage .put ("flag7" , true );
40
69
quotient = -quotient ;
41
70
}
71
+ printCoverage ();
42
72
return quotient ;
43
73
}
44
74
}
0 commit comments