Skip to content

Instantly share code, notes, and snippets.

@phillwiggins
Created February 21, 2019 09:25
Show Gist options
  • Save phillwiggins/c881c200f121512a23381211a4770df0 to your computer and use it in GitHub Desktop.
Save phillwiggins/c881c200f121512a23381211a4770df0 to your computer and use it in GitHub Desktop.
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