@dynamic-data/garmin-mockups
Version:
Garmin Mockup Data Generators
803 lines (716 loc) • 27.4 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var utils = require('@dynamic-data/utils');
var MOCK = require('@dynamic-data/garmin-data');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var MOCK__default = /*#__PURE__*/_interopDefaultLegacy(MOCK);
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 utils.getRandomInt(20, 35) * 1000;
},
restingheartrateinbeatsperminute: function restingheartrateinbeatsperminute() {
return utils.getRandomInt(49, 82);
},
minheartrateinbeatsperminute: function minheartrateinbeatsperminute(resting) {
return resting - utils.getRandomInt(1, 10);
},
maxheartrateinbeatsperminute: function maxheartrateinbeatsperminute(resting) {
return resting + utils.getRandomInt(10, 50);
},
averageheartrateinbeatsperminute: function averageheartrateinbeatsperminute(resting) {
return resting + utils.getRandomInt(-10, 10);
},
timeoffsetheartratesamples: function timeoffsetheartratesamples(min, max) {
var arr = [];
var runOn = utils.getRandomInt(1, 5);
var number = Math.round((max + min) / 2);
for (var i = 0; i < 3728; i++) {
if (runOn === 0) {
runOn = utils.getRandomInt(1, 10);
var x = utils.getRandomInt(-10, 10);
while (number + x < min || number + x > max) {
x = utils.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 utils.getRandomInt(432, 720) * 100;
},
distanceinmeters: function distanceinmeters(steps) {
var avgDist = (3410 + utils.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 utils.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[utils.getRandomInt(0, timezones.length - 1)] * 60 * 60;
},
bmrkilocalories: function bmrkilocalories() {
return utils.getRandomInt(7, 25) * 100;
},
activitytype: function activitytype() {
var text = ["WALKING", "RUNNING", "CYCLING", "SWIMMING", "HIKING", "BMX"];
return text[utils.getRandomInt(0, text.length - 1)];
},
floorsclimbed: function floorsclimbed() {
return utils.getRandomInt(1, 15);
},
floorsclimbedgoal: function floorsclimbedgoal() {
return utils.getRandomInt(1, 15);
},
stepsgoal: function stepsgoal() {
return utils.getRandomInt(2, 13) * 1000;
},
intensitydurationgoalinseconds: function intensitydurationgoalinseconds(steps) {
var ratio = Math.round((6200 + utils.getRandomInt(-10, 10) * 100) / 9000);
return ratio * steps;
},
maxstresslevel: function maxstresslevel() {
return utils.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[utils.getRandomInt(0, qualifier.length - 1)];
},
averagestresslevel: function averagestresslevel() {
return utils.getRandomInt(1, 20);
},
vigorousintensitydurationinseconds: function vigorousintensitydurationinseconds() {
return utils.getRandomInt(12, 50) * 100;
},
moderateintensitydurationinseconds: function moderateintensitydurationinseconds() {
return utils.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[utils.getRandomInt(0, activities.length - 1)];
},
activekilocalories: function activekilocalories() {
return utils.getRandomInt(0, 999);
},
steps: function steps() {
return utils.getRandomInt(0, 9999);
},
distanceinmeters: function distanceinmeters() {
return utils.getRandomInt(0, 9999) / 10;
},
durationinseconds: function durationinseconds() {
return utils.getRandomInt(0, 999);
},
activetimeinseconds: function activetimeinseconds() {
return utils.getRandomInt(0, 999);
},
starttimeinseconds: function starttimeinseconds() {
var finalDate = new Date(0);
var maxMonthDate = new Date(0);
finalDate.setFullYear(utils.getRandomInt(2020, 2050));
finalDate.setMonth(utils.getRandomInt(0, 11));
finalDate.setDate(1);
maxMonthDate = finalDate;
maxMonthDate.setMonth(maxMonthDate.getMonth() + 1);
maxMonthDate.setDate(0);
finalDate.setDate(utils.getRandomInt(1, maxMonthDate.getDate()));
finalDate.setHours(utils.getRandomInt(1, 23), utils.getRandomInt(1, 59), utils.getRandomInt(1, 59), utils.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[utils.getRandomInt(0, timezones.length - 1)] * 60 * 60;
},
met: function met() {
//https://golf.procon.org/met-values-for-800-activities/
return utils.getRandomInt(10, 198) / 10;
},
intensity: function intensity() {
var intensities = ["SEDENTARY", "EXAMPLE2", "EXAMPLE3", "EXAMPLE4"];
return intensities[utils.getRandomInt(0, intensities.length - 1)];
},
meanmotionintensity: function meanmotionintensity() {
return utils.getRandomInt(0, 999) / 10;
},
maxmotionintensity: function maxmotionintensity() {
return utils.getRandomInt(0, 999) / 10;
}
};
var remNum = utils.getRandomInt(6, 10);
var awakeNum = utils.getRandomInt(1, 3);
var deepNum = utils.getRandomInt(5, 8);
var lightNum = deepNum + awakeNum + remNum + 1;
var unmeasurableNum = utils.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(utils.getRandomInt(2020, 2050));
finalDate.setMonth(utils.getRandomInt(0, 11));
finalDate.setDate(1);
maxMonthDate = finalDate;
maxMonthDate.setMonth(maxMonthDate.getMonth() + 1);
maxMonthDate.setDate(0);
finalDate.setDate(utils.getRandomInt(1, maxMonthDate.getDate()));
finalDate.setHours(utils.getRandomInt(1, 23), utils.getRandomInt(1, 59), utils.getRandomInt(1, 59), utils.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[utils.getRandomInt(0, timezones.length - 1)] * 60 * 60;
},
lightsleepdurationinseconds: function lightsleepdurationinseconds() {
return (3140 + utils.getRandomInt(-500, 500)) * lightNum;
},
remsleepinseconds: function remsleepinseconds() {
return (762 + utils.getRandomInt(-50, 50)) * remNum;
},
deepsleepdurationinseconds: function deepsleepdurationinseconds() {
return (762 + utils.getRandomInt(-50, 50)) * deepNum;
},
awakedurationinseconds: function awakedurationinseconds() {
return (60 + utils.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 = utils.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 = utils.getRandomInt(1, 5);
var number = 93;
while (10740 + counter * 60 < 25080) {
counter += 1;
if (runOn === 0) {
runOn = utils.getRandomInt(1, 10);
var x = utils.getRandomInt(-10, 10);
while (number + x < min || number + x > max) {
x = utils.getRandomInt(-10, 10);
}
number = number + x;
}
finalReturn = _objectSpread2(_objectSpread2({}, finalReturn), {}, _defineProperty({}, 10740 + counter * 60, number));
runOn -= 1;
}
return finalReturn;
},
unmeasurablesleepinseconds: function unmeasurablesleepinseconds() {
return (60 + utils.getRandomInt(-10, 10)) * unmeasurableNum;
},
validation: function validation() {
var values = ["ENHANCED_TENTATIVE", "EXAMPLE2", "EXAMPLE3"];
return values[utils.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(utils.getRandomInt(2020, 2050));
finalDate.setMonth(utils.getRandomInt(0, 11));
finalDate.setDate(1);
maxMonthDate = finalDate;
maxMonthDate.setMonth(maxMonthDate.getMonth() + 1);
maxMonthDate.setDate(0);
finalDate.setDate(utils.getRandomInt(1, maxMonthDate.getDate()));
finalDate.setHours(utils.getRandomInt(1, 23), utils.getRandomInt(1, 59), utils.getRandomInt(1, 59), utils.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[utils.getRandomInt(0, timezones.length - 1)] * 60 * 60;
},
durationinseconds: function durationinseconds() {
return utils.getRandomInt(15000, 25000);
},
timeoffsetspo2values: function timeoffsetspo2values() {
var finalReturn = {};
var counter = 0;
var max = 100;
var min = 80;
var runOn = utils.getRandomInt(1, 3);
var number = 93;
while (3600 + counter * 60 < 17940) {
counter += 1;
if (runOn === 0) {
runOn = utils.getRandomInt(1, 10);
var x = utils.getRandomInt(-10, 10);
while (number + x < min || number + x > max) {
x = utils.getRandomInt(-10, 10);
}
number = number + x;
}
finalReturn = _objectSpread2(_objectSpread2({}, finalReturn), {}, _defineProperty({}, 3600 + counter * 60, number));
runOn -= 1;
}
return finalReturn;
},
ondemand: function ondemand() {
var x = utils.getRandomInt(0, 1);
switch (x) {
case 0:
return false;
case 1:
return true;
}
}
};
var dataModels = {
DailiesData: {
data: MOCK__default["default"].DailiesData,
mockup: DailiesDataModel
},
DailiesDataAsync: {
data: MOCK__default["default"].DailiesDataAsync,
mockup: DailiesDataModel
},
EpochsData: {
data: MOCK__default["default"].EpochsData,
mockup: EpochsDataModel
},
EpochsDataAsync: {
data: MOCK__default["default"].EpochsDataAsync,
mockup: EpochsDataModel
},
SleepsData: {
data: MOCK__default["default"].SleepsData,
mockup: SleepsDataModel
},
SleepsDataAsync: {
data: MOCK__default["default"].SleepsDataAsync,
mockup: SleepsDataModel
},
PulseoxData: {
data: MOCK__default["default"].PulseoxData,
mockup: PulseoxModel
},
PulseoxDataAsync: {
data: MOCK__default["default"].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(utils.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 = utils.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" + utils.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;
}
exports.getDailiesMockupData = getDailiesMockupData;
exports.getEpochsMockupData = getEpochsMockupData;
exports.getModelCSVHeader = getModelCSVHeader;
exports.getPulseoxMockupData = getPulseoxMockupData;
exports.getSleepsMockupData = getSleepsMockupData;