4
4
5
5
import pandas as pd
6
6
import numpy as np
7
+ import pdb
7
8
8
9
9
10
@pytest .fixture (scope = "class" )
@@ -190,6 +191,10 @@ def test_load_fips_msa_table(self, geomapper):
190
191
msa_data = geomapper .get_crosswalk (from_code = "fips" , to_code = "msa" )
191
192
assert tuple (msa_data .columns ) == ("fips" , "msa" )
192
193
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
+
193
198
def test_load_jhu_uid_fips_table (self , geomapper ):
194
199
jhu_data = geomapper .get_crosswalk (from_code = "jhu_uid" , to_code = "fips" )
195
200
assert np .allclose (jhu_data .groupby ("jhu_uid" ).sum (), 1.0 )
@@ -226,6 +231,12 @@ def test_megacounty(self, geomapper):
226
231
}
227
232
)
228
233
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
+
229
240
new_data = geomapper .fips_to_megacounty (self .mega_data_3 , 4 , 1 , thr_col = "count" )
230
241
expected_df = pd .DataFrame (
231
242
{
@@ -236,6 +247,11 @@ def test_megacounty(self, geomapper):
236
247
}
237
248
)
238
249
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 ))
239
255
240
256
def test_add_population_column (self , geomapper ):
241
257
new_data = geomapper .add_population_column (self .fips_data_3 , "fips" )
@@ -244,6 +260,8 @@ def test_add_population_column(self, geomapper):
244
260
assert new_data .shape == (6 , 5 )
245
261
with pytest .raises (ValueError ):
246
262
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" )
247
265
new_data = geomapper .add_population_column (self .fips_data_5 , "fips" )
248
266
assert new_data .shape == (4 , 5 )
249
267
new_data = geomapper .add_population_column (self .state_data , "state_code" )
@@ -285,6 +303,26 @@ def test_add_geocode(self, geomapper):
285
303
)
286
304
)
287
305
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
+
288
326
# zip -> nation
289
327
new_data = geomapper .replace_geocode (self .zip_data , "zip" , "nation" )
290
328
pd .testing .assert_frame_equal (
@@ -358,17 +396,22 @@ def test_get_geos(self, geomapper):
358
396
assert geomapper .get_geo_values ("nation" ) == {"us" }
359
397
assert geomapper .get_geo_values ("hhs" ) == set (str (i ) for i in range (1 , 11 ))
360
398
assert len (geomapper .get_geo_values ("fips" )) == 3236
399
+ assert len (geomapper .get_geo_values ("popsafe-fips" )) == 2711
361
400
assert len (geomapper .get_geo_values ("state_id" )) == 60
362
401
assert len (geomapper .get_geo_values ("zip" )) == 32976
363
402
364
403
def test_get_geos_2019 (self , geomapper_2019 ):
365
404
assert len (geomapper_2019 .get_geo_values ("fips" )) == 3235
405
+ assert len (geomapper_2019 .get_geo_values ("popsafe-fips" )) == 2710
366
406
367
407
def test_get_geos_within (self , geomapper ):
368
408
assert len (geomapper .get_geos_within ("us" ,"state" ,"nation" )) == 60
369
409
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
370
413
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" }
372
415
373
416
def test_census_year_pop (self , geomapper , geomapper_2019 ):
374
417
df = pd .DataFrame ({"fips" : ["01001" ]})
0 commit comments