From a6d86528a412d917b0a3da5407ab4c3442abc4c9 Mon Sep 17 00:00:00 2001 From: kaguillera Date: Wed, 3 Jun 2020 19:42:12 -0400 Subject: [PATCH] Add initial testing files for call features --- .travis.yml | 4 ++- tests/Snakefile | 4 +++ .../test01/call_incoming_afternoon.csv | 2 ++ .../processed/test01/call_incoming_daily.csv | 2 ++ .../test01/call_incoming_evening.csv | 2 ++ .../test01/call_incoming_morning.csv | 2 ++ .../processed/test01/call_incoming_night.csv | 2 ++ .../test01/call_missed_afternoon.csv | 2 ++ .../processed/test01/call_missed_daily.csv | 2 ++ .../processed/test01/call_missed_evening.csv | 2 ++ .../processed/test01/call_missed_morning.csv | 2 ++ .../processed/test01/call_missed_night.csv | 2 ++ .../test01/call_outgoing_afternoon.csv | 2 ++ .../processed/test01/call_outgoing_daily.csv | 2 ++ .../test01/call_outgoing_evening.csv | 2 ++ .../test01/call_outgoing_morning.csv | 2 ++ .../processed/test01/call_outgoing_night.csv | 2 ++ tests/data/raw/test01/calls_raw.csv | 25 +++++++++++++++++++ tests/settings/config.yaml | 2 +- tests/settings/testing_config.yaml | 13 ++++++++-- 20 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 tests/data/processed/test01/call_incoming_afternoon.csv create mode 100644 tests/data/processed/test01/call_incoming_daily.csv create mode 100644 tests/data/processed/test01/call_incoming_evening.csv create mode 100644 tests/data/processed/test01/call_incoming_morning.csv create mode 100644 tests/data/processed/test01/call_incoming_night.csv create mode 100644 tests/data/processed/test01/call_missed_afternoon.csv create mode 100644 tests/data/processed/test01/call_missed_daily.csv create mode 100644 tests/data/processed/test01/call_missed_evening.csv create mode 100644 tests/data/processed/test01/call_missed_morning.csv create mode 100644 tests/data/processed/test01/call_missed_night.csv create mode 100644 tests/data/processed/test01/call_outgoing_afternoon.csv create mode 100644 tests/data/processed/test01/call_outgoing_daily.csv create mode 100644 tests/data/processed/test01/call_outgoing_evening.csv create mode 100644 tests/data/processed/test01/call_outgoing_morning.csv create mode 100644 tests/data/processed/test01/call_outgoing_night.csv create mode 100644 tests/data/raw/test01/calls_raw.csv diff --git a/.travis.yml b/.travis.yml index 21401eeb..3a4eb422 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,7 +38,9 @@ jobs: - brew install r - R --version - brew cask install miniconda - - eval "$(/usr/local/bin/conda shell.bash hook)" + - which conda + - eval "$(/opt/miniconda3/condabin/conda shell.bash hook)" + env: - RENV_PATHS_ROOT="$HOME/renv/cache" cache: diff --git a/tests/Snakefile b/tests/Snakefile index 860caecb..148f8c35 100644 --- a/tests/Snakefile +++ b/tests/Snakefile @@ -14,6 +14,10 @@ rule all: pid=config["PIDS"], sms_type = config["SMS"]["TYPES"], day_segment = config["SMS"]["DAY_SEGMENTS"]), + expand("data/processed/{pid}/call_{call_type}_{segment}.csv", + pid=config["PIDS"], + call_type=config["CALLS"]["TYPES"], + segment = config["CALLS"]["DAY_SEGMENTS"]), rule clean: shell: diff --git a/tests/data/processed/test01/call_incoming_afternoon.csv b/tests/data/processed/test01/call_incoming_afternoon.csv new file mode 100644 index 00000000..8c1e502a --- /dev/null +++ b/tests/data/processed/test01/call_incoming_afternoon.csv @@ -0,0 +1,2 @@ +"local_date","call_incoming_afternoon_count","call_incoming_afternoon_distinctcontacts","call_incoming_afternoon_meanduration","call_incoming_afternoon_sumduration","call_incoming_afternoon_minduration","call_incoming_afternoon_maxduration","call_incoming_afternoon_stdduration","call_incoming_afternoon_modeduration","call_incoming_afternoon_entropyduration","call_incoming_afternoon_timefirstcall","call_incoming_afternoon_timelastcall","call_incoming_afternoon_countmostfrequentcontact" +"2020-06-01",3,2,642.666666666667,1928,213,1053,420.333597673721,1053,0.941278069255821,753,921,2 diff --git a/tests/data/processed/test01/call_incoming_daily.csv b/tests/data/processed/test01/call_incoming_daily.csv new file mode 100644 index 00000000..49a6652b --- /dev/null +++ b/tests/data/processed/test01/call_incoming_daily.csv @@ -0,0 +1,2 @@ +"local_date","call_incoming_daily_count","call_incoming_daily_distinctcontacts","call_incoming_daily_meanduration","call_incoming_daily_sumduration","call_incoming_daily_minduration","call_incoming_daily_maxduration","call_incoming_daily_stdduration","call_incoming_daily_modeduration","call_incoming_daily_entropyduration","call_incoming_daily_timefirstcall","call_incoming_daily_timelastcall","call_incoming_daily_countmostfrequentcontact" +"2020-06-01",10,6,976.4,9764,213,1719,465.141603289913,439,2.18820020272087,163,1331,5 diff --git a/tests/data/processed/test01/call_incoming_evening.csv b/tests/data/processed/test01/call_incoming_evening.csv new file mode 100644 index 00000000..02a06fae --- /dev/null +++ b/tests/data/processed/test01/call_incoming_evening.csv @@ -0,0 +1,2 @@ +"local_date","call_incoming_evening_count","call_incoming_evening_distinctcontacts","call_incoming_evening_meanduration","call_incoming_evening_sumduration","call_incoming_evening_minduration","call_incoming_evening_maxduration","call_incoming_evening_stdduration","call_incoming_evening_modeduration","call_incoming_evening_entropyduration","call_incoming_evening_timefirstcall","call_incoming_evening_timelastcall","call_incoming_evening_countmostfrequentcontact" +"2020-06-01",3,3,1366.66666666667,4100,1157,1719,306.963081384934,1157,1.08260122332248,1144,1331,1 diff --git a/tests/data/processed/test01/call_incoming_morning.csv b/tests/data/processed/test01/call_incoming_morning.csv new file mode 100644 index 00000000..9dcff7cf --- /dev/null +++ b/tests/data/processed/test01/call_incoming_morning.csv @@ -0,0 +1,2 @@ +"local_date","call_incoming_morning_count","call_incoming_morning_distinctcontacts","call_incoming_morning_meanduration","call_incoming_morning_sumduration","call_incoming_morning_minduration","call_incoming_morning_maxduration","call_incoming_morning_stdduration","call_incoming_morning_modeduration","call_incoming_morning_entropyduration","call_incoming_morning_timefirstcall","call_incoming_morning_timelastcall","call_incoming_morning_countmostfrequentcontact" +"2020-06-01",2,2,983,1966,667,1299,446.891485709898,667,0.640802774623272,519,600,1 diff --git a/tests/data/processed/test01/call_incoming_night.csv b/tests/data/processed/test01/call_incoming_night.csv new file mode 100644 index 00000000..d3a404c2 --- /dev/null +++ b/tests/data/processed/test01/call_incoming_night.csv @@ -0,0 +1,2 @@ +"local_date","call_incoming_night_count","call_incoming_night_distinctcontacts","call_incoming_night_meanduration","call_incoming_night_sumduration","call_incoming_night_minduration","call_incoming_night_maxduration","call_incoming_night_stdduration","call_incoming_night_modeduration","call_incoming_night_entropyduration","call_incoming_night_timefirstcall","call_incoming_night_timelastcall","call_incoming_night_countmostfrequentcontact" +"2020-06-01",2,1,885,1770,439,1331,630.7392488184,439,0.560434787927257,163,257,2 diff --git a/tests/data/processed/test01/call_missed_afternoon.csv b/tests/data/processed/test01/call_missed_afternoon.csv new file mode 100644 index 00000000..48a33476 --- /dev/null +++ b/tests/data/processed/test01/call_missed_afternoon.csv @@ -0,0 +1,2 @@ +"local_date","call_missed_afternoon_count","call_missed_afternoon_distinctcontacts","call_missed_afternoon_timefirstcall","call_missed_afternoon_timelastcall","call_missed_afternoon_countmostfrequentcontact" +"2020-06-01",1,1,874,874,1 diff --git a/tests/data/processed/test01/call_missed_daily.csv b/tests/data/processed/test01/call_missed_daily.csv new file mode 100644 index 00000000..90a296d7 --- /dev/null +++ b/tests/data/processed/test01/call_missed_daily.csv @@ -0,0 +1,2 @@ +"local_date","call_missed_daily_count","call_missed_daily_distinctcontacts","call_missed_daily_timefirstcall","call_missed_daily_timelastcall","call_missed_daily_countmostfrequentcontact" +"2020-06-01",6,3,13,1167,4 diff --git a/tests/data/processed/test01/call_missed_evening.csv b/tests/data/processed/test01/call_missed_evening.csv new file mode 100644 index 00000000..290cf82b --- /dev/null +++ b/tests/data/processed/test01/call_missed_evening.csv @@ -0,0 +1,2 @@ +"local_date","call_missed_evening_count","call_missed_evening_distinctcontacts","call_missed_evening_timefirstcall","call_missed_evening_timelastcall","call_missed_evening_countmostfrequentcontact" +"2020-06-01",1,1,1167,1167,1 diff --git a/tests/data/processed/test01/call_missed_morning.csv b/tests/data/processed/test01/call_missed_morning.csv new file mode 100644 index 00000000..6a15d565 --- /dev/null +++ b/tests/data/processed/test01/call_missed_morning.csv @@ -0,0 +1,2 @@ +"local_date","call_missed_morning_count","call_missed_morning_distinctcontacts","call_missed_morning_timefirstcall","call_missed_morning_timelastcall","call_missed_morning_countmostfrequentcontact" +"2020-06-01",1,1,589,589,1 diff --git a/tests/data/processed/test01/call_missed_night.csv b/tests/data/processed/test01/call_missed_night.csv new file mode 100644 index 00000000..8359fafe --- /dev/null +++ b/tests/data/processed/test01/call_missed_night.csv @@ -0,0 +1,2 @@ +"local_date","call_missed_night_count","call_missed_night_distinctcontacts","call_missed_night_timefirstcall","call_missed_night_timelastcall","call_missed_night_countmostfrequentcontact" +"2020-06-01",3,1,13,257,3 diff --git a/tests/data/processed/test01/call_outgoing_afternoon.csv b/tests/data/processed/test01/call_outgoing_afternoon.csv new file mode 100644 index 00000000..0e8c6fa1 --- /dev/null +++ b/tests/data/processed/test01/call_outgoing_afternoon.csv @@ -0,0 +1,2 @@ +"local_date","call_outgoing_afternoon_count","call_outgoing_afternoon_distinctcontacts","call_outgoing_afternoon_meanduration","call_outgoing_afternoon_sumduration","call_outgoing_afternoon_minduration","call_outgoing_afternoon_maxduration","call_outgoing_afternoon_stdduration","call_outgoing_afternoon_modeduration","call_outgoing_afternoon_entropyduration","call_outgoing_afternoon_timefirstcall","call_outgoing_afternoon_timelastcall","call_outgoing_afternoon_countmostfrequentcontact" +"2020-06-01",2,2,1237.5,2475,1186,1289,72.8319984622144,1289,0.692482998176928,869,1051,1 diff --git a/tests/data/processed/test01/call_outgoing_daily.csv b/tests/data/processed/test01/call_outgoing_daily.csv new file mode 100644 index 00000000..1b8782bd --- /dev/null +++ b/tests/data/processed/test01/call_outgoing_daily.csv @@ -0,0 +1,2 @@ +"local_date","call_outgoing_daily_count","call_outgoing_daily_distinctcontacts","call_outgoing_daily_meanduration","call_outgoing_daily_sumduration","call_outgoing_daily_minduration","call_outgoing_daily_maxduration","call_outgoing_daily_stdduration","call_outgoing_daily_modeduration","call_outgoing_daily_entropyduration","call_outgoing_daily_timefirstcall","call_outgoing_daily_timelastcall","call_outgoing_daily_countmostfrequentcontact" +"2020-06-01",8,6,1168,9344,759,1543,250.842010607702,970,2.05922274128194,172,1277,3 diff --git a/tests/data/processed/test01/call_outgoing_evening.csv b/tests/data/processed/test01/call_outgoing_evening.csv new file mode 100644 index 00000000..94ab07c0 --- /dev/null +++ b/tests/data/processed/test01/call_outgoing_evening.csv @@ -0,0 +1,2 @@ +"local_date","call_outgoing_evening_count","call_outgoing_evening_distinctcontacts","call_outgoing_evening_meanduration","call_outgoing_evening_sumduration","call_outgoing_evening_minduration","call_outgoing_evening_maxduration","call_outgoing_evening_stdduration","call_outgoing_evening_modeduration","call_outgoing_evening_entropyduration","call_outgoing_evening_timefirstcall","call_outgoing_evening_timelastcall","call_outgoing_evening_countmostfrequentcontact" +"2020-06-01",2,2,1482,2964,1421,1543,86.2670273047588,1421,0.692468534923961,1156,1277,1 diff --git a/tests/data/processed/test01/call_outgoing_morning.csv b/tests/data/processed/test01/call_outgoing_morning.csv new file mode 100644 index 00000000..3c5dc871 --- /dev/null +++ b/tests/data/processed/test01/call_outgoing_morning.csv @@ -0,0 +1,2 @@ +"local_date","call_outgoing_morning_count","call_outgoing_morning_distinctcontacts","call_outgoing_morning_meanduration","call_outgoing_morning_sumduration","call_outgoing_morning_minduration","call_outgoing_morning_maxduration","call_outgoing_morning_stdduration","call_outgoing_morning_modeduration","call_outgoing_morning_entropyduration","call_outgoing_morning_timefirstcall","call_outgoing_morning_timelastcall","call_outgoing_morning_countmostfrequentcontact" +"2020-06-01",3,3,978.333333333333,2935,759,1116,192.000868053593,1116,1.08558305836162,418,687,1 diff --git a/tests/data/processed/test01/call_outgoing_night.csv b/tests/data/processed/test01/call_outgoing_night.csv new file mode 100644 index 00000000..cb0303cb --- /dev/null +++ b/tests/data/processed/test01/call_outgoing_night.csv @@ -0,0 +1,2 @@ +"local_date","call_outgoing_night_count","call_outgoing_night_distinctcontacts","call_outgoing_night_meanduration","call_outgoing_night_sumduration","call_outgoing_night_minduration","call_outgoing_night_maxduration","call_outgoing_night_stdduration","call_outgoing_night_modeduration","call_outgoing_night_entropyduration","call_outgoing_night_timefirstcall","call_outgoing_night_timelastcall","call_outgoing_night_countmostfrequentcontact" +"2020-06-01",1,1,970,970,970,970,NA,970,0,172,172,1 diff --git a/tests/data/raw/test01/calls_raw.csv b/tests/data/raw/test01/calls_raw.csv new file mode 100644 index 00000000..73be7e5b --- /dev/null +++ b/tests/data/raw/test01/calls_raw.csv @@ -0,0 +1,25 @@ +timestamp,device_id,call_type,call_duration,trace +1591020025000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,1299,OwyykjwekUUwhaCHEODWV5lZICBzdyLPnTE2wVL5 +1591019365000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,3,0,OwyykjwekUUwhaCHEODWV5lZICBzdyLPnTE2wVL5 +1591009125000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,1116,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1591014777000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,1060,cnUUS8QfrJ16VB6cakgg7IBWGP2OFzpJ7xlBAG8S +1591025270000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,759,1RgyLrcxRB4kPDTpszr6ocy2qtxvtyoTGl1WltUF +1591015194000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,667,JGtSHqWU2rTwJsHNzFiAzHUNHHYLYNUKjrGmB7G4 +1591039261000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,213,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1591036173000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,1289,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1591036460000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,3,0,0AF00XrOYBKFnoU9s1lZQBMCDyVWwIUu7t9FishN +1591030751000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,662,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1591029194000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,1053,6qWi08psbtFbnl0GxVYlAoG7e9X81JfYggNULsFh +1591047100000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,1186,6uW0vSbblda04AgPYlUMjaOBJ6vHdoeyCVy2xMcE +1591052691000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,1157,jVa0Xjl53p52AStkexUSNzJYHgcDihBWFeBmsAzr +1591056859000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,1719,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1591053398000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,1421,YTCSxqJMuECsKhqaTr6uH8xd5qIKNpGCJGvv9W0y +1591063906000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,1224,ekgS3LcK86nxkl3O9jzA3BWU5tJMiYHPbRsdHS2P +1591060637000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,1543,TjnOnOjHqcE2q2yzzwfcFoZfaIKN6VylfqkD0Zk7 +1591054046000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,3,0,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1590987442000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,3,0,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1590984805000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,3,0,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1590999462000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,1331,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1590994337000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,2,970,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1590999471000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,3,0,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP +1590993791000,e64uobDo-xNh0-KxYR-UWgR-utH2eyav204r,1,439,ciXg3DYB9bzl0KXxPcvxi50Z4NqSk0WVf7dLniNP \ No newline at end of file diff --git a/tests/settings/config.yaml b/tests/settings/config.yaml index fb54276c..e4c2207e 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: sms_features +forcerun: [sms_features, call_features] diff --git a/tests/settings/testing_config.yaml b/tests/settings/testing_config.yaml index 80a94180..e05bbecc 100644 --- a/tests/settings/testing_config.yaml +++ b/tests/settings/testing_config.yaml @@ -1,5 +1,5 @@ # Valid database table name -SENSORS: [messages] +SENSORS: [messages, calls] # Test Participant data to include in the unit testing # You must create a file for each participant @@ -8,7 +8,7 @@ PIDS: [test01] # Global var with common day segments DAY_SEGMENTS: &day_segments - [daily] + [daily, morning, afternoon, evening, night] # Communication SMS features config, TYPES and FEATURES keys need to match SMS: @@ -17,3 +17,12 @@ SMS: received: [count, distinctcontacts, timefirstsms, timelastsms, countmostfrequentcontact] sent: [count, distinctcontacts, timefirstsms, timelastsms, countmostfrequentcontact] DAY_SEGMENTS: *day_segments + +# Communication call features config, TYPES and FEATURES keys need to match +CALLS: + TYPES: [missed, incoming, outgoing] + FEATURES: + missed: [count, distinctcontacts, timefirstcall, timelastcall, countmostfrequentcontact] + incoming: [count, distinctcontacts, meanduration, sumduration, minduration, maxduration, stdduration, modeduration, entropyduration, timefirstcall, timelastcall, countmostfrequentcontact] + outgoing: [count, distinctcontacts, meanduration, sumduration, minduration, maxduration, stdduration, modeduration, entropyduration, timefirstcall, timelastcall, countmostfrequentcontact] + DAY_SEGMENTS: *day_segments