1 | package com.epam.bootcamp.bmi_calculator; | |
2 | ||
3 | public class GuessTheUnits{ | |
4 | ||
5 | private double height; | |
6 | private double weight; | |
7 | private String unitType; | |
8 | | |
9 | | |
10 | /** | |
11 | * Váltószám konstansok | |
12 | */ | |
13 | private static final double ouncesToPounds = 0.0625; | |
14 | private static final double centimeterToMeter = 100; | |
15 | private static final double feetToInch = 12; | |
16 | | |
17 | public GuessTheUnits(double height, double weight) throws Exception{ | |
18 | this.height = height; | |
19 | this.weight = weight; | |
20 |
1
1. <init> : removed call to com/epam/bootcamp/bmi_calculator/GuessTheUnits::guessUnit → KILLED |
guessUnit(); |
21 | } | |
22 | | |
23 | /** | |
24 | * A mértékegység megállapító metódus. | |
25 | * Ha a magasság kisebb száznál, és azon belül 10 és 3 között van, akkor feetben kaptuk a magasságot. | |
26 | * Ha a magasság kisebb száznál, de nagyobb vagy egyenlő 10-el, akkor inchben. | |
27 | * Ha a magasság kisebb vagy egyenlő 3-al, akkor méterben. | |
28 | * Ha a magasság nagyobb száznál, akkor pedig centiméterben. | |
29 | * | |
30 | * A magasság alapján meg tudjuk mondani, hogy milyen mértékegységben kaphattuk a súlyt. | |
31 | * Ha US mértékegységet használunk és a súly nagyobb mint ezer, akkor ounces-ban kaptuk meg a súlyt. | |
32 | * Ha metrikus mértékegységet használunk, és a súly nagyobb mint ezer, valószínűleg két különböző mértékegységben | |
33 | * kaptuk meg a magasságot és a súlyt, ezért hibát dob. | |
34 | * | |
35 | * Ha feetben, centiméterben vagy ounces-ban kaptuk valamelyik értéket, a convertUnit metódussal át kell alakítanunk azt. | |
36 | * @throws Exception | |
37 | */ | |
38 | private void guessUnit() throws Exception{ // kitaláljuk a mértékegységet | |
39 |
2
1. guessUnit : changed conditional boundary → SURVIVED 2. guessUnit : negated conditional → KILLED |
if(this.height < 100){ |
40 |
4
1. guessUnit : changed conditional boundary → SURVIVED 2. guessUnit : changed conditional boundary → SURVIVED 3. guessUnit : negated conditional → KILLED 4. guessUnit : negated conditional → KILLED |
if(this.height < 10 && this.height > 3){ // feet |
41 |
1
1. guessUnit : removed call to com/epam/bootcamp/bmi_calculator/GuessTheUnits::convertUnit → KILLED |
convertUnit("feet"); //átkonvertáljuk inch-re |
42 | this.unitType = "US"; | |
43 |
2
1. guessUnit : changed conditional boundary → SURVIVED 2. guessUnit : negated conditional → KILLED |
}else if(this.height >= 10){ // inch |
44 | this.unitType = "US"; | |
45 | }else{ // meter | |
46 | this.unitType = "metric"; | |
47 | } | |
48 | }else{ // centimeter | |
49 |
1
1. guessUnit : removed call to com/epam/bootcamp/bmi_calculator/GuessTheUnits::convertUnit → KILLED |
convertUnit("centimeter"); //átkonvertáljuk méterre |
50 | this.unitType = "metric"; | |
51 | } | |
52 | | |
53 |
1
1. guessUnit : negated conditional → KILLED |
if(this.unitType.equals("US")){ // ounces |
54 |
2
1. guessUnit : changed conditional boundary → SURVIVED 2. guessUnit : negated conditional → KILLED |
if(this.weight > 1000){ |
55 |
1
1. guessUnit : removed call to com/epam/bootcamp/bmi_calculator/GuessTheUnits::convertUnit → KILLED |
convertUnit("ounces"); //átkonvertáljuk fontra |
56 | } | |
57 | }else{ | |
58 |
2
1. guessUnit : changed conditional boundary → SURVIVED 2. guessUnit : negated conditional → KILLED |
if(this.weight > 1000){ |
59 | throw new Exception("Height and weight is in different metric."); | |
60 | } | |
61 | } | |
62 | } | |
63 | | |
64 | | |
65 | /** | |
66 | * Átváltja a mértékegységeket egységesre. | |
67 | * @param unit | |
68 | */ | |
69 | private void convertUnit(String unit){ | |
70 |
1
1. convertUnit : negated conditional → KILLED |
if(unit.equals("ounces")){ |
71 |
1
1. convertUnit : Replaced double multiplication with division → KILLED |
this.weight = this.weight * ouncesToPounds; |
72 | } | |
73 |
1
1. convertUnit : negated conditional → KILLED |
if(unit.equals("feet")){ |
74 |
1
1. convertUnit : Replaced double multiplication with division → KILLED |
this.height = this.height * feetToInch; |
75 | } | |
76 |
1
1. convertUnit : negated conditional → KILLED |
if(unit.equals("centimeter")){ |
77 |
1
1. convertUnit : Replaced double division with multiplication → KILLED |
this.height = this.height / centimeterToMeter; |
78 | } | |
79 | } | |
80 | | |
81 | /** | |
82 | * Súly getter | |
83 | * @return a súly | |
84 | */ | |
85 | public double getWeight(){ | |
86 |
1
1. getWeight : replaced double return with 0.0d for com/epam/bootcamp/bmi_calculator/GuessTheUnits::getWeight → KILLED |
return this.weight; |
87 | } | |
88 | | |
89 | /** | |
90 | * Magasság getter | |
91 | * @return magasság | |
92 | */ | |
93 | public double getHeight(){ | |
94 |
1
1. getHeight : replaced double return with 0.0d for com/epam/bootcamp/bmi_calculator/GuessTheUnits::getHeight → KILLED |
return this.height; |
95 | } | |
96 | | |
97 | /** | |
98 | * A mértékegység típusa getter | |
99 | * @return mértékegység típusa | |
100 | */ | |
101 | public String getUnitType(){ | |
102 |
1
1. getUnitType : replaced return value with "" for com/epam/bootcamp/bmi_calculator/GuessTheUnits::getUnitType → KILLED |
return this.unitType; |
103 | } | |
104 | } | |
Mutations | ||
20 |
1.1 |
|
39 |
1.1 2.2 |
|
40 |
1.1 2.2 3.3 4.4 |
|
41 |
1.1 |
|
43 |
1.1 2.2 |
|
49 |
1.1 |
|
53 |
1.1 |
|
54 |
1.1 2.2 |
|
55 |
1.1 |
|
58 |
1.1 2.2 |
|
70 |
1.1 |
|
71 |
1.1 |
|
73 |
1.1 |
|
74 |
1.1 |
|
76 |
1.1 |
|
77 |
1.1 |
|
86 |
1.1 |
|
94 |
1.1 |
|
102 |
1.1 |