commit a73aceb13035be2bf75322bc2663ad0dcfaf5692
parent 282143d3f2fe613380ba2c9983b8ba8071ba8333
Author: ashermorgan <59518073+ashermorgan@users.noreply.github.com>
Date: Wed, 11 Aug 2021 12:29:02 -0700
Add pace utilities
Diffstat:
2 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/src/utils/paces.js b/src/utils/paces.js
@@ -0,0 +1,42 @@
+/**
+ * Calculate pace from distance and time
+ * @param {Number} distance The distance (in meters)
+ * @param {Number} time The time (in seconds)
+ * @returns {Number} The pace (in seconds per meter)
+ */
+function getPace(distance, time) {
+ return time / distance;
+}
+
+
+
+/**
+ * Calculate time from pace and distance
+ * @param {Number} pace The pace (in seconds per meter)
+ * @param {Number} distance The distance (in meters)
+ * @returns {Number} The time (in seconds)
+ */
+function getTime(pace, distance) {
+ return pace * distance;
+
+}
+
+
+
+/**
+ * Calculate distance from pace and time
+ * @param {Number} pace The pace (in seconds per meter)
+ * @param {Number} time The time (in seconds)
+ * @return {Number} The distance (in meters)
+ */
+function getDistance(pace, time) {
+ return time / pace;
+}
+
+
+
+export default {
+ getPace,
+ getTime,
+ getDistance,
+}
diff --git a/tests/unit/pace.spec.js b/tests/unit/pace.spec.js
@@ -0,0 +1,24 @@
+import { expect } from 'chai';
+import pace from '@/utils/paces.js';
+
+
+
+describe('utils/pace.js', () => {
+ describe('getPace method', () => {
+ it('2 meters in 6 seconds should equal 3 seconds per meter', () => {
+ expect(pace.getPace(2, 6)).to.equal(3);
+ });
+ });
+
+ describe('getTime method', () => {
+ it('2 meters at 3 seconds per meter should equal 6 seconds', () => {
+ expect(pace.getTime(3, 2)).to.equal(6);
+ });
+ });
+
+ describe('getDistance method', () => {
+ it('6 seconds at 3 seconds per meter should equal 2 meters', () => {
+ expect(pace.getDistance(3, 6)).to.equal(2);
+ });
+ });
+});