diff --git a/tests/devices/fitbit/test_fitbit_sense.py b/tests/devices/fitbit/test_fitbit_sense.py index 727650f..537effa 100644 --- a/tests/devices/fitbit/test_fitbit_sense.py +++ b/tests/devices/fitbit/test_fitbit_sense.py @@ -76,7 +76,7 @@ def helper_test(device, start_synthetic, end_synthetic, real): }, ) minutesAsleep = [] - for datapoint in sleep: + for datapoint in sleep[0]["sleep"]: minutesAsleep.append(datapoint["minutesAsleep"]) assert len(minutesAsleep) >= 1, "Number of sleep data points should be at least 1" assert ( @@ -84,7 +84,7 @@ def helper_test(device, start_synthetic, end_synthetic, real): ), f"Average minutes asleep should be less than 800 but was {sum(minutesAsleep) / len(minutesAsleep)}" steps_arr = [] - for datapoint in steps: + for datapoint in steps[0]["activities-steps"]: steps_arr.append(datapoint["value"]) assert len(steps_arr) >= 1, "Number of steps data points should be at least 1" assert ( @@ -92,7 +92,7 @@ def helper_test(device, start_synthetic, end_synthetic, real): ), f"Average steps should be less than 20000 but was {sum(steps_arr) / len(steps_arr)}" light = [] - for datapoint in minutesLightlyActive: + for datapoint in minutesLightlyActive[0]["activities-minutesLightlyActive"]: light.append(datapoint["value"]) assert ( datapoint["value"] < 1440 @@ -100,7 +100,7 @@ def helper_test(device, start_synthetic, end_synthetic, real): assert len(light) >= 1, "Number of light activity data points should be at least 1" fair = [] - for datapoint in minutesFairlyActive: + for datapoint in minutesFairlyActive[0]["activities-minutesFairlyActive"]: fair.append(datapoint["value"]) assert ( datapoint["value"] < 1440 @@ -110,7 +110,7 @@ def helper_test(device, start_synthetic, end_synthetic, real): ), "Number of fairly active minutes data points should be at least 1" very = [] - for datapoint in minutesVeryActive: + for datapoint in minutesVeryActive[0]["activities-minutesVeryActive"]: very.append(datapoint["value"]) assert ( datapoint["value"] < 1440 @@ -120,7 +120,7 @@ def helper_test(device, start_synthetic, end_synthetic, real): ), "Number of very active minutes data points should be at least 1" sedentary = [] - for datapoint in minutesSedentary: + for datapoint in minutesSedentary[0]["activities-minutesSedentary"]: sedentary.append(datapoint["value"]) assert ( datapoint["value"] < 1440 @@ -130,7 +130,7 @@ def helper_test(device, start_synthetic, end_synthetic, real): ), "Number of sedentary minutes data points should be at least 1" distance_arr = [] - for datapoint in distance: + for datapoint in distance[0]["activities-distance"]: distance_arr.append(datapoint["value"]) assert ( sum(distance_arr) / len(distance_arr) < 30 diff --git a/wearipedia/devices/fitbit/fitbit_sense.py b/wearipedia/devices/fitbit/fitbit_sense.py index 6eac682..347550f 100644 --- a/wearipedia/devices/fitbit/fitbit_sense.py +++ b/wearipedia/devices/fitbit/fitbit_sense.py @@ -89,7 +89,59 @@ def _filter_synthetic(self, data, data_type, params): num_days_start = delta1.days num_days_end = delta2.days - return data[num_days_start : -num_days_end + 1] + if data_type == "sleep": + intermediary = data[0]["sleep"][num_days_start : -num_days_end + 1] + return [{"sleep": intermediary}] + + if data_type == "steps": + intermediary = data[0]["activities-steps"][ + num_days_start : -num_days_end + 1 + ] + return [{"activities-steps": intermediary}] + + if data_type == "sleep": + intermediary = data[0]["sleep"][num_days_start : -num_days_end + 1] + return [{"steps": intermediary}] + + if data_type == "minutesVeryActive": + intermediary = data[0]["activities-minutesVeryActive"][ + num_days_start : -num_days_end + 1 + ] + return [{"activities-minutesVeryActive": intermediary}] + + if data_type == "minutesLightlyActive": + intermediary = data[0]["activities-minutesLightlyActive"][ + num_days_start : -num_days_end + 1 + ] + return [{"activities-minutesLightlyActive": intermediary}] + + if data_type == "minutesFairlyActive": + intermediary = data[0]["activities-minutesFairlyActive"][ + num_days_start : -num_days_end + 1 + ] + return [{"activities-minutesFairlyActive": intermediary}] + + if data_type == "distance": + intermediary = data[0]["activities-distance"][ + num_days_start : -num_days_end + 1 + ] + return [{"activities-distance": intermediary}] + + if data_type == "minutesSedentary": + intermediary = data[0]["activities-minutesSedentary"][ + num_days_start : -num_days_end + 1 + ] + return [{"activities-minutesSedentary": intermediary}] + + if data_type == "hrv": + intermediary = data[0]["hrv"][num_days_start : -num_days_end + 1] + return [{"hrv": intermediary}] + + if data_type == "distance_day": + return data + + if data_type == "heart_rate_day": + return data def _get_real(self, data_type, params): diff --git a/wearipedia/devices/fitbit/fitbit_sense_gen.py b/wearipedia/devices/fitbit/fitbit_sense_gen.py index d1b6fb5..4533234 100644 --- a/wearipedia/devices/fitbit/fitbit_sense_gen.py +++ b/wearipedia/devices/fitbit/fitbit_sense_gen.py @@ -389,8 +389,52 @@ def create_syn_data(start_date, end_date): full_dict["minutesLightlyActive"].append(activity[3]) full_dict["distance"].append(activity[4]) full_dict["minutesSedentary"].append(activity[5]) - full_dict["heart_rate"].append(get_heart_rate(date)) + full_dict["heart_rate_day"].append(get_heart_rate(date)) full_dict["hrv"].append(get_hrv(date)) full_dict["distance_day"].append(get_distance_day(date)) + # encapsulate to match original data shape + data = [] + for ele in full_dict["sleep"]: + data.append(ele) + full_dict["sleep"] = [{"sleep": data}] + + data = [] + for ele in full_dict["steps"]: + data.append(ele) + full_dict["steps"] = [{"activities-steps": data}] + + data = [] + for ele in full_dict["minutesVeryActive"]: + data.append(ele) + full_dict["minutesVeryActive"] = [{"activities-minutesVeryActive": data}] + + data = [] + for ele in full_dict["minutesFairlyActive"]: + data.append(ele) + full_dict["minutesFairlyActive"] = [{"activities-minutesFairlyActive": data}] + + data = [] + for ele in full_dict["minutesLightlyActive"]: + data.append(ele) + full_dict["minutesLightlyActive"] = [{"activities-minutesLightlyActive": data}] + + data = [] + for ele in full_dict["distance"]: + data.append(ele) + full_dict["distance"] = [{"activities-distance": data}] + + data = [] + for ele in full_dict["minutesSedentary"]: + data.append(ele) + full_dict["minutesSedentary"] = [{"activities-minutesSedentary": data}] + + data = [] + for ele in full_dict["hrv"]: + data.append(ele) + full_dict["hrv"] = [{"hrv": data}] + + full_dict["distance_day"] = full_dict["distance_day"][0]["distance_day"] + full_dict["heart_rate_day"] = full_dict["heart_rate_day"][0]["heart_rate_day"] + return full_dict