diff --git a/docs/develop/test_cases.rst b/docs/develop/test_cases.rst index 1f0f1129..3ebf0143 100644 --- a/docs/develop/test_cases.rst +++ b/docs/develop/test_cases.rst @@ -89,6 +89,13 @@ Application Foreground - The raw application foreground data contains 7 - 9 rows of data for each ``epoch``. The records for each ``epoch`` contains apps that are randomly selected from a list of apps that are from the ``MULTIPLE_CATEGORIES`` and ``SINGLE_CATEGORIES`` (See `testing_config.yaml`_). There are also records in each epoch that have apps randomly selected from a list of apps that are from the ``EXCLUDED_CATEGORIES`` and ``EXCLUDED_APPS``. This is to test that these apps are actually being excluded from the calculations of features. There are also records to test ``SINGLE_APPS`` calculations. - Since application foreground is only available for Android there is only one file that contains data for Android. All other files (i.e. for iPhone) are empty data files. +Activity Recognition +"""""""""""""""""""""" + + - The raw Activity Recognition data file contains data for 1 day. + - The raw Activity Recognition data each ``epoch`` period contains rows that records 2 - 5 different ``activity_types``. The is such that durations of activities can be tested. Additionally there are records that mimic the duration of an activity over the time boundary of neighboring epochs. (For example there a set of records that mimic the participant ``in_vehicle`` from ``afternoon`` into ``evening``) + - There is one file each with raw Activity Recognition data for testing both iOS and Android data formats. (plugin_google_activity_recognition_raw.csv for android and plugin_ios_activity_recognition_raw.csv for iOS) + - There is also an additional empty data file for both android and iOS for testing empty data files. .. _`testing_config.yaml`: https://github.com/carissalow/rapids/blob/c498b8d2dfd7cc29d1e4d53e978d30cff6cdf3f2/tests/settings/testing_config.yaml#L70 diff --git a/src/features/ar/ar_base.py b/src/features/ar/ar_base.py index 75e20ed6..0508545a 100644 --- a/src/features/ar/ar_base.py +++ b/src/features/ar/ar_base.py @@ -51,7 +51,11 @@ def base_ar_features(ar_data, ar_deltas, day_segment, requested_features): for column, activity_labels in deltas_features.items(): if column in features_to_compute: - ar_features["ar_" + day_segment + "_" + column] = ar_deltas[ar_deltas["activity"].isin(pd.Series(activity_labels))].groupby(["local_start_date"])["time_diff"].sum() + filtered_data = ar_deltas[ar_deltas["activity"].isin(pd.Series(activity_labels))] + if not filtered_data.empty: + ar_features["ar_" + day_segment + "_" + column] = ar_deltas[ar_deltas["activity"].isin(pd.Series(activity_labels))].groupby(["local_start_date"])["time_diff"].sum().fillna(0) + else: + ar_features["ar_" + day_segment + "_" + column] = 0 ar_features.index.names = ["local_date"] ar_features = ar_features.reset_index() diff --git a/tests/Snakefile b/tests/Snakefile index e4492150..df97928e 100644 --- a/tests/Snakefile +++ b/tests/Snakefile @@ -11,6 +11,26 @@ files_to_compute = [] if len(config["PIDS"]) == 0: raise ValueError("Add participants IDs to PIDS in config.yaml. Remember to create their participant files in data/external") +if config["PHONE_VALID_SENSED_BINS"]["COMPUTE"] or config["PHONE_VALID_SENSED_DAYS"]["COMPUTE"]: # valid sensed bins is necessary for sensed days, so we add these files anyways if sensed days are requested + if len(config["PHONE_VALID_SENSED_BINS"]["DB_TABLES"]) == 0: + raise ValueError("If you want to compute PHONE_VALID_SENSED_BINS or PHONE_VALID_SENSED_DAYS, you need to add at least one table to [PHONE_VALID_SENSED_BINS][DB_TABLES] in config.yaml") + + pids_android = list(filter(lambda pid: infer_participant_platform("data/external/" + pid) == "android", config["PIDS"])) + pids_ios = list(filter(lambda pid: infer_participant_platform("data/external/" + pid) == "ios", config["PIDS"])) + tables_android = [table for table in config["PHONE_VALID_SENSED_BINS"]["DB_TABLES"] if table not in [config["CONVERSATION"]["DB_TABLE"]["IOS"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["IOS"]]] # for android, discard any ios tables that may exist + tables_ios = [table for table in config["PHONE_VALID_SENSED_BINS"]["DB_TABLES"] if table not in [config["CONVERSATION"]["DB_TABLE"]["ANDROID"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["ANDROID"]]] # for ios, discard any android tables that may exist + + for pids,table in zip([pids_android, pids_ios], [tables_android, tables_ios]): + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/interim/{pid}/phone_sensed_bins.csv", pid=config["PIDS"])) + +if config["PHONE_VALID_SENSED_DAYS"]["COMPUTE"]: + files_to_compute.extend(expand("data/interim/{pid}/phone_valid_sensed_days_{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins.csv", + pid=config["PIDS"], + min_valid_hours_per_day=config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_HOURS_PER_DAY"], + min_valid_bins_per_hour=config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_BINS_PER_HOUR"])) + if config["MESSAGES"]["COMPUTE"]: files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["MESSAGES"]["DB_TABLE"])) files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["MESSAGES"]["DB_TABLE"])) @@ -22,6 +42,29 @@ if config["CALLS"]["COMPUTE"]: files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime_unified.csv", pid=config["PIDS"], sensor=config["CALLS"]["DB_TABLE"])) files_to_compute.extend(expand("data/processed/{pid}/calls_{call_type}_{segment}.csv", pid=config["PIDS"], call_type=config["CALLS"]["TYPES"], segment = config["CALLS"]["DAY_SEGMENTS"])) +if config["BLUETOOTH"]["COMPUTE"]: + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["BLUETOOTH"]["DB_TABLE"])) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["BLUETOOTH"]["DB_TABLE"])) + files_to_compute.extend(expand("data/processed/{pid}/bluetooth_{segment}.csv", pid=config["PIDS"], segment = config["BLUETOOTH"]["DAY_SEGMENTS"])) + +if config["ACTIVITY_RECOGNITION"]["COMPUTE"]: + pids_android = list(filter(lambda pid: infer_participant_platform("data/external/" + pid) == "android", config["PIDS"])) + pids_ios = list(filter(lambda pid: infer_participant_platform("data/external/" + pid) == "ios", config["PIDS"])) + + for pids,table in zip([pids_android, pids_ios], [config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["ANDROID"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["IOS"]]): + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime_unified.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/processed/{pid}/{sensor}_deltas.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/processed/{pid}/activity_recognition_{day_segment}.csv",pid=config["PIDS"], day_segment = config["ACTIVITY_RECOGNITION"]["DAY_SEGMENTS"])) + +if config["BATTERY"]["COMPUTE"]: + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["BATTERY"]["DB_TABLE"])) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["BATTERY"]["DB_TABLE"])) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime_unified.csv", pid=config["PIDS"], sensor=config["BATTERY"]["DB_TABLE"])) + files_to_compute.extend(expand("data/processed/{pid}/battery_deltas.csv", pid=config["PIDS"])) + files_to_compute.extend(expand("data/processed/{pid}/battery_{day_segment}.csv", pid = config["PIDS"], day_segment = config["BATTERY"]["DAY_SEGMENTS"])) + if config["SCREEN"]["COMPUTE"]: if config["SCREEN"]["DB_TABLE"] in config["PHONE_VALID_SENSED_BINS"]["DB_TABLES"]: files_to_compute.extend(expand("data/interim/{pid}/phone_sensed_bins.csv", pid=config["PIDS"])) @@ -33,17 +76,16 @@ if config["SCREEN"]["COMPUTE"]: files_to_compute.extend(expand("data/processed/{pid}/screen_deltas.csv", pid=config["PIDS"])) files_to_compute.extend(expand("data/processed/{pid}/screen_{day_segment}.csv", pid = config["PIDS"], day_segment = config["SCREEN"]["DAY_SEGMENTS"])) -if config["BATTERY"]["COMPUTE"]: - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["BATTERY"]["DB_TABLE"])) - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["BATTERY"]["DB_TABLE"])) - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime_unified.csv", pid=config["PIDS"], sensor=config["BATTERY"]["DB_TABLE"])) - files_to_compute.extend(expand("data/processed/{pid}/battery_deltas.csv", pid=config["PIDS"])) - files_to_compute.extend(expand("data/processed/{pid}/battery_{day_segment}.csv", pid = config["PIDS"], day_segment = config["BATTERY"]["DAY_SEGMENTS"])) +if config["LIGHT"]["COMPUTE"]: + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["LIGHT"]["DB_TABLE"])) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["LIGHT"]["DB_TABLE"])) + files_to_compute.extend(expand("data/processed/{pid}/light_{day_segment}.csv", pid = config["PIDS"], day_segment = config["LIGHT"]["DAY_SEGMENTS"])) -if config["BLUETOOTH"]["COMPUTE"]: - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["BLUETOOTH"]["DB_TABLE"])) - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["BLUETOOTH"]["DB_TABLE"])) - files_to_compute.extend(expand("data/processed/{pid}/bluetooth_{segment}.csv", pid=config["PIDS"], segment = config["BLUETOOTH"]["DAY_SEGMENTS"])) +if config["APPLICATIONS_FOREGROUND"]["COMPUTE"]: + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["APPLICATIONS_FOREGROUND"]["DB_TABLE"])) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["APPLICATIONS_FOREGROUND"]["DB_TABLE"])) + files_to_compute.extend(expand("data/interim/{pid}/{sensor}_with_datetime_with_genre.csv", pid=config["PIDS"], sensor=config["APPLICATIONS_FOREGROUND"]["DB_TABLE"])) + files_to_compute.extend(expand("data/processed/{pid}/applications_foreground_{day_segment}.csv", pid = config["PIDS"], day_segment = config["APPLICATIONS_FOREGROUND"]["DAY_SEGMENTS"])) if config["WIFI"]["COMPUTE"]: if len(config["WIFI"]["DB_TABLE"]["VISIBLE_ACCESS_POINTS"]) > 0: @@ -56,20 +98,16 @@ if config["WIFI"]["COMPUTE"]: files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["WIFI"]["DB_TABLE"]["CONNECTED_ACCESS_POINTS"])) files_to_compute.extend(expand("data/processed/{pid}/wifi_{day_segment}.csv", pid = config["PIDS"], day_segment = config["WIFI"]["DAY_SEGMENTS"])) -if config["LIGHT"]["COMPUTE"]: - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["LIGHT"]["DB_TABLE"])) - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["LIGHT"]["DB_TABLE"])) - files_to_compute.extend(expand("data/processed/{pid}/light_{day_segment}.csv", pid = config["PIDS"], day_segment = config["LIGHT"]["DAY_SEGMENTS"])) +if config["CONVERSATION"]["COMPUTE"]: + pids_android = list(filter(lambda pid: infer_participant_platform("data/external/" + pid) == "android", config["PIDS"])) + pids_ios = list(filter(lambda pid: infer_participant_platform("data/external/" + pid) == "ios", config["PIDS"])) -if config["APPLICATIONS_FOREGROUND"]["COMPUTE"]: - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["APPLICATIONS_FOREGROUND"]["DB_TABLE"])) - files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=config["PIDS"], sensor=config["APPLICATIONS_FOREGROUND"]["DB_TABLE"])) - files_to_compute.extend(expand("data/interim/{pid}/{sensor}_with_datetime_with_genre.csv", pid=config["PIDS"], sensor=config["APPLICATIONS_FOREGROUND"]["DB_TABLE"])) - files_to_compute.extend(expand("data/processed/{pid}/applications_foreground_{day_segment}.csv", pid = config["PIDS"], day_segment = config["APPLICATIONS_FOREGROUND"]["DAY_SEGMENTS"])) + for pids,table in zip([pids_android, pids_ios], [config["CONVERSATION"]["DB_TABLE"]["ANDROID"], config["CONVERSATION"]["DB_TABLE"]["IOS"]]): + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/raw/{pid}/{sensor}_with_datetime_unified.csv", pid=pids, sensor=table)) + files_to_compute.extend(expand("data/processed/{pid}/conversation_{day_segment}.csv",pid=config["PIDS"], day_segment = config["CONVERSATION"]["DAY_SEGMENTS"])) -if config["ACTIVITY_RECOGNITION"]["COMPUTE"]: - # TODO add files_to_compute.extend(optional_ar_input(None)), the Android or iOS table gets processed depending on each participant - files_to_compute.extend(expand("data/processed/{pid}/activity_recognition_{day_segment}.csv",pid=config["PIDS"], day_segment = config["ACTIVITY_RECOGNITION"]["DAY_SEGMENTS"])) rule all: input: diff --git a/tests/data/processed/test01/activity_recognition_afternoon.csv b/tests/data/processed/test01/activity_recognition_afternoon.csv new file mode 100644 index 00000000..a9fa65eb --- /dev/null +++ b/tests/data/processed/test01/activity_recognition_afternoon.csv @@ -0,0 +1,2 @@ +local_date,ar_afternoon_count,ar_afternoon_mostcommonactivity,ar_afternoon_countuniqueactivities,ar_afternoon_activitychangecount,ar_afternoon_sumstationary,ar_afternoon_summobile,ar_afternoon_sumvehicle +2020-07-06,11,0,3,2,91.4326,60.46666666666667,25.433333333333334 diff --git a/tests/data/processed/test01/activity_recognition_daily.csv b/tests/data/processed/test01/activity_recognition_daily.csv new file mode 100644 index 00000000..12418f75 --- /dev/null +++ b/tests/data/processed/test01/activity_recognition_daily.csv @@ -0,0 +1,2 @@ +local_date,ar_daily_count,ar_daily_mostcommonactivity,ar_daily_countuniqueactivities,ar_daily_activitychangecount,ar_daily_sumstationary,ar_daily_summobile,ar_daily_sumvehicle +2020-07-06,55,3,8,14,316.39519999999965,286.15086666666673,70.3941833333333 diff --git a/tests/data/processed/test01/activity_recognition_evening.csv b/tests/data/processed/test01/activity_recognition_evening.csv new file mode 100644 index 00000000..326bf7f0 --- /dev/null +++ b/tests/data/processed/test01/activity_recognition_evening.csv @@ -0,0 +1,2 @@ +local_date,ar_evening_count,ar_evening_mostcommonactivity,ar_evening_countuniqueactivities,ar_evening_activitychangecount,ar_evening_sumstationary,ar_evening_summobile,ar_evening_sumvehicle +2020-07-06,17,1,6,5,7.609966666666669,120.1363,13.033333333333333 diff --git a/tests/data/processed/test01/activity_recognition_morning.csv b/tests/data/processed/test01/activity_recognition_morning.csv new file mode 100644 index 00000000..e81eeb79 --- /dev/null +++ b/tests/data/processed/test01/activity_recognition_morning.csv @@ -0,0 +1,2 @@ +local_date,ar_morning_count,ar_morning_mostcommonactivity,ar_morning_countuniqueactivities,ar_morning_activitychangecount,ar_morning_sumstationary,ar_morning_summobile,ar_morning_sumvehicle +2020-07-06,17,0,5,4,46.0,105.53365000000008,31.9119 diff --git a/tests/data/processed/test01/activity_recognition_night.csv b/tests/data/processed/test01/activity_recognition_night.csv new file mode 100644 index 00000000..51bafc29 --- /dev/null +++ b/tests/data/processed/test01/activity_recognition_night.csv @@ -0,0 +1,2 @@ +local_date,ar_night_count,ar_night_mostcommonactivity,ar_night_countuniqueactivities,ar_night_activitychangecount,ar_night_sumstationary,ar_night_summobile,ar_night_sumvehicle +2020-07-06,10,3,3,3,171.33763333333334,0,0 diff --git a/tests/data/processed/test02/activity_recognition_afternoon.csv b/tests/data/processed/test02/activity_recognition_afternoon.csv new file mode 100644 index 00000000..a9fa65eb --- /dev/null +++ b/tests/data/processed/test02/activity_recognition_afternoon.csv @@ -0,0 +1,2 @@ +local_date,ar_afternoon_count,ar_afternoon_mostcommonactivity,ar_afternoon_countuniqueactivities,ar_afternoon_activitychangecount,ar_afternoon_sumstationary,ar_afternoon_summobile,ar_afternoon_sumvehicle +2020-07-06,11,0,3,2,91.4326,60.46666666666667,25.433333333333334 diff --git a/tests/data/processed/test02/activity_recognition_daily.csv b/tests/data/processed/test02/activity_recognition_daily.csv new file mode 100644 index 00000000..73ae19db --- /dev/null +++ b/tests/data/processed/test02/activity_recognition_daily.csv @@ -0,0 +1,2 @@ +local_date,ar_daily_count,ar_daily_mostcommonactivity,ar_daily_countuniqueactivities,ar_daily_activitychangecount,ar_daily_sumstationary,ar_daily_summobile,ar_daily_sumvehicle +2020-07-06,49,2,4,9,501.1613166666666,334.0321000000003,70.3941833333333 diff --git a/tests/data/processed/test02/activity_recognition_evening.csv b/tests/data/processed/test02/activity_recognition_evening.csv new file mode 100644 index 00000000..ee8ecd91 --- /dev/null +++ b/tests/data/processed/test02/activity_recognition_evening.csv @@ -0,0 +1,2 @@ +local_date,ar_evening_count,ar_evening_mostcommonactivity,ar_evening_countuniqueactivities,ar_evening_activitychangecount,ar_evening_sumstationary,ar_evening_summobile,ar_evening_sumvehicle +2020-07-06,16,2,4,4,7.609966666666669,120.1363,13.033333333333333 diff --git a/tests/data/processed/test02/activity_recognition_morning.csv b/tests/data/processed/test02/activity_recognition_morning.csv new file mode 100644 index 00000000..e58fb2b0 --- /dev/null +++ b/tests/data/processed/test02/activity_recognition_morning.csv @@ -0,0 +1,2 @@ +local_date,ar_morning_count,ar_morning_mostcommonactivity,ar_morning_countuniqueactivities,ar_morning_activitychangecount,ar_morning_sumstationary,ar_morning_summobile,ar_morning_sumvehicle +2020-07-06,17,2,3,3,46.0,153.41488333333368,31.9119 diff --git a/tests/data/processed/test02/activity_recognition_night.csv b/tests/data/processed/test02/activity_recognition_night.csv new file mode 100644 index 00000000..7743c271 --- /dev/null +++ b/tests/data/processed/test02/activity_recognition_night.csv @@ -0,0 +1,2 @@ +local_date,ar_night_count,ar_night_mostcommonactivity,ar_night_countuniqueactivities,ar_night_activitychangecount,ar_night_sumstationary,ar_night_summobile,ar_night_sumvehicle +2020-07-06,5,3,1,0,356.1,0,0 diff --git a/tests/data/processed/test03/activity_recognition_afternoon.csv b/tests/data/processed/test03/activity_recognition_afternoon.csv new file mode 100644 index 00000000..cbcbc070 --- /dev/null +++ b/tests/data/processed/test03/activity_recognition_afternoon.csv @@ -0,0 +1 @@ +local_date,ar_afternoon_summobile,ar_afternoon_countuniqueactivities,ar_afternoon_count,ar_afternoon_sumstationary,ar_afternoon_sumvehicle,ar_afternoon_mostcommonactivity,ar_afternoon_activitychangecount diff --git a/tests/data/processed/test03/activity_recognition_daily.csv b/tests/data/processed/test03/activity_recognition_daily.csv new file mode 100644 index 00000000..be7af81a --- /dev/null +++ b/tests/data/processed/test03/activity_recognition_daily.csv @@ -0,0 +1 @@ +local_date,ar_daily_sumvehicle,ar_daily_countuniqueactivities,ar_daily_mostcommonactivity,ar_daily_activitychangecount,ar_daily_sumstationary,ar_daily_summobile,ar_daily_count diff --git a/tests/data/processed/test03/activity_recognition_evening.csv b/tests/data/processed/test03/activity_recognition_evening.csv new file mode 100644 index 00000000..9886f6ab --- /dev/null +++ b/tests/data/processed/test03/activity_recognition_evening.csv @@ -0,0 +1 @@ +local_date,ar_evening_count,ar_evening_summobile,ar_evening_activitychangecount,ar_evening_sumstationary,ar_evening_sumvehicle,ar_evening_countuniqueactivities,ar_evening_mostcommonactivity diff --git a/tests/data/processed/test03/activity_recognition_morning.csv b/tests/data/processed/test03/activity_recognition_morning.csv new file mode 100644 index 00000000..577b6ba0 --- /dev/null +++ b/tests/data/processed/test03/activity_recognition_morning.csv @@ -0,0 +1 @@ +local_date,ar_morning_mostcommonactivity,ar_morning_activitychangecount,ar_morning_countuniqueactivities,ar_morning_summobile,ar_morning_count,ar_morning_sumvehicle,ar_morning_sumstationary diff --git a/tests/data/processed/test03/activity_recognition_night.csv b/tests/data/processed/test03/activity_recognition_night.csv new file mode 100644 index 00000000..966c0ace --- /dev/null +++ b/tests/data/processed/test03/activity_recognition_night.csv @@ -0,0 +1 @@ +local_date,ar_night_summobile,ar_night_sumstationary,ar_night_countuniqueactivities,ar_night_mostcommonactivity,ar_night_activitychangecount,ar_night_count,ar_night_sumvehicle diff --git a/tests/data/processed/test04/activity_recognition_afternoon.csv b/tests/data/processed/test04/activity_recognition_afternoon.csv new file mode 100644 index 00000000..aebb430a --- /dev/null +++ b/tests/data/processed/test04/activity_recognition_afternoon.csv @@ -0,0 +1 @@ +local_date,ar_afternoon_activitychangecount,ar_afternoon_mostcommonactivity,ar_afternoon_sumvehicle,ar_afternoon_countuniqueactivities,ar_afternoon_summobile,ar_afternoon_sumstationary,ar_afternoon_count diff --git a/tests/data/processed/test04/activity_recognition_daily.csv b/tests/data/processed/test04/activity_recognition_daily.csv new file mode 100644 index 00000000..104f6dac --- /dev/null +++ b/tests/data/processed/test04/activity_recognition_daily.csv @@ -0,0 +1 @@ +local_date,ar_daily_count,ar_daily_sumstationary,ar_daily_countuniqueactivities,ar_daily_summobile,ar_daily_sumvehicle,ar_daily_mostcommonactivity,ar_daily_activitychangecount diff --git a/tests/data/processed/test04/activity_recognition_evening.csv b/tests/data/processed/test04/activity_recognition_evening.csv new file mode 100644 index 00000000..5708f362 --- /dev/null +++ b/tests/data/processed/test04/activity_recognition_evening.csv @@ -0,0 +1 @@ +local_date,ar_evening_sumvehicle,ar_evening_activitychangecount,ar_evening_sumstationary,ar_evening_summobile,ar_evening_mostcommonactivity,ar_evening_count,ar_evening_countuniqueactivities diff --git a/tests/data/processed/test04/activity_recognition_morning.csv b/tests/data/processed/test04/activity_recognition_morning.csv new file mode 100644 index 00000000..24122ea7 --- /dev/null +++ b/tests/data/processed/test04/activity_recognition_morning.csv @@ -0,0 +1 @@ +local_date,ar_morning_mostcommonactivity,ar_morning_sumvehicle,ar_morning_countuniqueactivities,ar_morning_sumstationary,ar_morning_count,ar_morning_summobile,ar_morning_activitychangecount diff --git a/tests/data/processed/test04/activity_recognition_night.csv b/tests/data/processed/test04/activity_recognition_night.csv new file mode 100644 index 00000000..0d143f6f --- /dev/null +++ b/tests/data/processed/test04/activity_recognition_night.csv @@ -0,0 +1 @@ +local_date,ar_night_count,ar_night_countuniqueactivities,ar_night_sumstationary,ar_night_sumvehicle,ar_night_activitychangecount,ar_night_summobile,ar_night_mostcommonactivity diff --git a/tests/data/raw/test01/plugin_google_activity_recognition_raw.csv b/tests/data/raw/test01/plugin_google_activity_recognition_raw.csv new file mode 100644 index 00000000..40b0e5bd --- /dev/null +++ b/tests/data/raw/test01/plugin_google_activity_recognition_raw.csv @@ -0,0 +1,56 @@ +timestamp,device_id,activity_name,activity_type,confidence,activities +1594011513359,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,99,"[{""activity"":""still"",""confidence"":99},{""activity"":""unknown"",""confidence"":1}]" +1594009169663,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,88,"[{""activity"":""still"",""confidence"":88},{""activity"":""walking"",""confidence"":7},{""activity"":""in_vehicle"",""confidence"":4}{""activity"":""unknown"",""confidence"":1}]" +1594008233193,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,92,"[{""activity"":""still"",""confidence"":92},{""activity"":""In_vehicle"",""confidence"":7},{""activity"":""unknown"",""confidence"":1}]" +1594014089214,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,unknown,4,92,"[{""activity"":""unknown"",""confidence"":92},{""activity"":""walking"",""confidence"":5},{""activity"":""still"",""confidence"":2},{""activity"":""in_vehicle"",""confidence"":1}]" +1594022514638,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,tilting,5,91,"[{""activity"":""tilting"",""confidence"":91},{""activity"":""on_bicycle"",""confidence"":8},{""activity"":""unknown"",""confidence"":1}]" +1594019642710,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,tilting,5,91,"[{""activity"":""tilting"",""confidence"":91},{""activity"":""on_bicycle"",""confidence"":8},{""activity"":""unknown"",""confidence"":1}]" +1594021195186,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,tilting,5,98,"[{""activity"":""tilting"",""confidence"":98},{""activity"":""still"",""confidence"":1},{""activity"":""walking"",""confidence"":1}]" +1594023232802,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,tilting,5,86,"[{""activity"":""tilting"",""confidence"":86},{""activity"":""walking"",""confidence"":12},{""activity"":""still"",""confidence"":2}]" +1594029036619,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,88,"[{""activity"":""still"",""confidence"":88},{""activity"":""walking"",""confidence"":7},{""activity"":""in_vehicle"",""confidence"":4}{""activity"":""unknown"",""confidence"":1}]" +1594026189418,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,99,"[{""activity"":""still"",""confidence"":99},{""activity"":""unknown"",""confidence"":1}]" +1594030960769,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,98,"[{""activity"":""still"",""confidence"":98},{""activity"":""tilting"",""confidence"":1},{""activity"":""unknown"",""confidence"":1}]" +1594029972576,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,99,"[{""activity"":""still"",""confidence"":99},{""activity"":""unknown"",""confidence"":1}]" +1594032360318,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,99,"[{""activity"":""still"",""confidence"":99},{""activity"":""unknown"",""confidence"":1}]" +1594029680604,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,88,"[{""activity"":""still"",""confidence"":88},{""activity"":""walking"",""confidence"":7},{""activity"":""in_vehicle"",""confidence"":4}{""activity"":""unknown"",""confidence"":1}]" +1594034061588,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,86,"[{""activity"":""walking"",""confidence"":86},{""activity"":""in_vehicle"",""confidence"":9},{""activity"":""still"",""confidence"":4},{""activity"":""unknown"",""confidence"":1}]" +1594035583131,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,92,"[{""activity"":""walking"",""confidence"":92},{""activity"":""running"",""confidence"":5},{""activity"":""in_vehicle"",""confidence"":2},{""activity"":""unknown"",""confidence"":1}]" +1594036135681,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,94,"[{""activity"":""walking"",""confidence"":94},{""activity"":""on_foot"",""confidence"":5},{""activity"":""unknown"",""confidence"":1}]" +1594034330494,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,98,"[{""activity"":""walking"",""confidence"":98},{""activity"":""running"",""confidence"":1},{""activity"":""still"",""confidence"":1}]" +1594041009481,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,running,8,89,"[{""activity"":""running"",""confidence"":89},{""activity"":""on_bicycle"",""confidence"":7},{""activity"":""walking"",""confidence"":3},{""activity"":""unknown"",""confidence"":1}]" +1594039008555,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,running,8,83,"[{""activity"":""running"",""confidence"":83},{""activity"":""on_foot"",""confidence"":15},{""activity"":""unknown"",""confidence"":2}]" +1594040542637,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,running,8,85,"[{""activity"":""running"",""confidence"":85},{""activity"":""walking"",""confidence"":12},{""activity"":""on_fooy"",""confidence"":3}]" +1594045170488,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,92,"[{""activity"":""in_vehicle"",""confidence"":92},{""activity"":""tilting"",""confidence"":6},{""activity"":""unknown"",""confidence"":2}]" +1594044861283,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,91,"[{""activity"":""in_vehicle"",""confidence"":91},{""activity"":""on_bicycle"",""confidence"":8},{""activity"":""unknown"",""confidence"":1}]" +1594046775997,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,92,"[{""activity"":""in_vehicle"",""confidence"":92},{""activity"":""tilting"",""confidence"":6},{""activity"":""unknown"",""confidence"":2}]" +1594045155284,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,91,"[{""activity"":""in_vehicle"",""confidence"":91},{""activity"":""on_bicycle"",""confidence"":8},{""activity"":""unknown"",""confidence"":1}]" +1594048942657,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,89,"[{""activity"":""on_foot"",""confidence"":89},{""activity"":""walking"",""confidence"":7},{""activity"":""unknown"",""confidence"":4}]" +1594049953189,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,99,"[{""activity"":""on_foot"",""confidence"":99},{""activity"":""unknown"",""confidence"":1}]" +1594051260258,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,94,"[{""activity"":""on_foot"",""confidence"":94},{""activity"":""running"",""confidence"":5},{""activity"":""unknown"",""confidence"":1}]" +1594054828512,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,80,"[{""activity"":""on_foot"",""confidence"":80},{""activity"":""in_vehicle"",""confidence"":15},{""activity"":""running"",""confidence"":4},{""activity"":""unknown"",""confidence"":1}]" +1594053652847,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,94,"[{""activity"":""on_foot"",""confidence"":94},{""activity"":""running"",""confidence"":5},{""activity"":""unknown"",""confidence"":1}]" +1594052619496,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,94,"[{""activity"":""on_foot"",""confidence"":94},{""activity"":""running"",""confidence"":5},{""activity"":""unknown"",""confidence"":1}]" +1594059951546,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,88,"[{""activity"":""still"",""confidence"":88},{""activity"":""walking"",""confidence"":7},{""activity"":""in_vehicle"",""confidence"":4}{""activity"":""unknown"",""confidence"":1}]" +1594063934168,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,98,"[{""activity"":""still"",""confidence"":98},{""activity"":""tilting"",""confidence"":1},{""activity"":""unknown"",""confidence"":1}]" +1594058448212,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,98,"[{""activity"":""still"",""confidence"":98},{""activity"":""tilting"",""confidence"":1},{""activity"":""unknown"",""confidence"":1}]" +1594073582003,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,92,"[{""activity"":""in_vehicle"",""confidence"":92},{""activity"":""tilting"",""confidence"":6},{""activity"":""unknown"",""confidence"":2}]" +1594073060268,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,91,"[{""activity"":""in_vehicle"",""confidence"":91},{""activity"":""on_bicycle"",""confidence"":8},{""activity"":""unknown"",""confidence"":1}]" +1594072009878,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,98,"[{""activity"":""in_vehicle"",""confidence"":98},{""activity"":""still"",""confidence"":1},{""activity"":""walking"",""confidence"":1}]" +1594071273066,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,88,"[{""activity"":""in_vehicle"",""confidence"":88},{""activity"":""running"",""confidence"":10},{""activity"":""still"",""confidence"":2}]" +1594071651364,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,92,"[{""activity"":""in_vehicle"",""confidence"":92},{""activity"":""tilting"",""confidence"":6},{""activity"":""unknown"",""confidence"":2}]" +1594072224460,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,in_vehicle,0,86,"[{""activity"":""in_vehicle"",""confidence"":86},{""activity"":""walking"",""confidence"":12},{""activity"":""still"",""confidence"":2}]" +1594076125576,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,98,"[{""activity"":""walking"",""confidence"":98},{""activity"":""running"",""confidence"":1},{""activity"":""still"",""confidence"":1}]" +1594076058465,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,98,"[{""activity"":""walking"",""confidence"":98},{""activity"":""running"",""confidence"":1},{""activity"":""still"",""confidence"":1}]" +1594076997023,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,92,"[{""activity"":""walking"",""confidence"":92},{""activity"":""running"",""confidence"":5},{""activity"":""in_vehicle"",""confidence"":2},{""activity"":""unknown"",""confidence"":1}]" +1594076477847,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,walking,7,86,"[{""activity"":""walking"",""confidence"":86},{""activity"":""in_vehicle"",""confidence"":9},{""activity"":""still"",""confidence"":4},{""activity"":""unknown"",""confidence"":1}]" +1594078728766,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_bicycle,1,93,"[{""activity"":""on_bicycle"",""confidence"":93},{""activity"":""in_vehicle"",""confidence"":5},{""activity"":""unknown"",""confidence"":2}]" +1594078002827,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_bicycle,1,87,"[{""activity"":""on_bicycle"",""confidence"":87},{""activity"":""walking"",""confidence"":12},{""activity"":""still"",""confidence"":1}]" +1594081329828,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_bicycle,1,93,"[{""activity"":""on_bicycle"",""confidence"":93},{""activity"":""in_vehicle"",""confidence"":5},{""activity"":""unknown"",""confidence"":2}]" +1594077881253,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_bicycle,1,87,"[{""activity"":""on_bicycle"",""confidence"":87},{""activity"":""walking"",""confidence"":12},{""activity"":""still"",""confidence"":1}]" +1594082278338,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,99,"[{""activity"":""on_foot"",""confidence"":99},{""activity"":""unknown"",""confidence"":1}]" +1594085089288,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,80,"[{""activity"":""on_foot"",""confidence"":80},{""activity"":""in_vehicle"",""confidence"":15},{""activity"":""running"",""confidence"":4},{""activity"":""unknown"",""confidence"":1}]" +1594083604829,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,80,"[{""activity"":""on_foot"",""confidence"":80},{""activity"":""in_vehicle"",""confidence"":15},{""activity"":""running"",""confidence"":4},{""activity"":""unknown"",""confidence"":1}]" +1594085099383,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,on_foot,2,94,"[{""activity"":""on_foot"",""confidence"":94},{""activity"":""running"",""confidence"":5},{""activity"":""unknown"",""confidence"":1}]" +1594089833084,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,unknown,4,97,"[{""activity"":""unknown"",""confidence"":97},{""activity"":""running"",""confidence"":2},{""activity"":""walking"",""confidence"":1}]" +1594092988804,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,99,"[{""activity"":""still"",""confidence"":99},{""activity"":""unknown"",""confidence"":1}]" +1594093445402,wYESbVwI-4GfR-G5I6-7iKL-tOmCKs02MBun,still,3,88,"[{""activity"":""still"",""confidence"":88},{""activity"":""walking"",""confidence"":7},{""activity"":""in_vehicle"",""confidence"":4}{""activity"":""unknown"",""confidence"":1}]" diff --git a/tests/data/raw/test02/plugin_ios_activity_recognition_raw.csv b/tests/data/raw/test02/plugin_ios_activity_recognition_raw.csv new file mode 100644 index 00000000..5bdf1e39 --- /dev/null +++ b/tests/data/raw/test02/plugin_ios_activity_recognition_raw.csv @@ -0,0 +1,56 @@ +timestamp,device_id,activities,confidence,stationary,walking,running,automotive,cycling,unknown,label +1594011513359,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594009169663,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",0,1,0,0,0,0,0, +1594008233193,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",1,1,0,0,0,0,0, +1594014089214,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,,1,0,0,0,0,0,0, +1594022514638,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,,1,0,0,0,0,0,0, +1594019642710,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,,1,0,0,0,0,0,0, +1594021195186,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,,2,0,0,0,0,0,0, +1594023232802,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,,0,0,0,0,0,0,0, +1594029036619,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",0,1,0,0,0,0,0, +1594026189418,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594030960769,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594029972576,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594032360318,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594029680604,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",0,1,0,0,0,0,0, +1594034061588,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",0,0,1,0,0,0,0, +1594035583131,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",1,0,1,0,0,0,0, +1594036135681,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",1,0,1,0,0,0,0, +1594034330494,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",2,0,1,0,0,0,0, +1594041009481,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",1,0,0,1,0,0,0, +1594039008555,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",0,0,0,1,0,0,0, +1594040542637,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",0,0,0,1,0,0,0, +1594045170488,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",1,1,0,0,1,0,0, +1594044861283,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",1,1,0,0,1,0,0, +1594046775997,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""automotive""]",1,0,0,0,1,0,0, +1594045155284,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",1,1,0,0,1,0,0, +1594048942657,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",1,0,0,1,0,0,0, +1594049953189,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",2,0,0,1,0,0,0, +1594051260258,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",1,0,1,0,0,0,0, +1594054828512,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",1,0,1,0,0,0,0, +1594053652847,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",1,0,0,1,0,0,0, +1594052619496,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",1,0,0,1,0,0,0, +1594059951546,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",0,1,0,0,0,0,0, +1594063934168,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594058448212,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594073582003,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",1,1,0,0,1,0,0, +1594073060268,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",1,1,0,0,1,0,0, +1594072009878,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",2,1,0,0,1,0,0, +1594071273066,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",0,1,0,0,1,0,0, +1594071651364,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""automotive""]",1,0,0,0,1,0,0, +1594072224460,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary"",""automotive""]",0,1,0,0,1,0,0, +1594076125576,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",2,0,1,0,0,0,0, +1594076058465,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",2,0,1,0,0,0,0, +1594076997023,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",1,0,1,0,0,0,0, +1594076477847,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",0,0,1,0,0,0,0, +1594078728766,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""cycling""]",1,0,0,0,0,1,0, +1594078002827,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""cycling""]",0,0,0,0,0,1,0, +1594081329828,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""cycling""]",1,0,0,0,0,1,0, +1594077881253,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""cycling""]",0,0,0,0,0,1,0, +1594082278338,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""walking""]",2,0,1,0,0,0,0, +1594085089288,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",2,0,0,1,0,0,0, +1594083604829,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",2,0,0,1,0,0,0, +1594085099383,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""running""]",1,0,0,1,0,0,0, +1594089833084,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,,2,0,0,0,0,0,0, +1594092988804,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",2,1,0,0,0,0,0, +1594093445402,7yKzcQm4-xKTC-0bhC-PZXC-3jAbRIXOsf5w,"[""stationary""]",0,1,0,0,0,0,0, diff --git a/tests/data/raw/test03/plugin_google_activity_recognition_raw.csv b/tests/data/raw/test03/plugin_google_activity_recognition_raw.csv new file mode 100644 index 00000000..803c009b --- /dev/null +++ b/tests/data/raw/test03/plugin_google_activity_recognition_raw.csv @@ -0,0 +1 @@ +timestamp,device_id,activity_name,activity_type,confidence,activities \ No newline at end of file diff --git a/tests/data/raw/test04/plugin_ios_activity_recognition_raw.csv b/tests/data/raw/test04/plugin_ios_activity_recognition_raw.csv new file mode 100644 index 00000000..8fa12af4 --- /dev/null +++ b/tests/data/raw/test04/plugin_ios_activity_recognition_raw.csv @@ -0,0 +1 @@ +timestamp,device_id,activities,confidence,stationary,walking,running,automotive,cycling,unknown,label \ No newline at end of file diff --git a/tests/scripts/utils.py b/tests/scripts/utils.py index 38d804f8..835f376b 100644 --- a/tests/scripts/utils.py +++ b/tests/scripts/utils.py @@ -83,7 +83,7 @@ def generate_sensor_file_lists(config): exp_str = "tests/data/processed/{pid}/{sensor}_{sensor_type}{day_segment}.csv" # List of available sensors that can be tested by the testing suite - TESTABLE_SENSORS = ['MESSAGES', 'CALLS', 'SCREEN', 'BATTERY', 'BLUETOOTH', 'WIFI', 'LIGHT', 'APPLICATIONS_FOREGROUND'] + TESTABLE_SENSORS = ['MESSAGES', 'CALLS', 'SCREEN', 'BATTERY', 'BLUETOOTH', 'WIFI', 'LIGHT', 'APPLICATIONS_FOREGROUND', 'ACTIVITY_RECOGNITION'] # Build list of sensors to be tested. sensors = [] diff --git a/tests/settings/config.yaml b/tests/settings/config.yaml index f529d080..3a3d2315 100644 --- a/tests/settings/config.yaml +++ b/tests/settings/config.yaml @@ -2,4 +2,4 @@ directory: ./ configfile: ./tests/settings/testing_config.yaml snakefile: ./tests/Snakefile cores: 1 -forcerun: [messages_features, call_features, screen_features, battery_features, bluetooth_features, wifi_features, light_features, applications_foreground_features] \ No newline at end of file +forcerun: [messages_features, call_features, bluetooth_features, activity_features, battery_features, screen_features, light_features, applications_foreground_features, wifi_features] \ No newline at end of file diff --git a/tests/settings/testing_config.yaml b/tests/settings/testing_config.yaml index a67f9238..8a412703 100644 --- a/tests/settings/testing_config.yaml +++ b/tests/settings/testing_config.yaml @@ -31,6 +31,26 @@ CALLS: outgoing: [count, distinctcontacts, meanduration, sumduration, minduration, maxduration, stdduration, modeduration, entropyduration, timefirstcall, timelastcall, countmostfrequentcontact] DAY_SEGMENTS: *day_segments +BLUETOOTH: + COMPUTE: True + DB_TABLE: bluetooth + DAY_SEGMENTS: *day_segments + FEATURES: ["countscans", "uniquedevices", "countscansmostuniquedevice"] + +ACTIVITY_RECOGNITION: + COMPUTE: True + DB_TABLE: + ANDROID: plugin_google_activity_recognition + IOS: plugin_ios_activity_recognition + DAY_SEGMENTS: *day_segments + FEATURES: ["count","mostcommonactivity","countuniqueactivities","activitychangecount","sumstationary","summobile","sumvehicle"] + +BATTERY: + COMPUTE: True + DB_TABLE: battery + DAY_SEGMENTS: *day_segments + FEATURES: ["countdischarge", "sumdurationdischarge", "countcharge", "sumdurationcharge", "avgconsumptionrate", "maxconsumptionrate"] + SCREEN: COMPUTE: True DB_TABLE: screen @@ -41,26 +61,6 @@ SCREEN: FEATURES_DELTAS: ["countepisode", "episodepersensedminutes", "sumduration", "maxduration", "minduration", "avgduration", "stdduration", "firstuseafter"] EPISODE_TYPES: ["unlock"] -BATTERY: - COMPUTE: True - DB_TABLE: battery - DAY_SEGMENTS: *day_segments - FEATURES: ["countdischarge", "sumdurationdischarge", "countcharge", "sumdurationcharge", "avgconsumptionrate", "maxconsumptionrate"] - -BLUETOOTH: - COMPUTE: True - DB_TABLE: bluetooth - DAY_SEGMENTS: *day_segments - FEATURES: ["countscans", "uniquedevices", "countscansmostuniquedevice"] - -WIFI: - COMPUTE: True - DB_TABLE: - VISIBLE_ACCESS_POINTS: "wifi" # if you only have a CONNECTED_ACCESS_POINTS table, set this value to "" - CONNECTED_ACCESS_POINTS: "sensor_wifi" # if you only have a VISIBLE_ACCESS_POINTS table, set this value to "" - DAY_SEGMENTS: *day_segments - FEATURES: ["countscans", "uniquedevices", "countscansmostuniquedevice"] - LIGHT: COMPUTE: True DB_TABLE: light @@ -78,4 +78,27 @@ APPLICATIONS_FOREGROUND: SINGLE_APPS: ["top1global", "com.facebook.moments", "com.google.android.youtube"] # There's no entropy for single apps EXCLUDED_CATEGORIES: ["systemapp", "tvvideoapps"] EXCLUDED_APPS: ["com.fitbit.FitbitMobile", "com.aware.plugin.upmc.cancer"] - FEATURES: ["count", "timeoffirstuse", "timeoflastuse", "frequencyentropy"] \ No newline at end of file + FEATURES: ["count", "timeoffirstuse", "timeoflastuse", "frequencyentropy"] + +WIFI: + COMPUTE: True + DB_TABLE: + VISIBLE_ACCESS_POINTS: "wifi" # if you only have a CONNECTED_ACCESS_POINTS table, set this value to "" + CONNECTED_ACCESS_POINTS: "sensor_wifi" # if you only have a VISIBLE_ACCESS_POINTS table, set this value to "" + DAY_SEGMENTS: *day_segments + FEATURES: ["countscans", "uniquedevices", "countscansmostuniquedevice"] + + +CONVERSATION: + COMPUTE: False + DB_TABLE: + ANDROID: plugin_studentlife_audio_android + IOS: plugin_studentlife_audio + DAY_SEGMENTS: *day_segments + FEATURES: ["minutessilence", "minutesnoise", "minutesvoice", "minutesunknown","sumconversationduration","avgconversationduration", + "sdconversationduration","minconversationduration","maxconversationduration","timefirstconversation","timelastconversation","sumenergy", + "avgenergy","sdenergy","minenergy","maxenergy","silencesensedfraction","noisesensedfraction", + "voicesensedfraction","unknownsensedfraction","silenceexpectedfraction","noiseexpectedfraction","voiceexpectedfraction", + "unknownexpectedfraction","countconversation"] + RECORDINGMINUTES: 1 + PAUSEDMINUTES : 3