def test_add_dims(): """ test adding dimensions """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS) ss.add_dimensions(tested_dims) assert len(ss.dimensions.keys()) > 0
def test_source_setting(): ac = pconn.AACTConnection() ac.set_source(ac.REMOTE) assert ac.source == ac.REMOTE ac.set_source(ac.LOCAL) assert ac.source == ac.LOCAL
def test_constraints(): """ adding and removing constraints """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) ss.add_constraint("start_date >= '2018-06-30'") ss.add_constraint("start_date <= '2018-12-31'") ss.load_studies() assert 0 < ss.studies.shape[0] < 50000
def test_drop_data(): """ dropping data from studies """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) ss.add_constraint("start_date >= '2017-06-30'") ss.add_constraint("start_date <= '2017-12-31'") ss.load_studies() ss.drop_studies(ss.studies.index) assert ss.studies.shape[0] == 0
def test_drop_dims(): """ dropping data from dimensions """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) ss.add_constraint("start_date >= '2017-12-31'") ss.add_constraint("start_date <= '2018-12-31'") ss.load_studies() tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS) ss.add_dimensions(tested_dims) ss.drop_dimensions(tested_dims) assert len(ss.dimensions) == 0
def test_all_dimensions(): """ test loading data from all dimensions """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) ss.add_constraint("start_date >= '2017-06-30'") ss.add_constraint("start_date <= '2017-12-31'") ss.load_studies() tested_dims = DIM_HANDLE_MAP.keys() ss.add_dimensions(tested_dims) ss.refresh_dim_data() for _, cur_dim in ss.dimensions.items(): assert cur_dim.data.shape[0] > 0
def test_refresh_dims(): """ test adding dimensions """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) ss.add_constraint("start_date >= '2016-06-30'") ss.add_constraint("start_date <= '2016-12-31'") ss.load_studies() tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS) ss.add_dimensions(tested_dims) ss.refresh_dim_data() for _, cur_dim in ss.dimensions.items(): assert cur_dim.data.shape[0] > 0
def test_memory_freeing(): """ test dropping data frees up memory """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) ss.load_studies() tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS) ss.add_dimensions(tested_dims) ss.refresh_dim_data() process = psutil.Process(os.getpid()) pre_clear_mem = process.memory_info().rss ss.drop_studies(ss.studies.index) post_clear_mem = process.memory_info().rss assert post_clear_mem < pre_clear_mem * MEM_THRESH
def __init__(self, conn=None, tqdm_handler=None): """ conn specifies the database connection, if None, attempts to establish a default local connection """ super().__init__() self._constraints = [] # constraints in a syntax that is understood by the _load_studies method self.tqdm = tqdm_handler self.dimensions = {} # keyed by dim name, to the dim object with the data self.avail_dims = DimAutoCompleter() # other attrs avail on the super: # self.studies = None # stores the object that represents the flat studies data # self.required_dims = None # stores the list of dim_name that represents required dimensions if conn: self.conn = conn else: self.conn = pc.AACTConnection(source=pc.AACTConnection.LOCAL)
def test_load_studies(): """ loading a set of studies """ conn = pc.AACTConnection(source=USED_DB) ss = AACTStudySet.AACTStudySet(conn=conn) ss.load_studies() assert ss.studies.shape[0] > 0
def test_remote_conn(): ac = pconn.AACTConnection() ac.connect_to_remote() assert ac.active_conn.closed == 0 ac.close()
def test_bad_set_source(): ac = pconn.AACTConnection() ac.set_source('foo') assert True ac.close()
def test_poor_source(): ac = pconn.AACTConnection() ac.source = 'foo' # bad source df = ac.query("SELECT * FROM studies LIMIT 1") assert not df ac.close()
def test_local_query(): ac = pconn.AACTConnection() ac.set_source(ac.LOCAL) df = ac.query("SELECT * FROM studies LIMIT 1") assert df.shape[0] == 1 ac.close()
def test_remote_query(): ac = pconn.AACTConnection() df = ac.query("SELECT * FROM studies LIMIT 1") assert df.shape[0] == 1 ac.close()
def test_local_conn(): ac = pconn.AACTConnection() ac.connect_to_local() assert ac.active_conn.closed == 0 ac.close()