def test_column_names_get_flow_data(): """Check DataFrame columns names.""" _, _, df_list, _ = get_flow_data() for i in range(12): assert df_list[i].columns[0] == 'COMPKEY' assert df_list[i].columns[1] == 'FLOWSEGID' assert df_list[i].columns[2] == 'geometry'
def test_output_add_flow_data(): """Check final DataFrame.""" # Get neighborhood polygons idx2poly = get_polygons(SHP_PATH) # Get mapping from FLOWSEGID to COMPKEY flow2key, _, df_list, year_list = get_flow_data() # Initialize lists for street data key_list = [] name_list = [] lon_list = [] lat_list = [] speed_list = [] road_list = [] nbhd_list = [] # Get street data from Seattle Streets dataset data_frame = gpd.read_file(STREET_PATH) get_street_data(data_frame, 'street', idx2poly, key_list, name_list, lon_list, lat_list, speed_list, road_list, nbhd_list) # Get street data from Traffic Flow Counts datasets for i in range(len(df_list) - 1, -1, -1): get_street_data(df_list[i], year_list[i], idx2poly, key_list, name_list, lon_list, lat_list, speed_list, road_list, nbhd_list) # Create initial DataFrame df_streets = pd.DataFrame( data={ 'key': key_list, 'name': name_list, 'lon': lon_list, 'lat': lat_list, 'speed': speed_list, 'road': road_list, 'nbhd': nbhd_list }) # Add traffic flow data for i in range(len(df_list) - 1, -1, -1): add_flow_data(df_streets, df_list[i], year_list[i], flow2key) # Check column names and types name_list = ['key', 'name', 'lon', 'lat', 'speed', 'road', 'nbhd'] type_list = [int, object, list, list, int, int, list] for i in range(7): assert list(df_streets)[i] == name_list[i] assert df_streets.dtypes[i] == type_list[i] for year in range(2007, 2019): assert list(df_streets)[year - 2000] == str(year) assert df_streets.dtypes[year - 2000] == int # Check values for year in range(2007, 2019): assert max(df_streets[str(year)].to_list()) > -1 assert max(df_streets[str(year)].to_list()) > -1
def test_consistency_get_flow_data(): """Check data consistincy across dictionaries.""" flow2key, key2flow, _, _ = get_flow_data() for key in key2flow: flow = key2flow[key] assert key in flow2key[flow].split(',') for flow in flow2key: keys = flow2key[flow] for key in keys.split(','): assert key2flow[key] == flow
def test_key2flow_get_flow_data(): """Check second dictionary.""" _, key2flow, _, _ = get_flow_data() assert isinstance(key2flow, dict) key_type = set(type(k) for k in key2flow) val_type = set(type(v) for v in key2flow.values()) assert len(key_type) == 1 assert len(val_type) == 1 assert list(key_type)[0] == str assert list(val_type)[0] == int
def test_flow2key_get_flow_data(): """Check first dictionary.""" flow2key, _, _, _ = get_flow_data() assert isinstance(flow2key, dict) key_type = set(type(k) for k in flow2key) val_type = set(type(v) for v in flow2key.values()) assert len(key_type) == 1 assert len(val_type) == 1 assert list(key_type)[0] == int assert list(val_type)[0] == str
def test_year_get_flow_data(): """Check year list.""" _, _, _, year_list = get_flow_data() assert year_list == list(np.arange(2018, 2006, -1))
def test_column_types_get_flow_data(): """Check DataFrame types.""" _, _, df_list, _ = get_flow_data() for i in range(12): assert df_list[i].dtypes[0] == object assert df_list[i].dtypes[1] == int
def test_ouput_length_get_flow_data(): """Check length of output.""" _, _, df_list, year_list = get_flow_data() assert len(df_list) == 12 assert len(year_list) == 12