health-calculator
Version:
A library to help calculate well known health-related metrics.
67 lines (57 loc) • 1.72 kB
JavaScript
const calc = require( '../lib/sports' );
test( 'oneRm()', () => {
const cases = [
[ 3, 20, 'epley', 22 ],
[ 3, 20, 'brzycki', 21.18 ],
[ 3, 20, 'lombardi', 22.32 ],
[ 3, 20, 'mayhew', 22.8 ],
[ 3, 20, 'oconner', 21.5 ],
[ 3, 20, 'wathan', 21.8 ],
[ 3, 20, 'lander', 21.44 ],
[ 10, 100, 'epley', 133.33 ],
[ 10, 100, 'brzycki', 133.37 ],
[ 10, 100, 'lombardi', 125.89 ],
[ 10, 100, 'mayhew', 130.93 ],
[ 10, 100, 'oconner', 125 ],
[ 10, 100, 'wathan', 134.75 ],
[ 10, 100, 'lander', 134.07 ],
[ 10, 0, 'epley', 0 ],
[ 10, 0, 'brzycki', 0 ],
[ 10, 0, 'lombardi', 0 ],
[ 10, 0, 'mayhew', 0 ],
[ 10, 0, 'oconner', 0 ],
[ 10, 0, 'wathan', 0 ],
[ 10, 0, 'lander', 0 ],
[ 0, 100, 'epley', new Error( 'reps must be greater than 0' ) ],
];
cases.forEach( ( [ reps, weight, formula, expected ] ) => {
if ( expected instanceof Error ) {
expect( () => calc.oneRm( reps, weight, formula ) ).toThrow( expected );
} else {
expect( calc.oneRm( reps, weight, formula ) ).toBe( expected );
}
} );
} );
test( 'hrMax()', () => {
const cases = [
[ 20, 'haskell', 200 ],
[ 20, 'inbar', 192 ],
[ 20, 'nes', 198 ],
[ 20, 'oakland', 189 ],
[ 20, 'tanaka', 194 ],
[ 60, 'haskell', 160 ],
[ 60, 'inbar', 165 ],
[ 60, 'nes', 173 ],
[ 60, 'oakland', 167 ],
[ 60, 'tanaka', 166 ],
[ 0, 'haskell', new Error( 'age must be between 1 and 124' ) ],
[ 125, 'haskell', new Error( 'age must be between 1 and 124' ) ],
];
cases.forEach( ( [ age, formula, expected ] ) => {
if ( expected instanceof Error ) {
expect( () => calc.hrMax( age, formula ) ).toThrow( expected );
} else {
expect( calc.hrMax( age, formula ) ).toBe( expected );
}
} );
} );