From 1ad8bb0365f3a3c06f845cfa13b6adafbb2459aa Mon Sep 17 00:00:00 2001 From: kaguillera Date: Thu, 13 Aug 2020 13:41:45 -0400 Subject: [PATCH] Add testing, test docs and minor fixes for AR --- docs/develop/test_cases.rst | 7 ++ src/features/ar/ar_base.py | 6 +- tests/Snakefile | 82 ++++++++++++++----- .../test01/activity_recognition_afternoon.csv | 2 + .../test01/activity_recognition_daily.csv | 2 + .../test01/activity_recognition_evening.csv | 2 + .../test01/activity_recognition_morning.csv | 2 + .../test01/activity_recognition_night.csv | 2 + .../test02/activity_recognition_afternoon.csv | 2 + .../test02/activity_recognition_daily.csv | 2 + .../test02/activity_recognition_evening.csv | 2 + .../test02/activity_recognition_morning.csv | 2 + .../test02/activity_recognition_night.csv | 2 + .../test03/activity_recognition_afternoon.csv | 1 + .../test03/activity_recognition_daily.csv | 1 + .../test03/activity_recognition_evening.csv | 1 + .../test03/activity_recognition_morning.csv | 1 + .../test03/activity_recognition_night.csv | 1 + .../test04/activity_recognition_afternoon.csv | 1 + .../test04/activity_recognition_daily.csv | 1 + .../test04/activity_recognition_evening.csv | 1 + .../test04/activity_recognition_morning.csv | 1 + .../test04/activity_recognition_night.csv | 1 + ...plugin_google_activity_recognition_raw.csv | 56 +++++++++++++ .../plugin_ios_activity_recognition_raw.csv | 56 +++++++++++++ ...plugin_google_activity_recognition_raw.csv | 1 + .../plugin_ios_activity_recognition_raw.csv | 1 + tests/scripts/utils.py | 2 +- tests/settings/config.yaml | 2 +- tests/settings/testing_config.yaml | 65 ++++++++++----- 30 files changed, 262 insertions(+), 46 deletions(-) create mode 100644 tests/data/processed/test01/activity_recognition_afternoon.csv create mode 100644 tests/data/processed/test01/activity_recognition_daily.csv create mode 100644 tests/data/processed/test01/activity_recognition_evening.csv create mode 100644 tests/data/processed/test01/activity_recognition_morning.csv create mode 100644 tests/data/processed/test01/activity_recognition_night.csv create mode 100644 tests/data/processed/test02/activity_recognition_afternoon.csv create mode 100644 tests/data/processed/test02/activity_recognition_daily.csv create mode 100644 tests/data/processed/test02/activity_recognition_evening.csv create mode 100644 tests/data/processed/test02/activity_recognition_morning.csv create mode 100644 tests/data/processed/test02/activity_recognition_night.csv create mode 100644 tests/data/processed/test03/activity_recognition_afternoon.csv create mode 100644 tests/data/processed/test03/activity_recognition_daily.csv create mode 100644 tests/data/processed/test03/activity_recognition_evening.csv create mode 100644 tests/data/processed/test03/activity_recognition_morning.csv create mode 100644 tests/data/processed/test03/activity_recognition_night.csv create mode 100644 tests/data/processed/test04/activity_recognition_afternoon.csv create mode 100644 tests/data/processed/test04/activity_recognition_daily.csv create mode 100644 tests/data/processed/test04/activity_recognition_evening.csv create mode 100644 tests/data/processed/test04/activity_recognition_morning.csv create mode 100644 tests/data/processed/test04/activity_recognition_night.csv create mode 100644 tests/data/raw/test01/plugin_google_activity_recognition_raw.csv create mode 100644 tests/data/raw/test02/plugin_ios_activity_recognition_raw.csv create mode 100644 tests/data/raw/test03/plugin_google_activity_recognition_raw.csv create mode 100644 tests/data/raw/test04/plugin_ios_activity_recognition_raw.csv 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