Created
February 21, 2019 09:25
-
-
Save phillwiggins/c881c200f121512a23381211a4770df0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:bodycal/src/domain/calculations/body_calcuations.dart'; | |
import 'package:bodycal/src/domain/constants/keys_constants.dart'; | |
import 'package:bodycal/src/domain/preferences/pref_fluid.dart'; | |
import 'package:bodycal/src/domain/preferences/pref_gender.dart'; | |
import "package:test/test.dart"; | |
void main() { | |
var female = Gender.female; | |
var male = Gender.male; | |
var weightLB = 200.0; | |
var weightLBZero = 0.0; | |
var heightCM = 187.0; | |
var heightCMZero = 0.0; | |
var age = 30; | |
var ageZero = 0; | |
var activityLevelBase = 1.0; | |
var activityLevelTop = 2.0; | |
var leanBodyMass = 15.0; | |
test("get TDEE/BMR using Mifflin-St Jeor, Male/Activity equals 1930 ", () { | |
// Given & When | |
var answer = getBodyStatsUsingMifflinStJeor( | |
male, weightLB, heightCM, age, activityLevelTop); | |
// Then | |
expect(answer, {keyTdee: 3860, keyBmr: 1930}); | |
}); | |
test("get TDEE/BMR using Mifflin-St Jeor, Female/Activity equals 1764 ", () { | |
// Given & When | |
var answer = getBodyStatsUsingMifflinStJeor( | |
female, weightLB, heightCM, age, activityLevelTop); | |
// Then | |
expect(answer, {keyTdee: 3528, keyBmr: 1764}); | |
}); | |
test("get TDEE/BMR using Mifflin-St Jeor, Male/No activity equals 1930 ", () { | |
// Given & When | |
var answer = getBodyStatsUsingMifflinStJeor( | |
male, weightLB, heightCM, age, activityLevelBase); | |
// Then | |
expect(answer, {keyTdee: 1930, keyBmr: 1930}); | |
}); | |
test("get TDEE/BMR using Mifflin-St Jeor, Female/No activity equals 1764 ", | |
() { | |
// Given & When | |
var answer = getBodyStatsUsingMifflinStJeor( | |
female, weightLB, heightCM, age, activityLevelBase); | |
// Then | |
expect(answer, {keyTdee: 1764, keyBmr: 1764}); | |
}); | |
test("get TDEE/BMR using Mifflin-St Jeor, 0 equals 0", () { | |
// Given & When | |
var answer = getBodyStatsUsingMifflinStJeor( | |
female, weightLBZero, heightCMZero, ageZero, activityLevelBase); | |
// Then | |
expect(answer, {keyTdee: 0, keyBmr: 0}); | |
}); | |
test("get TDEE/BMR using Harris-Benedict, Male/Activity equals 2046 ", () { | |
// Given & When | |
var answer = getBodyStatsUsingHarrisBenedict( | |
male, weightLB, heightCM, age, activityLevelTop); | |
// Then | |
expect(answer, {keyTdee: 4092, keyBmr: 2046}); | |
}); | |
test("get TDEE/BMR using Harris-Benedict, Female/Activity equals 1728 ", () { | |
// Given & When | |
var answer = getBodyStatsUsingHarrisBenedict( | |
female, weightLB, heightCM, age, activityLevelTop); | |
// Then | |
expect(answer, {keyTdee: 3456, keyBmr: 1728}); | |
}); | |
test("get TDEE/BMR using Harris-Benedict, Male/No activity equals 2046 ", () { | |
// Given & When | |
var answer = getBodyStatsUsingHarrisBenedict( | |
male, weightLB, heightCM, age, activityLevelBase); | |
// Then | |
expect(answer, {keyTdee: 2046, keyBmr: 2046}); | |
}); | |
test("get TDEE/BMR using Harris-Benedict, Female/No activity equals 1728 ", | |
() { | |
// Given & When | |
var answer = getBodyStatsUsingHarrisBenedict( | |
female, weightLB, heightCM, age, activityLevelBase); | |
// Then | |
expect(answer, {keyTdee: 1728, keyBmr: 1728}); | |
}); | |
test("get TDEE/BMR using Harris-Benedict, 0 equals 0", () { | |
// Given & When | |
var answer = getBodyStatsUsingHarrisBenedict( | |
female, weightLBZero, heightCMZero, ageZero, activityLevelBase); | |
// Then | |
expect(answer, {keyTdee: 0, keyBmr: 0}); | |
}); | |
test("get TDEE/BMR/LBM using Katch-Mcardle, Male/Activity equals 2035 ", () { | |
// Given & When | |
var answer = getBodyStatsUsingKatchMcardle( | |
leanBodyMass, weightLB, heightCM, age, activityLevelTop); | |
// Then | |
expect(answer, {keyLeanBodyMass: 170, keyTdee: 4070, keyBmr: 2035}); | |
}); | |
test("get TDEE/BMR/LBM using Katch-Mcardle, Male/No activity equals 2035 ", | |
() { | |
// Given & When | |
var answer = getBodyStatsUsingKatchMcardle( | |
leanBodyMass, weightLB, heightCM, age, activityLevelBase); | |
// Then | |
expect(answer, {keyLeanBodyMass: 170, keyTdee: 2035, keyBmr: 2035}); | |
}); | |
test("get TDEE/BMR/LBM using Katch-Mcardle, 0 equals 0", () { | |
// Given & When | |
var answer = getBodyStatsUsingKatchMcardle( | |
leanBodyMass, weightLBZero, heightCMZero, ageZero, activityLevelBase); | |
// Then | |
expect(answer, {keyLeanBodyMass: 0, keyTdee: 0, keyBmr: 0}); | |
}); | |
test("get total calories lost across x weeks, 0 equals 0", () { | |
// Given | |
var weeks = 0; | |
var percent = 0; | |
var currentKCals = 0; | |
var activityKCals = 0; | |
// When | |
var answer = getCaloriesLostOrGainedByWeek( | |
weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 0); | |
}); | |
test("get total calories lost across x weeks, 2200 for 1 week equals 4200", | |
() { | |
// Given | |
var weeks = 1; | |
var percent = 20; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = getCaloriesLostOrGainedByWeek( | |
weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 4200); | |
}); | |
test("get total calories lost across x weeks, 2200 for 4 week equals 16800", | |
() { | |
// Given | |
var weeks = 4; | |
var percent = 20; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = getCaloriesLostOrGainedByWeek( | |
weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 16800); | |
}); | |
test("get total pounds lost across x weeks, 0 equals 0", () { | |
// Given | |
var weeks = 0; | |
var percent = 0; | |
var currentKCals = 0; | |
var activityKCals = 0; | |
// When | |
var answer = | |
getPoundsLostOrGained(weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 0.0); | |
}); | |
test( | |
"get total pounds lost across x weeks, 2200 for 1 week equals 1.2lbs gained", | |
() { | |
// Given | |
var weeks = 1; | |
var percent = 20; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = | |
getPoundsLostOrGained(weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 1.2); | |
}); | |
test( | |
"get total pounds lost across x weeks, 2200 for 4 week equals 4.8lbs gained", | |
() { | |
// Given | |
var weeks = 4; | |
var percent = 20; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = | |
getPoundsLostOrGained(weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 4.8); | |
}); | |
test( | |
"get total pounds lost across x weeks, 2200 for 1 week equals 1.2lbs lost", | |
() { | |
// Given | |
var weeks = 1; | |
var percent = -20; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = | |
getPoundsLostOrGained(weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, -1.2); | |
}); | |
test( | |
"get total pounds lost across x weeks, 2200 for 4 week equals 4.8lbs lost", | |
() { | |
// Given | |
var weeks = 4; | |
var percent = -20; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = | |
getPoundsLostOrGained(weeks, percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, -4.8); | |
}); | |
test("get total pounds lost across daily, 0 equals 0", () { | |
// Given | |
var percent = 0; | |
var currentKCals = 0; | |
var activityKCals = 0; | |
// When | |
var answer = caloriesReducedDaily(percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 0.0); | |
}); | |
test("get total pounds lost across daily, 1 day gaining equals 2400", () { | |
// Given | |
var percent = 10; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = caloriesReducedDaily(percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 2400); | |
}); | |
test("get total pounds lost across daily, 1 day dieting equals 1400", () { | |
// Given | |
var percent = -20; | |
var currentKCals = 2000; | |
var activityKCals = 200; | |
// When | |
var answer = caloriesReducedDaily(percent, currentKCals, activityKCals); | |
// Then | |
expect(answer, 1400); | |
}); | |
test("calorie to pound, 3500 calories equals 1 pound", () { | |
// Given | |
var calories = 3500; | |
// When | |
var answer = caloriesPerPound(calories); | |
// Then | |
expect(answer, 1.0); | |
}); | |
test("calorie to pound, 7000 calories equals 2 pound", () { | |
// Given | |
var calories = 7000; | |
// When | |
var answer = caloriesPerPound(calories); | |
// Then | |
expect(answer, 2.0); | |
}); | |
test("pound to calorie, 1.1 pound equals 3850", () { | |
// Given | |
var pounds = 1.1; | |
// When | |
var answer = poundsPerCalories(pounds); | |
// Then | |
expect(answer, 3850); | |
}); | |
test("pound to calorie, 2 pound equals 7000", () { | |
// Given | |
var pounds = 2.0; | |
// When | |
var answer = poundsPerCalories(pounds); | |
// Then | |
expect(answer, 7000); | |
}); | |
test("pound to calorie, 0 pound equals 0", () { | |
// Given | |
var pounds = 0.0; | |
// When | |
var answer = poundsPerCalories(pounds); | |
// Then | |
expect(answer, 0); | |
}); | |
test("BMI, 0 returns 0", () { | |
// Given | |
var weight = 0.0; | |
var height = 0.0; | |
// When | |
var answer = getBmi(weight, height); | |
// Then | |
expect(answer, 0); | |
}); | |
test("BMI, 187cm and 205lbs returns 26.6", () { | |
// Given | |
var weight = 205.0; | |
var height = 187.0; | |
// When | |
var answer = getBmi(weight, height); | |
// Then | |
expect(answer, 26.6); | |
}); | |
test("lean body mass percent, 0 returns 0", () { | |
// Given | |
var weight = 0.0; | |
var bodyFat = 0.0; | |
// When | |
var answer = getLeanBodyMassPercent(weight, bodyFat); | |
// Then | |
expect(answer, 0); | |
}); | |
test("lean body mass percent, 205lbs and 20% returns 164.0", () { | |
// Given | |
var weight = 205.0; | |
var bodyFat = 20.0; | |
// When | |
var answer = getLeanBodyMassPercent(weight, bodyFat); | |
// Then | |
expect(answer, 164.0); | |
}); | |
test("lean body mass percent using BMI, 0 returns 0", () { | |
// Given | |
var gender = Gender.female; | |
var age = 0; | |
var weight = 0.0; | |
var height = 0.0; | |
// When | |
var answer = getBodyFatUsingBMI(gender, age, weight, height); | |
// Then | |
expect(answer, 0); | |
}); | |
test( | |
"test lean body mass percent using BMI, 205lbs, 30yrs, 183cm returns 26.2", | |
() { | |
// Given | |
var gender = Gender.male; | |
var age = 30; | |
var weight = 205.0; | |
var height = 187.0; | |
// When | |
var answer = getBodyFatUsingBMI(gender, age, weight, height); | |
// Then | |
expect(answer, 22.62); | |
}); | |
test("water intake, 0 returns 0", () { | |
// Given | |
var waterMeasurement = Fluid.milliliters; | |
var minutesSpendExercisingPerDay = 0; | |
var weight = 0.0; | |
var age = 0; | |
// When | |
var answer = getRecommendedWaterIntake( | |
waterMeasurement, minutesSpendExercisingPerDay, weight, age); | |
// Then | |
expect(answer, 0); | |
}); | |
test("water intake, 30yrs, 305lbs, 30 mins exercise returns 0", () { | |
// Given | |
var waterMeasurement = Fluid.milliliters; | |
var minutesSpendExercisingPerDay = 30; | |
var weight = 205.0; | |
var age = 30; | |
// When | |
var answer = getRecommendedWaterIntake( | |
waterMeasurement, minutesSpendExercisingPerDay, weight, age); | |
// Then | |
expect(answer, 4083); | |
}); | |
test("get ideal weight using Robinson formula, 0 returns 0", () { | |
// Given | |
var height = 0.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightRobinson(height, gender); | |
// Then | |
expect(answer, 0); | |
}); | |
test("get ideal weight using Robinson formula, 205lbs/Male returns 171", () { | |
// Given | |
var height = 187.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightRobinson(height, gender); | |
// Then | |
expect(answer, 171.70); | |
}); | |
test( | |
"test get ideal weight using Robinson formula, 205lbs/Female returns 159", | |
() { | |
// Given | |
var height = 187.0; | |
var gender = Gender.female; | |
// When | |
var answer = getIdealWeightRobinson(height, gender); | |
// Then | |
expect(answer, 159.08); | |
}); | |
test("get ideal weight using Miller formula, 0 returns 0", () { | |
// Given | |
var height = 0.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightMiller(height, gender); | |
// Then | |
expect(answer, 0); | |
}); | |
test("get ideal weight using Miller formula, 205lbs/Male returns 166.24", () { | |
// Given | |
var height = 187.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightMiller(height, gender); | |
// Then | |
expect(answer, 166.24); | |
}); | |
test( | |
"test get ideal weight using Miller formula, 205lbs/Female returns 157.91", | |
() { | |
// Given | |
var height = 187.0; | |
var gender = Gender.female; | |
// When | |
var answer = getIdealWeightMiller(height, gender); | |
// Then | |
expect(answer, 157.91); | |
}); | |
test("get ideal weight using Devine formula, 0 returns 0", () { | |
// Given | |
var height = 0.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightDevine(height, gender); | |
// Then | |
expect(answer, 0); | |
}); | |
test("get ideal weight using Devine formula, 205lbs/Male returns 166.24", () { | |
// Given | |
var height = 187.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightDevine(height, gender); | |
// Then | |
expect(answer, 179.30); | |
}); | |
test( | |
"test get ideal weight using Devine formula, 205lbs/Female returns 157.91", | |
() { | |
// Given | |
var height = 187.0; | |
var gender = Gender.female; | |
// When | |
var answer = getIdealWeightDevine(height, gender); | |
// Then | |
expect(answer, 169.38); | |
}); | |
test("get ideal weight using Hamwi formula, 0 returns 0", () { | |
// Given | |
var height = 0.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightHamwi(height, gender); | |
// Then | |
expect(answer, 0); | |
}); | |
test("get ideal weight using Hamwi formula, 205lbs/Male returns 186.91", () { | |
// Given | |
var height = 187.0; | |
var gender = Gender.male; | |
// When | |
var answer = getIdealWeightHamwi(height, gender); | |
// Then | |
expect(answer, 186.91); | |
}); | |
test( | |
"test get ideal weight using Hamwi formula, 205lbs/Female returns 166.38", | |
() { | |
// Given | |
var height = 187.0; | |
var gender = Gender.female; | |
// When | |
var answer = getIdealWeightHamwi(height, gender); | |
// Then | |
expect(answer, 166.38); | |
}); | |
test("get simple max heart rate, 0 returns 0", () { | |
// Given | |
var age = 0; | |
var gender = Gender.female; | |
// When | |
var answer = getSimpleMaxHearRate(age, gender); | |
// Then | |
expect(answer, 0.0); | |
}); | |
test("get simple max heart rate, 0 returns 0", () { | |
// Given | |
var age = 0; | |
var gender = Gender.female; | |
// When | |
var answer = getSimpleMaxHearRate(age, gender); | |
// Then | |
expect(answer, 0); | |
}); | |
test("get simple max heart rate, Male ages 30 returns 190", () { | |
// Given | |
var age = 30; | |
var gender = Gender.male; | |
// When | |
var answer = getSimpleMaxHearRate(age, gender); | |
// Then | |
expect(answer, 190); | |
}); | |
test("get simple max heart rate, Female ages 30 returns 188", () { | |
// Given | |
var age = 30; | |
var gender = Gender.female; | |
// When | |
var answer = getSimpleMaxHearRate(age, gender); | |
// Then | |
expect(answer, 188); | |
}); | |
test("get one rep max (Brzycki), 200lb for 1 rep", () { | |
// Given | |
var weight = 200.0; | |
var reps = 1; | |
// When | |
var answer = getOneRepMaxBrzycki(weight, reps); | |
// Then | |
expect(answer, answer.first == 200.0); | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment