Commit 77113b1

mo <mo.khan@gmail.com>
2019-07-19 21:51:12
calculate BMI
1 parent 12634f8
Changed files (2)
src/Q7/Person.java
@@ -0,0 +1,70 @@
+package Q7;
+
+public class Person {
+  private double bmi;
+  private double height;
+  private double weight;
+  private String category;
+  private String name;
+
+  public Person(String name, double weight, double height) {
+    this.name = name;
+    this.weight = weight;
+    this.height = height;
+    this.updateBMI();
+  }
+
+  public String getCategory() {
+    return this.getCategory(this.bmi);
+  }
+
+  public String getCategory(double bmi) {
+    if (bmi < 18.5) {
+      return "Underweight";
+    } else if (bmi < 25.0) {
+      return "Normal";
+    } else if (bmi < 30.0) {
+      return "Overweight";
+    }
+    return "Obese";
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public double getBMI() {
+    return this.bmi;
+  }
+
+  public double getHeight() {
+    return this.height;
+  }
+
+  public double getWeight() {
+    return this.weight;
+  }
+
+  public void setBMI(double bmi) {
+    this.bmi = bmi;
+  }
+
+  public void setHeight(double height) {
+    this.height = height;
+    this.updateBMI();
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public void setWeight(double weight) {
+    this.weight = weight;
+    this.updateBMI();
+  }
+
+  // BMI = (weight (lb) * 703) / ((height (in))^2)
+  private void updateBMI() {
+    this.setBMI((this.weight * 703) / Math.pow(height, 2));
+  }
+}
src/Q7/PersonTest.java
@@ -0,0 +1,29 @@
+package ca.mokhan.test;
+
+import Q7.*;
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class PersonTest extends TestCase {
+  private Person subject;
+
+  public PersonTest(String testName) {
+    super(testName);
+    this.subject = new Person("mo", 1, 1);
+  }
+
+  public static Test suite() {
+    return new TestSuite(PersonTest.class);
+  }
+
+  public void test_getBMI_underweight() {
+    this.subject.setHeight(72);
+    this.subject.setWeight(100);
+
+    assertEquals("Underweight", this.subject.getCategory());
+  }
+}