import unittest import numpy as np import pandas as pd from numpy.random import default_rng from features.communication import enumerate_contacts, get_call_data rng = default_rng() class CallsFeatures(unittest.TestCase): def setUp(self): call_rows = 10 callers = np.concatenate(( np.repeat("caller1", 4), np.repeat("caller2", 3), np.repeat("caller3", 2), np.repeat("caller4", 1)), axis=None) rng.shuffle(callers) self.calls = pd.DataFrame({ "id": np.linspace(0, call_rows - 1, num=call_rows, dtype="u4") + 100, "_id": np.linspace(0, call_rows - 1, num=call_rows, dtype="u4"), "timestamp": np.sort(rng.integers(1612169903000, 1614556703000, size=call_rows)), "device_id": "device1", "call_type": rng.integers(1, 3, size=call_rows), "call_duration": rng.integers(0, 600, size=call_rows), "trace": callers, "participant_id": 29 }) print(self.calls) def test_get_calls_data(self): calls_from_db = get_call_data(["nokia_0000003"]) self.assertIsNotNone(calls_from_db) def test_enumeration(self): enumerate_contacts(self.calls) #Enumerate manually and compare