Commit 77113b1
Changed files (2)
src
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());
+ }
+}