Note: This is a class activity, nothing needs to be delivered.
Place all the requested functions and unit tests in a name space called
simple
.
f2c
that takes x
degrees Fahrenheit and converts them to degrees Celsius. Unit tests:
(deftest test-f2c (is (= 100.0 (f2c 212.0))) (is (= 0.0 (f2c 32.0))) (is (= -40.0 (f2c -40.0))))Tip: ºC = (ºF - 32) × 5 ÷ 9
sign
that takes an integer value n. It returns
-1 if n is negative, 1 if
n is positive greater than zero, or 0 if
n is zero. Unit tests:
(deftest test-sign (is (= -1 (sign -5))) (is (= 1 (sign 10))) (is (= 0 (sign 0))))
Write a function called roots
that returns a
vector containing the two possible roots that solve a quadratic
equation given its three coefficients (a, b,
c) using the following formula:
Unit tests:
(deftest test-roots (is (= [-1.0 -1.0] (roots 2.0 4.0 2.0))) (is (= [0.0 0.0] (roots 1.0 0.0 0.0))) (is (= [-0.25 -1.0] (roots 4.0 5.0 1.0))))Use the
Math/sqrt
function to compute the square root
of a number.
The BMI (body mass index) is used to determine if a person's weight and height proportion is adequate. The BMI may be calculated using the following formula:
BMI = (weight) ÷ (height^{2})
Where weight should be given in kilograms and height in meters. The following table shows how different BMI ranges are classified:
BMI range | Description |
---|---|
BMI < 20 | underweight |
20 ≤ BMI < 25 | normal |
25 ≤ BMI < 30 | obese1 |
30 ≤ BMI < 40 | obese2 |
40 ≤ BMI | obese3 |
Write a function called bmi
that takes two
arguments: weight and height. It should
return a symbol that represents the corresponding BMI
description computed from its input.
Unit tests:
(deftest test-bmi (is (= 'underweight (bmi 45 1.7))) (is (= 'normal (bmi 55 1.5))) (is (= 'obese1 (bmi 76 1.7))) (is (= 'obese2 (bmi 81 1.6))) (is (= 'obese3 (bmi 120 1.6))))