Add tests for proximity.
parent
e7fe4e8398
commit
bb75abcb9b
|
@ -0,0 +1,63 @@
|
||||||
|
id,timestamp,device_id,_id,double_proximity,accuracy,label,dateTime
|
||||||
|
39017,1565802024310,f67354f7-d675-4b76-80c8-123cc4744a5b,2962,0,3,,2019-08-14T17:00:24Z
|
||||||
|
39018,1565802051075,f67354f7-d675-4b76-80c8-123cc4744a5b,2963,0,3,,2019-08-14T17:00:51Z
|
||||||
|
39019,1565802051354,f67354f7-d675-4b76-80c8-123cc4744a5b,2964,8,3,,2019-08-14T17:00:51Z
|
||||||
|
39089,1565010418305,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,51,5,3,,2019-08-05T13:06:58Z
|
||||||
|
39090,1565010772188,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,52,5,3,,2019-08-05T13:12:52Z
|
||||||
|
39091,1565012334450,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,53,5,3,,2019-08-05T13:38:54Z
|
||||||
|
39092,1565013000660,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,54,5,3,,2019-08-05T13:50:00Z
|
||||||
|
39093,1565022742894,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,55,0,3,,2019-08-05T16:32:22Z
|
||||||
|
39094,1565089295906,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,56,5,3,,2019-08-06T11:01:35Z
|
||||||
|
39095,1565096030817,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,57,0,3,,2019-08-06T12:53:50Z
|
||||||
|
39096,1565096367694,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,58,5,3,,2019-08-06T12:59:27Z
|
||||||
|
39097,1565096408570,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,59,5,3,,2019-08-06T13:00:08Z
|
||||||
|
39098,1565116821528,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,60,5,3,,2019-08-06T18:40:21Z
|
||||||
|
39099,1565131345333,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,61,0,3,,2019-08-06T22:42:25Z
|
||||||
|
39100,1565131375072,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,62,5,3,,2019-08-06T22:42:55Z
|
||||||
|
39101,1565131386353,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,63,0,3,,2019-08-06T22:43:06Z
|
||||||
|
39102,1565131389213,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,64,5,3,,2019-08-06T22:43:09Z
|
||||||
|
39103,1565131448891,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,65,0,3,,2019-08-06T22:44:08Z
|
||||||
|
39104,1565131454131,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,66,5,3,,2019-08-06T22:44:14Z
|
||||||
|
39105,1565176143083,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,67,0,3,,2019-08-07T11:09:03Z
|
||||||
|
39106,1565179569310,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,68,5,3,,2019-08-07T12:06:09Z
|
||||||
|
39107,1565180699173,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,69,5,3,,2019-08-07T12:24:59Z
|
||||||
|
39108,1565182538578,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,70,5,3,,2019-08-07T12:55:38Z
|
||||||
|
39109,1565192592776,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,71,0,3,,2019-08-07T15:43:12Z
|
||||||
|
39110,1565216023797,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,72,5,3,,2019-08-07T22:13:43Z
|
||||||
|
39111,1565248358647,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,73,0,3,,2019-08-08T07:12:38Z
|
||||||
|
39112,1565275859157,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,74,5,3,,2019-08-08T14:50:59Z
|
||||||
|
39113,1565304201431,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,75,0,3,,2019-08-08T22:43:21Z
|
||||||
|
39114,1565304229591,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,76,5,3,,2019-08-08T22:43:49Z
|
||||||
|
39115,1565304262050,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,77,0,3,,2019-08-08T22:44:22Z
|
||||||
|
39116,1565613142970,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,78,5,3,,2019-08-12T12:32:22Z
|
||||||
|
39117,1565618266531,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,79,5,3,,2019-08-12T13:57:46Z
|
||||||
|
39118,1565618410488,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,80,5,3,,2019-08-12T14:00:10Z
|
||||||
|
39119,1565618704942,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,81,5,3,,2019-08-12T14:05:04Z
|
||||||
|
39120,1565619005315,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,82,5,3,,2019-08-12T14:10:05Z
|
||||||
|
39121,1565619405904,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,83,5,3,,2019-08-12T14:16:45Z
|
||||||
|
39122,1565619678037,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,84,5,3,,2019-08-12T14:21:18Z
|
||||||
|
39123,1565621206713,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,85,5,3,,2019-08-12T14:46:46Z
|
||||||
|
39124,1565626622125,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,86,5,3,,2019-08-12T16:17:02Z
|
||||||
|
39125,1565684876738,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,87,5,3,,2019-08-13T08:27:56Z
|
||||||
|
39126,1565684956618,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,88,5,3,,2019-08-13T08:29:16Z
|
||||||
|
39127,1565684965647,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,89,5,3,,2019-08-13T08:29:25Z
|
||||||
|
39128,1565685092246,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,90,5,3,,2019-08-13T08:31:32Z
|
||||||
|
39129,1565685136337,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,91,5,3,,2019-08-13T08:32:16Z
|
||||||
|
39130,1565685147453,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,92,5,3,,2019-08-13T08:32:27Z
|
||||||
|
39131,1565685212523,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,93,5,3,,2019-08-13T08:33:32Z
|
||||||
|
39132,1565703397796,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,94,0,3,,2019-08-13T13:36:37Z
|
||||||
|
39133,1565776203019,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,95,5,3,,2019-08-14T09:50:03Z
|
||||||
|
39134,1565776434168,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,96,5,3,,2019-08-14T09:53:54Z
|
||||||
|
39135,1565776435231,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,97,0,3,,2019-08-14T09:53:55Z
|
||||||
|
39136,1565776443368,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,98,5,3,,2019-08-14T09:54:03Z
|
||||||
|
39137,1565779277109,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,99,0,3,,2019-08-14T10:41:17Z
|
||||||
|
39138,1565780016327,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,100,5,3,,2019-08-14T10:53:36Z
|
||||||
|
39139,1565780027437,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,101,5,3,,2019-08-14T10:53:47Z
|
||||||
|
39140,1565783470934,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,102,5,3,,2019-08-14T11:51:10Z
|
||||||
|
39141,1565783801540,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,103,0,3,,2019-08-14T11:56:41Z
|
||||||
|
39142,1565783802120,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,104,5,3,,2019-08-14T11:56:42Z
|
||||||
|
39143,1565783861495,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,105,5,3,,2019-08-14T11:57:41Z
|
||||||
|
39144,1565785318762,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,106,0,3,,2019-08-14T12:21:58Z
|
||||||
|
39145,1565785319346,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,107,5,3,,2019-08-14T12:21:59Z
|
||||||
|
39146,1565960121019,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,108,5,3,,2019-08-16T12:55:21Z
|
||||||
|
39147,1565960226792,fdb06d4a-ee6e-4336-9a96-fc8d2715f243,109,5,3,,2019-08-16T12:57:06Z
|
|
|
@ -5,6 +5,8 @@ import pandas as pd
|
||||||
from config.models import Participant, Proximity
|
from config.models import Participant, Proximity
|
||||||
from setup import db_engine, session
|
from setup import db_engine, session
|
||||||
|
|
||||||
|
FEATURES_PROXIMITY = ["freq_prox_near", "prop_prox_near"]
|
||||||
|
|
||||||
|
|
||||||
def get_proximity_data(usernames: Collection) -> pd.DataFrame:
|
def get_proximity_data(usernames: Collection) -> pd.DataFrame:
|
||||||
"""
|
"""
|
||||||
|
@ -56,7 +58,7 @@ def recode_proximity(df_proximity: pd.DataFrame) -> pd.DataFrame:
|
||||||
|
|
||||||
|
|
||||||
def count_proximity(
|
def count_proximity(
|
||||||
df_proximity: pd.DataFrame, group_by: Collection = ["participant_id"]
|
df_proximity: pd.DataFrame, group_by: Collection = None
|
||||||
) -> pd.DataFrame:
|
) -> pd.DataFrame:
|
||||||
"""
|
"""
|
||||||
The function counts how many times a "near" value occurs in proximity
|
The function counts how many times a "near" value occurs in proximity
|
||||||
|
@ -75,6 +77,8 @@ def count_proximity(
|
||||||
df_proximity_features: pd.DataFrame
|
df_proximity_features: pd.DataFrame
|
||||||
A dataframe with the count of "near" proximity values and their relative count.
|
A dataframe with the count of "near" proximity values and their relative count.
|
||||||
"""
|
"""
|
||||||
|
if group_by is None:
|
||||||
|
group_by = ["participant_id"]
|
||||||
if "bool_prox_near" not in df_proximity:
|
if "bool_prox_near" not in df_proximity:
|
||||||
df_proximity = recode_proximity(df_proximity)
|
df_proximity = recode_proximity(df_proximity)
|
||||||
df_proximity["bool_prox_far"] = ~df_proximity["bool_prox_near"]
|
df_proximity["bool_prox_far"] = ~df_proximity["bool_prox_near"]
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from features.proximity import *
|
||||||
|
|
||||||
|
|
||||||
|
class ProximityFeatures(unittest.TestCase):
|
||||||
|
df_proximity = pd.DataFrame()
|
||||||
|
df_proximity_recoded = pd.DataFrame()
|
||||||
|
df_proximity_features = pd.DataFrame()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls) -> None:
|
||||||
|
cls.df_proximity = pd.read_csv("../data/example_proximity.csv")
|
||||||
|
cls.df_proximity["participant_id"] = 99
|
||||||
|
|
||||||
|
def test_recode_proximity(self):
|
||||||
|
self.df_proximity_recoded = recode_proximity(self.df_proximity)
|
||||||
|
self.assertIn("bool_prox_near", self.df_proximity_recoded)
|
||||||
|
# Is the recoded column present?
|
||||||
|
self.assertIn(True, self.df_proximity_recoded.bool_prox_near)
|
||||||
|
# Are there "near" values in the data?
|
||||||
|
self.assertIn(False, self.df_proximity_recoded.bool_prox_near)
|
||||||
|
# Are there "far" values in the data?
|
||||||
|
|
||||||
|
def test_count_proximity(self):
|
||||||
|
self.df_proximity_recoded = recode_proximity(self.df_proximity)
|
||||||
|
self.df_proximity_features = count_proximity(self.df_proximity_recoded)
|
||||||
|
print(self.df_proximity_features.columns)
|
||||||
|
self.assertCountEqual(
|
||||||
|
self.df_proximity_features.columns.to_list(), FEATURES_PROXIMITY
|
||||||
|
)
|
Loading…
Reference in New Issue