Skip to content

Commit a1c491c

Browse files
committed
test popsafe-fips
1 parent ba62241 commit a1c491c

File tree

1 file changed

+44
-1
lines changed

1 file changed

+44
-1
lines changed

_delphi_utils_python/tests/test_geomap.py

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import pandas as pd
66
import numpy as np
7+
import pdb
78

89

910
@pytest.fixture(scope="class")
@@ -190,6 +191,10 @@ def test_load_fips_msa_table(self, geomapper):
190191
msa_data = geomapper.get_crosswalk(from_code="fips", to_code="msa")
191192
assert tuple(msa_data.columns) == ("fips", "msa")
192193

194+
def test_load_fips_popsafefips_table(self, geomapper):
195+
popsafe_data = geomapper.get_crosswalk(from_code="fips", to_code="popsafe-fips")
196+
assert tuple(popsafe_data.columns) == ("fips", "popsafe-fips")
197+
193198
def test_load_jhu_uid_fips_table(self, geomapper):
194199
jhu_data = geomapper.get_crosswalk(from_code="jhu_uid", to_code="fips")
195200
assert np.allclose(jhu_data.groupby("jhu_uid").sum(), 1.0)
@@ -226,6 +231,12 @@ def test_megacounty(self, geomapper):
226231
}
227232
)
228233
pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1))
234+
# popsafe-county should have the same behavior when converting to megacounties.
235+
mega_county_groups = self.mega_data_3.copy()
236+
mega_county_groups.fips.replace({1125:"01g01"}, inplace = True)
237+
new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1)
238+
pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1))
239+
229240
new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1, thr_col="count")
230241
expected_df = pd.DataFrame(
231242
{
@@ -236,6 +247,11 @@ def test_megacounty(self, geomapper):
236247
}
237248
)
238249
pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1))
250+
# popsafe-county should have the same behavior when converting to megacounties.
251+
mega_county_groups = self.mega_data_3.copy()
252+
mega_county_groups.fips.replace({1123:"01g01"}, inplace = True)
253+
new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1, thr_col="count")
254+
pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1))
239255

240256
def test_add_population_column(self, geomapper):
241257
new_data = geomapper.add_population_column(self.fips_data_3, "fips")
@@ -244,6 +260,8 @@ def test_add_population_column(self, geomapper):
244260
assert new_data.shape == (6, 5)
245261
with pytest.raises(ValueError):
246262
new_data = geomapper.add_population_column(self.zip_data, "hrr")
263+
with pytest.raises(ValueError):
264+
new_data = geomapper.add_population_column(self.zip_data, "popsafe-fips")
247265
new_data = geomapper.add_population_column(self.fips_data_5, "fips")
248266
assert new_data.shape == (4, 5)
249267
new_data = geomapper.add_population_column(self.state_data, "state_code")
@@ -285,6 +303,26 @@ def test_add_geocode(self, geomapper):
285303
)
286304
)
287305

306+
# fips -> popsafe-fips
307+
new_data = geomapper.add_geocode(self.fips_data_5, "fips", "popsafe-fips")
308+
assert sorted(list(new_data["popsafe-fips"])) == ['01123', '18181', '48g19', '72003']
309+
assert new_data["popsafe-fips"].size == self.fips_data_5.fips.size
310+
new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "popsafe-fips")
311+
assert sorted(list(new_data["popsafe-fips"])) == ['01123', '18181', '48g19', '72003']
312+
assert new_data["popsafe-fips"].size == self.fips_data_5.fips.size
313+
314+
# popsafe-fips -> state_id
315+
new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "popsafe-fips")
316+
new_data2 = geomapper.add_geocode(new_data, "popsafe-fips", "state_id")
317+
assert new_data2["state_id"].unique().size == 4
318+
assert new_data2["state_id"].size == self.fips_data_5.fips.size
319+
assert sorted(list(new_data2["state_id"])) == ['al', 'in', 'pr', 'tx']
320+
321+
new_data2 = geomapper.replace_geocode(new_data, "popsafe-fips", "state_id")
322+
assert new_data2["state_id"].unique().size == 4
323+
assert new_data2["state_id"].size == 4
324+
assert sorted(list(new_data2["state_id"])) == ['al', 'in', 'pr', 'tx']
325+
288326
# zip -> nation
289327
new_data = geomapper.replace_geocode(self.zip_data, "zip", "nation")
290328
pd.testing.assert_frame_equal(
@@ -358,17 +396,22 @@ def test_get_geos(self, geomapper):
358396
assert geomapper.get_geo_values("nation") == {"us"}
359397
assert geomapper.get_geo_values("hhs") == set(str(i) for i in range(1, 11))
360398
assert len(geomapper.get_geo_values("fips")) == 3236
399+
assert len(geomapper.get_geo_values("popsafe-fips")) == 2711
361400
assert len(geomapper.get_geo_values("state_id")) == 60
362401
assert len(geomapper.get_geo_values("zip")) == 32976
363402

364403
def test_get_geos_2019(self, geomapper_2019):
365404
assert len(geomapper_2019.get_geo_values("fips")) == 3235
405+
assert len(geomapper_2019.get_geo_values("popsafe-fips")) == 2710
366406

367407
def test_get_geos_within(self, geomapper):
368408
assert len(geomapper.get_geos_within("us","state","nation")) == 60
369409
assert len(geomapper.get_geos_within("al","county","state")) == 68
410+
assert len(geomapper.get_geos_within("al","fips","state")) == 68
411+
assert geomapper.get_geos_within("al","fips","state") == geomapper.get_geos_within("al","county","state")
412+
assert len(geomapper.get_geos_within("al","popsafe-fips","state")) == 66
370413
assert len(geomapper.get_geos_within("4","state","hhs")) == 8
371-
assert geomapper.get_geos_within("4","state","hhs") =={'al', 'fl', 'ga', 'ky', 'ms', 'nc', "tn", "sc"}
414+
assert geomapper.get_geos_within("4","state","hhs") == {'al', 'fl', 'ga', 'ky', 'ms', 'nc', "tn", "sc"}
372415

373416
def test_census_year_pop(self, geomapper, geomapper_2019):
374417
df = pd.DataFrame({"fips": ["01001"]})

0 commit comments

Comments
 (0)