ISQA_2 - Metric/Imp Converter
User Stories
- I can GET
/api/convert with a single parameter containing an accepted number and unit and have it converted.
- Hint: Split the input by looking for the index of the first character.
- I can convert 'gal' to 'L' and vice versa. (1 gal to 3.78541 l)
- I can convert 'lbs' to 'kg' and vice versa. (1 lbs to 0.453592 kg)
- I can convert 'mi' to 'km' and vice versa. (1 mi to 1.60934 km)
- All incoming units should be accepted in both upper and lower case, but should be returned in both the
initUnit and
returnUnit in lower case, except for liter, which should be represented as an uppercase "L".
- If my unit of measurement is invalid, returned will be '
invalid unit'.
- If my number is invalid, returned with will '
invalid number'.
- If both are invalid, return will be '
invalid number and unit'.
- I can use fractions, decimals or both in my parameter(ie. 5, 1/2, 2.5/6), but if nothing is provided it will default to 1.
- My return will consist of the
initNum, initUnit, returnNum, returnUnit, and string spelling out units in format {initNum} {initial_Units} converts to {returnNum} {return_Units} with the numbers rounded to 5 decimals.
- All 16 unit tests are complete and passing.
- All 5 functional tests are complete and passing.
Example usage:
/api/convert?input=4gal
/api/convert?input=1/2km
/api/convert?input=5.4/3lbs
/api/convert?input=kg
Example return:
{initNum: 3.1, initUnit: 'mi', returnNum: 4.98895, returnUnit: 'km', string: '3.1 miles converts to 4.98895 kilometers'}