UNPKG

@dynamic-data/garmin-mockups

Version:
791 lines (708 loc) 26.4 kB
import { getRandomInt, getSleepDate, getRandomTime } from '@dynamic-data/utils'; import MOCK from '@dynamic-data/garmin-data'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var DailiesDataModel = { summaryid: function summaryid() { function makeid(length) { var result = 'x'; var characters = 'abcdef0123456789'; var charactersLength = characters.length; for (var i = 1; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); if ((i + 1) % 8 === 0) { result += "-"; } else if (i + 2 === length) { result += "-"; } } return result; } return makeid(21); }, /* starttimeinseconds: () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020, 2050)); finalDate.setMonth(getRandomInt(0, 11)); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1, maxMonthDate.getDate())); finalDate.setHours(getRandomInt(1, 23), getRandomInt(1, 59), getRandomInt(1, 59), getRandomInt(1, 999)) return (Math.floor(finalDate.getTime() / 1000)) }, calendardate: (timestamp) => { let finalDate = new Date(timestamp * 1000); return (finalDate.getFullYear() + "-" + (finalDate.getMonth() + 1) + "-" + finalDate.getDate()) }, */ reststressdurationinseconds: function reststressdurationinseconds() { return getRandomInt(20, 35) * 1000; }, restingheartrateinbeatsperminute: function restingheartrateinbeatsperminute() { return getRandomInt(49, 82); }, minheartrateinbeatsperminute: function minheartrateinbeatsperminute(resting) { return resting - getRandomInt(1, 10); }, maxheartrateinbeatsperminute: function maxheartrateinbeatsperminute(resting) { return resting + getRandomInt(10, 50); }, averageheartrateinbeatsperminute: function averageheartrateinbeatsperminute(resting) { return resting + getRandomInt(-10, 10); }, timeoffsetheartratesamples: function timeoffsetheartratesamples(min, max) { var arr = []; var runOn = getRandomInt(1, 5); var number = Math.round((max + min) / 2); for (var i = 0; i < 3728; i++) { if (runOn === 0) { runOn = getRandomInt(1, 10); var x = getRandomInt(-10, 10); while (number + x < min || number + x > max) { x = getRandomInt(-10, 10); } number = number + x; } arr.push(number); runOn -= 1; } var obj = {}; arr.forEach(function (elem, i) { obj[i * 15] = elem; }); // let finalReturn = {} return obj; }, durationinseconds: function durationinseconds() { return getRandomInt(432, 720) * 100; }, distanceinmeters: function distanceinmeters(steps) { var avgDist = (3410 + getRandomInt(-200, 200)) / 6200; return (avgDist * steps).toFixed(1); }, activekilocalories: function activekilocalories(steps) { var avgCalories = (404 + Math.round(-50, 50)) / 10000; return Math.round(steps * avgCalories); }, steps: function steps() { return getRandomInt(20, 130) * 100; }, starttimeoffsetinseconds: function starttimeoffsetinseconds() { var timezones = [-12, -11, -10, -9.5, -9, -8, -7, -6, -5, -4, -3.5, -3, -2, -1, 0, 1, 2, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 8, 8.75, 9, 9.5, 10, 10.5, 11, 12, 12.75, 13, 14]; return timezones[getRandomInt(0, timezones.length - 1)] * 60 * 60; }, bmrkilocalories: function bmrkilocalories() { return getRandomInt(7, 25) * 100; }, activitytype: function activitytype() { var text = ["WALKING", "RUNNING", "CYCLING", "SWIMMING", "HIKING", "BMX"]; return text[getRandomInt(0, text.length - 1)]; }, floorsclimbed: function floorsclimbed() { return getRandomInt(1, 15); }, floorsclimbedgoal: function floorsclimbedgoal() { return getRandomInt(1, 15); }, stepsgoal: function stepsgoal() { return getRandomInt(2, 13) * 1000; }, intensitydurationgoalinseconds: function intensitydurationgoalinseconds(steps) { var ratio = Math.round((6200 + getRandomInt(-10, 10) * 100) / 9000); return ratio * steps; }, maxstresslevel: function maxstresslevel() { return getRandomInt(80, 100); }, stressqualifier: function stressqualifier() { var qualifier = ["unknown", "high", "low", "medium"]; //NB: high, low and medium are not offical values (just placeholder). Please replace as neccessary. return qualifier[getRandomInt(0, qualifier.length - 1)]; }, averagestresslevel: function averagestresslevel() { return getRandomInt(1, 20); }, vigorousintensitydurationinseconds: function vigorousintensitydurationinseconds() { return getRandomInt(12, 50) * 100; }, moderateintensitydurationinseconds: function moderateintensitydurationinseconds() { return getRandomInt(12, 50) * 100; } }; var EpochsDataModel = { summaryid: function summaryid() { function makeid(length) { var result = 'x'; var characters = 'abcdef0123456789'; var charactersLength = characters.length; for (var i = 1; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); if ((i + 1) % 8 === 0) { result += "-"; } } return result; } return makeid(17); }, activitytype: function activitytype() { var activities = ["SEDENTARY", "EXAMPLE2", "EXAMPLE3", "EXAMPLE4"]; return activities[getRandomInt(0, activities.length - 1)]; }, activekilocalories: function activekilocalories() { return getRandomInt(0, 999); }, steps: function steps() { return getRandomInt(0, 9999); }, distanceinmeters: function distanceinmeters() { return getRandomInt(0, 9999) / 10; }, durationinseconds: function durationinseconds() { return getRandomInt(0, 999); }, activetimeinseconds: function activetimeinseconds() { return getRandomInt(0, 999); }, starttimeinseconds: function starttimeinseconds() { var finalDate = new Date(0); var maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020, 2050)); finalDate.setMonth(getRandomInt(0, 11)); finalDate.setDate(1); maxMonthDate = finalDate; maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0); finalDate.setDate(getRandomInt(1, maxMonthDate.getDate())); finalDate.setHours(getRandomInt(1, 23), getRandomInt(1, 59), getRandomInt(1, 59), getRandomInt(1, 999)); return Math.floor(finalDate.getTime() / 1000); }, starttimeoffsetinseconds: function starttimeoffsetinseconds() { var timezones = [-12, -11, -10, -9.5, -9, -8, -7, -6, -5, -4, -3.5, -3, -2, -1, 0, 1, 2, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 8, 8.75, 9, 9.5, 10, 10.5, 11, 12, 12.75, 13, 14]; return timezones[getRandomInt(0, timezones.length - 1)] * 60 * 60; }, met: function met() { //https://golf.procon.org/met-values-for-800-activities/ return getRandomInt(10, 198) / 10; }, intensity: function intensity() { var intensities = ["SEDENTARY", "EXAMPLE2", "EXAMPLE3", "EXAMPLE4"]; return intensities[getRandomInt(0, intensities.length - 1)]; }, meanmotionintensity: function meanmotionintensity() { return getRandomInt(0, 999) / 10; }, maxmotionintensity: function maxmotionintensity() { return getRandomInt(0, 999) / 10; } }; var remNum = getRandomInt(6, 10); var awakeNum = getRandomInt(1, 3); var deepNum = getRandomInt(5, 8); var lightNum = deepNum + awakeNum + remNum + 1; var unmeasurableNum = getRandomInt(0, 2); var SleepsDataModel = { summaryid: function summaryid() { function makeid(length) { var result = 'x'; var characters = 'abcdef0123456789'; var charactersLength = characters.length; for (var i = 1; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); if ((i + 1) % 8 === 0) { result += "-"; } } return result; } return makeid(20); }, starttimeinseconds: function starttimeinseconds() { var finalDate = new Date(0); var maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020, 2050)); finalDate.setMonth(getRandomInt(0, 11)); finalDate.setDate(1); maxMonthDate = finalDate; maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0); finalDate.setDate(getRandomInt(1, maxMonthDate.getDate())); finalDate.setHours(getRandomInt(1, 23), getRandomInt(1, 59), getRandomInt(1, 59), getRandomInt(1, 999)); return Math.floor(finalDate.getTime() / 1000); }, calendardate: function calendardate(timestamp) { var finalDate = new Date(timestamp * 1000); return finalDate.getFullYear() + "-" + (finalDate.getMonth() + 1) + "-" + finalDate.getDate(); }, starttimeoffsetinseconds: function starttimeoffsetinseconds() { var timezones = [-12, -11, -10, -9.5, -9, -8, -7, -6, -5, -4, -3.5, -3, -2, -1, 0, 1, 2, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 8, 8.75, 9, 9.5, 10, 10.5, 11, 12, 12.75, 13, 14]; return timezones[getRandomInt(0, timezones.length - 1)] * 60 * 60; }, lightsleepdurationinseconds: function lightsleepdurationinseconds() { return (3140 + getRandomInt(-500, 500)) * lightNum; }, remsleepinseconds: function remsleepinseconds() { return (762 + getRandomInt(-50, 50)) * remNum; }, deepsleepdurationinseconds: function deepsleepdurationinseconds() { return (762 + getRandomInt(-50, 50)) * deepNum; }, awakedurationinseconds: function awakedurationinseconds() { return (60 + getRandomInt(-10, 10)) * awakeNum; }, durationinseconds: function durationinseconds(light, rem, awake, deep, unmeasurable) { return light + rem + awake + deep + unmeasurable; }, sleeplevelsmap: function sleeplevelsmap(start, light, rem, awake, deep, unmeasurable) { var deepObj = []; var lightObj = []; var remObj = []; var awakeObj = []; var deepCounter = deepNum; var lightCounter = lightNum; var remCounter = remNum; var awakeCounter = awakeNum; var unmeasurableCounter = unmeasurableNum; var positionsForUnmeasurable = []; var indexUnmeasureable = 0; var up = true; var ready = false; while (positionsForUnmeasurable.length !== unmeasurableCounter) { var x = getRandomInt(1, lightCounter); if (!positionsForUnmeasurable.includes(x)) { positionsForUnmeasurable.push(x); } } positionsForUnmeasurable.sort(function (a, b) { return b - a; }); var avgLight = light / lightCounter; var avgAwake = awake / awakeCounter; var avgDeep = deep / deepCounter; var avgRem = rem / remCounter; var avgUnmeasureable = unmeasurable / unmeasurableCounter; var currentTime = start; var nextTime = 0; while (lightCounter > 0) { if (unmeasurableCounter > 0 && positionsForUnmeasurable[indexUnmeasureable] === lightCounter) { currentTime = currentTime + avgUnmeasureable; indexUnmeasureable += 1; unmeasurableCounter -= 1; } if (lightCounter > 0) { nextTime = currentTime + avgLight; lightObj.push({ starttimeinseconds: currentTime, endtimeinseconds: nextTime }); currentTime = nextTime; lightCounter -= 1; up = !up; } if (Math.round(awakeCounter * lightNum / (awakeNum + 1)) === lightCounter && awakeCounter > 0) { ready = true; } if (ready && up) { nextTime = currentTime + avgAwake; awakeObj.push({ starttimeinseconds: currentTime, endtimeinseconds: nextTime }); currentTime = nextTime; awakeCounter -= 1; ready = false; } else if (remCounter > 0 && deepCounter > 0) { if (up) { nextTime = currentTime + avgRem; remObj.push({ starttimeinseconds: currentTime, endtimeinseconds: nextTime }); currentTime = nextTime; remCounter -= 1; } else { nextTime = currentTime + avgDeep; deepObj.push({ starttimeinseconds: currentTime, endtimeinseconds: nextTime }); currentTime = nextTime; deepCounter -= 1; } } else if (remCounter > 0) { nextTime = currentTime + avgRem; remObj.push({ starttimeinseconds: currentTime, endtimeinseconds: nextTime }); currentTime = nextTime; remCounter -= 1; } else if (deepCounter > 0) { nextTime = currentTime + avgDeep; deepObj.push({ starttimeinseconds: currentTime, endtimeinseconds: nextTime }); currentTime = nextTime; deepCounter -= 1; } } if (deepObj.length === 0) { deepObj = null; } if (lightObj.length === 0) { lightObj = null; } if (remObj.length === 0) { remObj = null; } if (awakeObj.length === 0) { awakeObj = null; } return { deep: deepObj, light: lightObj, rem: remObj, awake: awakeObj }; }, timeoffsetsleepspo2: function timeoffsetsleepspo2() { var finalReturn = {}; var counter = 0; var max = 100; var min = 80; var runOn = getRandomInt(1, 5); var number = 93; while (10740 + counter * 60 < 25080) { counter += 1; if (runOn === 0) { runOn = getRandomInt(1, 10); var x = getRandomInt(-10, 10); while (number + x < min || number + x > max) { x = getRandomInt(-10, 10); } number = number + x; } finalReturn = _objectSpread2(_objectSpread2({}, finalReturn), {}, _defineProperty({}, 10740 + counter * 60, number)); runOn -= 1; } return finalReturn; }, unmeasurablesleepinseconds: function unmeasurablesleepinseconds() { return (60 + getRandomInt(-10, 10)) * unmeasurableNum; }, validation: function validation() { var values = ["ENHANCED_TENTATIVE", "EXAMPLE2", "EXAMPLE3"]; return values[getRandomInt(0, values.length - 1)]; } }; var PulseoxModel = { summaryid: function summaryid() { function makeid(length) { var result = 'x'; var characters = 'abcdef0123456789'; var charactersLength = characters.length; for (var i = 1; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); if ((i + 1) % 8 === 0 && i + 1 !== length) { result += "-"; } } return result; } return makeid(16); }, starttimeinseconds: function starttimeinseconds() { var finalDate = new Date(0); var maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020, 2050)); finalDate.setMonth(getRandomInt(0, 11)); finalDate.setDate(1); maxMonthDate = finalDate; maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0); finalDate.setDate(getRandomInt(1, maxMonthDate.getDate())); finalDate.setHours(getRandomInt(1, 23), getRandomInt(1, 59), getRandomInt(1, 59), getRandomInt(1, 999)); return Math.floor(finalDate.getTime() / 1000); }, calendardate: function calendardate(timestamp) { var finalDate = new Date(timestamp * 1000); return finalDate.getFullYear() + "-" + (finalDate.getMonth() + 1) + "-" + finalDate.getDate(); }, starttimeoffsetinseconds: function starttimeoffsetinseconds() { var timezones = [-12, -11, -10, -9.5, -9, -8, -7, -6, -5, -4, -3.5, -3, -2, -1, 0, 1, 2, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 8, 8.75, 9, 9.5, 10, 10.5, 11, 12, 12.75, 13, 14]; return timezones[getRandomInt(0, timezones.length - 1)] * 60 * 60; }, durationinseconds: function durationinseconds() { return getRandomInt(15000, 25000); }, timeoffsetspo2values: function timeoffsetspo2values() { var finalReturn = {}; var counter = 0; var max = 100; var min = 80; var runOn = getRandomInt(1, 3); var number = 93; while (3600 + counter * 60 < 17940) { counter += 1; if (runOn === 0) { runOn = getRandomInt(1, 10); var x = getRandomInt(-10, 10); while (number + x < min || number + x > max) { x = getRandomInt(-10, 10); } number = number + x; } finalReturn = _objectSpread2(_objectSpread2({}, finalReturn), {}, _defineProperty({}, 3600 + counter * 60, number)); runOn -= 1; } return finalReturn; }, ondemand: function ondemand() { var x = getRandomInt(0, 1); switch (x) { case 0: return false; case 1: return true; } } }; var dataModels = { DailiesData: { data: MOCK.DailiesData, mockup: DailiesDataModel }, DailiesDataAsync: { data: MOCK.DailiesDataAsync, mockup: DailiesDataModel }, EpochsData: { data: MOCK.EpochsData, mockup: EpochsDataModel }, EpochsDataAsync: { data: MOCK.EpochsDataAsync, mockup: EpochsDataModel }, SleepsData: { data: MOCK.SleepsData, mockup: SleepsDataModel }, SleepsDataAsync: { data: MOCK.SleepsDataAsync, mockup: SleepsDataModel }, PulseoxData: { data: MOCK.PulseoxData, mockup: PulseoxModel }, PulseoxDataAsync: { data: MOCK.PulseoxDataAsync, mockup: PulseoxModel } }; function getModelCSVHeader(dataModel) { return dataModels[dataModel].data[0].split("\t"); } function getDailiesMockupData(dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; mockupData = dataModels[dataModel].data; var values = []; for (var i = 0; i < 5; i++) { values.push(getRandomInt(1, 100)); } var sum = values.reduce(function (a, b) { return a + b; }); var a = values[0] / sum; var b = values[1] / sum; var c = values[2] / sum; var d = values[3] / sum; var e = values[4] / sum; ["summaryid", "calendardate", "starttimeinseconds", "reststressdurationinseconds", "restingheartrateinbeatsperminute", "activitystressdurationinseconds", "stressdurationinseconds", "lowstressdurationinseconds", "mediumstressdurationinseconds", "highstressdurationinseconds", "minheartrateinbeatsperminute", "maxheartrateinbeatsperminute", "averageheartrateinbeatsperminute", "timeoffsetheartratesamples", "durationinseconds", "steps", "distanceinmeters", "activekilocalories", "starttimeoffsetinseconds", "activitytype", "floorsclimbed", "floorsclimbedgoal", "stepsgoal", "intensitydurationgoalinseconds", "maxstresslevel", "stressqualifier", "averagestresslevel", "vigorousintensitydurationinseconds", "moderateintensitydurationinseconds", "bmrkilocalories", "summaryid"].forEach(function (key, i) { switch (key) { case "calendardate": mockupData[key] = dataDate; break; case "starttimeinseconds": mockupData[key] = new Date(dataDate).getTime() / 1000; break; case "activitystressdurationinseconds": mockupData[key] = Math.round(mockupData["reststressdurationinseconds"] * a); break; case "stressdurationinseconds": mockupData[key] = Math.round(mockupData["reststressdurationinseconds"] * b); break; case "lowstressdurationinseconds": mockupData[key] = Math.round(mockupData["reststressdurationinseconds"] * c); break; case "mediumstressdurationinseconds": mockupData[key] = Math.round(mockupData["reststressdurationinseconds"] * d); break; case "highstressdurationinseconds": mockupData[key] = Math.round(mockupData["reststressdurationinseconds"] * e); break; case "minheartrateinbeatsperminute": case "maxheartrateinbeatsperminute": case "averageheartrateinbeatsperminute": mockupData[key] = mockupModel[key](mockupData["restingheartrateinbeatsperminute"]); break; case "timeoffsetheartratesamples": mockupData[key] = mockupModel[key](mockupData["minheartrateinbeatsperminute"], mockupData["maxheartrateinbeatsperminute"]); break; case "distanceinmeters": case "activekilocalories": case "intensitydurationgoalinseconds": mockupData[key] = mockupModel[key](mockupData["steps"]); break; case "reststressdurationinseconds": case "restingheartrateinbeatsperminute": case "durationinseconds": case "steps": case "starttimeoffsetinseconds": case "bmrkilocalories": case "activitytype": case "floorsclimbed": case "floorsclimbedgoal": case "stepsgoal": case "maxstresslevel": case "stressqualifier": case "averagestresslevel": case "vigorousintensitydurationinseconds": case "moderateintensitydurationinseconds": case "summaryid": mockupData[key] = mockupModel[key](); break; } }); return mockupData; } function getSleepsMockupData(dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; mockupData = dataModels[dataModel].data; ["calendardate", "starttimeinseconds", "starttimeoffsetinseconds", "lightsleepdurationinseconds", "remsleepinseconds", "deepsleepdurationinseconds", "unmeasurablesleepinseconds", "awakedurationinseconds", "durationinseconds", "timeoffsetsleepspo2", "sleeplevelsmap", "summaryid", "validation"].forEach(function (key, i) { switch (key) { case "calendardate": mockupData[key] = dataDate; break; case "starttimeinseconds": var sleepStart = getSleepDate(dataDate, 22, 3); // this startime should be used for sleepLevelsMap... // check logic of these... deepsleepdurationinseconds,lightsleepdurationinseconds,remsleepinseconds,awakedurationinseconds, mockupData[key] = new Date(sleepStart).getTime() / 1000; break; case "durationinseconds": mockupData[key] = mockupModel[key](mockupData["lightsleepdurationinseconds"], mockupData["remsleepinseconds"], mockupData["awakedurationinseconds"], mockupData["deepsleepdurationinseconds"], mockupData["unmeasurablesleepinseconds"]); break; case "sleeplevelsmap": mockupData[key] = mockupModel[key](mockupData["starttimeinseconds"], mockupData["lightsleepdurationinseconds"], mockupData["remsleepinseconds"], mockupData["awakedurationinseconds"], mockupData["deepsleepdurationinseconds"], mockupData["unmeasurablesleepinseconds"]); break; case "lightsleepdurationinseconds": case "remsleepinseconds": case "unmeasurablesleepinseconds": case "deepsleepdurationinseconds": case "awakedurationinseconds": mockupData[key] = mockupModel[key](); break; case "starttimeoffsetinseconds": //case "lightsleepdurationinseconds": //case "remsleepinseconds": case "timeoffsetsleepspo2": case "summaryid": //case "unmeasurablesleepinseconds": //case "deepsleepdurationinseconds": //case "awakedurationinseconds": case "validation": mockupData[key] = mockupModel[key](); break; } }); return mockupData; } function getPulseoxMockupData(dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; mockupData = dataModels[dataModel].data; ["calendardate", "starttimeinseconds", "durationinseconds", "starttimeoffsetinseconds", "timeoffsetspo2values", "ondemand", "summaryid"].forEach(function (key, i) { switch (key) { case "calendardate": mockupData[key] = dataDate; break; case "starttimeinseconds": mockupData[key] = new Date(dataDate).getTime() / 1000; break; case "durationinseconds": case "starttimeoffsetinseconds": case "timeoffsetspo2values": case "ondemand": case "summaryid": mockupData[key] = mockupModel[key](); break; } }); return mockupData; } function getEpochsMockupData(dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; mockupData = dataModels[dataModel].data; ["starttimeinseconds", "summaryid", "activitytype", "activekilocalories", "steps", "distanceinmeters", "durationinseconds", "activetimeinseconds", "starttimeoffsetinseconds", "met", "intensity", "meanmotionintensity", "maxmotionintensity"].forEach(function (key, i) { switch (key) { case "starttimeinseconds": // activity time 6-19 var startDateTime = dataDate + "T" + getRandomTime(6, 13); mockupData[key] = new Date(startDateTime).getTime() / 1000; break; case "summaryid": case "activitytype": case "activekilocalories": case "steps": case "distanceinmeters": case "durationinseconds": case "activetimeinseconds": case "starttimeoffsetinseconds": case "met": case "intensity": case "meanmotionintensity": case "maxmotionintensity": mockupData[key] = mockupModel[key](); break; } }); return mockupData; } export { getDailiesMockupData, getEpochsMockupData, getModelCSVHeader, getPulseoxMockupData, getSleepsMockupData };