Lab 2 Feedback

Marking scheme:
--------------------

2 / 2  -passes all unit tests AND
       -none or very minor style errors

--------------------

TA Comments:

--------------------

Style checker output:

No style errors found by checkstyle; TAs, please check for poorly named
variables, unusual programming constructs, and other style errors.
--------------------

Unit tester output:

Passed all unit tests.

--------------------

Your submission:

package implementation;

public class Person {
        private static final double LOWERBOUND = 18.5;
        private static final double MID = 25.0;
        private static final double UPPERBOUND = 30.0;

        private String n;
        private double weight;
        private double height;
        private double bmi;

        /**
         * just deploys inputed string and assigns it to variable 'n'
         * 
         * @param name an inputed string
         */
        public Person(String name) {
                n = name;
        }
        
        /**
         * retrieves value of 'n'
         * @return n value
         */
        public String getName() {
                return n;
        }

        /**
         * retrieves value of 'weight' 
         * @return valid weight value entered
         */
        public double getWeight() {
                return weight;
        }

        /**
         * retrieves value of 'height' 
         * @return valid height value entered 
         */
        public double getHeight() {
                return height;
        }

        /**
         * calculates bmi and rounds it up to tenth  decimal place
         * @return bmi rounded up
         */
        public double getBMI() {
                double bmi1 = (weight / Math.pow(height, 2)) * 10;
                double bmi2 = Math.round(bmi1);
                bmi = bmi2 / 10;
                return bmi;
        }
        /**
         * checks if the entered value for weight is valid
         * @param w that must be positive nonzero number
         * @throws IllegalArgumentException if the value 'w' is non-positive
         */
        public void setWeight(double w) throws IllegalArgumentException {
                if (w <= 0) {
                        throw new IllegalArgumentException("Illegal initial value " + w);
                } 
                else {
                        weight = w;
                }
        }

        /**
         * checks if the entered value for height is valid
         * @param h that must be positive nonzero number
         * @throws IllegalArgumentException if the value 'h' is non-positive
         */
        public void setHeight(double h) throws IllegalArgumentException {
                if (h <= 0) {
                        throw new IllegalArgumentException("Illegal initial value " + h);
                } 
                else {
                        height = h;
                }

        }

        /**
         * compares the calculated bmi and tries to fit it in a category by comparing it to the
         * final values initiated earlier
         * @return the category in which the person qualifies
         */
        public String getInterpretationOfBMI() {
                
                this.getBMI();

                if (bmi < LOWERBOUND) {
                        return "underweight";
                } else if (bmi < MID) {
                        return "normal";
                } else if (bmi < UPPERBOUND) {
                        return "overweight";
                } else {
                        return "obese";
                }
        }
}