Skip to content

Commit 78d3532

Browse files
committed
dtype handling in tests
1 parent 722c8df commit 78d3532

File tree

2 files changed

+128
-3
lines changed

2 files changed

+128
-3
lines changed

epidatpy/_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ def _as_df(
305305
elif info.type == EpidataFieldType.float:
306306
data_types[info.name] = float
307307
else:
308-
data_types[info.name] = str
308+
data_types[info.name] = "string"
309309
if data_types:
310310
df = df.astype(data_types)
311311
return df

tests/test_epidata_calls.py

Lines changed: 127 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,17 @@ def test_pvt_cdc() -> None:
2323
)
2424
data = apicall.df()
2525
assert len(data) > 0
26+
assert str(data['location'].dtype) == 'string'
2627
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
28+
assert str(data['num1'].dtype) == 'int64'
29+
assert str(data['num2'].dtype) == 'int64'
30+
assert str(data['num3'].dtype) == 'int64'
31+
assert str(data['num4'].dtype) == 'int64'
32+
assert str(data['num5'].dtype) == 'int64'
33+
assert str(data['num6'].dtype) == 'int64'
34+
assert str(data['num7'].dtype) == 'int64'
35+
assert str(data['num8'].dtype) == 'int64'
36+
assert str(data['total'].dtype) == 'int64'
2737

2838
def test_pub_covid_hosp_facility_lookup() -> None:
2939
apicall = Epidata.pub_covid_hosp_facility_lookup(state="fl")
@@ -33,13 +43,35 @@ def test_pub_covid_hosp_facility_lookup() -> None:
3343
apicall = Epidata.pub_covid_hosp_facility_lookup(city="southlake")
3444
data = apicall.df()
3545
assert len(data) > 0
46+
assert str(data['hospital_pk'].dtype) == 'string'
47+
assert str(data['state'].dtype) == 'string'
48+
assert str(data['ccn'].dtype) == 'string'
49+
assert str(data['hospital_name'].dtype) == 'string'
50+
assert str(data['address'].dtype) == 'string'
51+
assert str(data['city'].dtype) == 'string'
52+
assert str(data['zip'].dtype) == 'string'
53+
assert str(data['hospital_subtype'].dtype) == 'string'
54+
assert str(data['fip_code'].dtype) == 'float64'
55+
assert str(data['is_metro_micro'].dtype) == 'int64'
3656

3757
def test_pub_covid_hosp_facility() -> None:
3858
apicall = Epidata.pub_covid_hosp_facility(
3959
hospital_pks = "100075",
4060
collection_weeks = EpiRange(20200101, 20200501))
4161
data = apicall.df()
4262
assert len(data) > 0
63+
assert str(data['hospital_pk'].dtype) == 'string'
64+
assert str(data['state'].dtype) == 'string'
65+
assert str(data['ccn'].dtype) == 'string'
66+
assert str(data['hospital_name'].dtype) == 'string'
67+
assert str(data['address'].dtype) == 'string'
68+
assert str(data['city'].dtype) == 'string'
69+
assert str(data['zip'].dtype) == 'string'
70+
assert str(data['hospital_subtype'].dtype) == 'string'
71+
assert str(data['fips_code'].dtype) == 'string'
72+
assert str(data['publication_date'].dtype) == 'datetime64[ns]'
73+
assert str(data['collection_week'].dtype) == 'datetime64[ns]'
74+
assert str(data['is_metro_micro'].dtype) == 'bool'
4375

4476
apicall = Epidata.pub_covid_hosp_facility(
4577
hospital_pks = "100075",
@@ -53,13 +85,28 @@ def test_pub_covid_hosp_state_timeseries() -> None:
5385
dates = EpiRange(20200101, 20200501))
5486
data = apicall.df()
5587
assert len(data) > 0
88+
assert str(data['state'].dtype) == 'string'
5689
assert str(data['issue'].dtype) == 'datetime64[ns]'
5790
assert str(data['date'].dtype) == 'datetime64[ns]'
5891

5992
def test_pub_covidcast_meta() -> None:
6093
apicall = Epidata.pub_covidcast_meta()
6194
data = apicall.df()
6295
assert len(data) > 0
96+
assert str(data['data_source'].dtype) == 'string'
97+
assert str(data['signal'].dtype) == 'string'
98+
assert str(data['time_type'].dtype) == 'category'
99+
assert str(data['min_time'].dtype) == 'datetime64[ns]'
100+
assert str(data['max_time'].dtype) == 'datetime64[ns]'
101+
assert str(data['num_locations'].dtype) == 'int64'
102+
assert str(data['min_value'].dtype) == 'float64'
103+
assert str(data['max_value'].dtype) == 'float64'
104+
assert str(data['mean_value'].dtype) == 'float64'
105+
assert str(data['stdev_value'].dtype) == 'float64'
106+
assert str(data['last_update'].dtype) == 'int64'
107+
assert str(data['max_issue'].dtype) == 'datetime64[ns]'
108+
assert str(data['min_lag'].dtype) == 'int64'
109+
assert str(data['max_lag'].dtype) == 'int64'
63110

64111
def test_pub_covidcast() -> None:
65112
apicall = Epidata.pub_covidcast(
@@ -80,9 +127,20 @@ def test_pub_covidcast() -> None:
80127
geo_values = "*",
81128
time_values = EpiRange(20200601, 20200801))
82129
data = apicall.df()
130+
print(data.dtypes)
131+
132+
assert str(data['source'].dtype) == 'string'
133+
assert str(data['signal'].dtype) == 'string'
134+
assert str(data['geo_type'].dtype) == 'category'
135+
assert str(data['geo_value'].dtype) == 'string'
136+
assert str(data['time_type'].dtype) == 'category'
83137
assert str(data['time_value'].dtype) == 'datetime64[ns]'
84138
assert str(data['issue'].dtype) == 'datetime64[ns]'
85-
assert len(data) > 0
139+
assert str(data['lag'].dtype) == 'int64'
140+
assert str(data['value'].dtype) == 'float64'
141+
assert str(data['missing_value'].dtype) == 'int64'
142+
assert str(data['missing_stderr'].dtype) == 'int64'
143+
assert str(data['missing_sample_size'].dtype) == 'int64'
86144

87145
def test_pub_delphi() -> None:
88146
apicall = Epidata.pub_delphi(
@@ -99,7 +157,10 @@ def test_pub_dengue_nowcast() -> None:
99157
)
100158
data = apicall.df()
101159
assert len(data) > 0
160+
assert str(data['location'].dtype) == 'string'
102161
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
162+
assert str(data['value'].dtype) == 'float64'
163+
assert str(data['std'].dtype) == 'float64'
103164

104165
def test_pvt_dengue_sensors() -> None:
105166
apicall = Epidata.pvt_dengue_sensors(
@@ -110,7 +171,9 @@ def test_pvt_dengue_sensors() -> None:
110171
)
111172
data = apicall.df()
112173
assert len(data) > 0
174+
assert str(data['location'].dtype) == 'string'
113175
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
176+
assert str(data['value'].dtype) == 'float64'
114177

115178
def test_pub_ecdc_ili() -> None:
116179
apicall = Epidata.pub_ecdc_ili(
@@ -130,8 +193,17 @@ def test_pub_flusurv() -> None:
130193
)
131194
data = apicall.df()
132195
assert len(data) > 0
196+
assert str(data['release_date'].dtype) == 'string'
197+
assert str(data['location'].dtype) == 'string'
133198
assert str(data['issue'].dtype) == 'datetime64[ns]'
134199
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
200+
assert str(data['lag'].dtype) == 'int64'
201+
assert str(data['rage_age_0'].dtype) == 'float64'
202+
assert str(data['rage_age_1'].dtype) == 'float64'
203+
assert str(data['rage_age_2'].dtype) == 'float64'
204+
assert str(data['rage_age_3'].dtype) == 'float64'
205+
assert str(data['rage_age_4'].dtype) == 'float64'
206+
assert str(data['rage_overall'].dtype) == 'float64'
135207

136208
def test_pub_fluview_clinical() -> None:
137209
apicall = Epidata.pub_fluview_clinical(
@@ -141,15 +213,24 @@ def test_pub_fluview_clinical() -> None:
141213
data = apicall.df()
142214
assert len(data) > 0
143215
assert str(data['release_date'].dtype) == 'datetime64[ns]'
216+
assert str(data['region'].dtype) == 'string'
144217
assert str(data['issue'].dtype) == 'datetime64[ns]'
145218
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
219+
assert str(data['lag'].dtype) == 'int64'
220+
assert str(data['total_specimens'].dtype) == 'int64'
221+
assert str(data['total_a'].dtype) == 'int64'
222+
assert str(data['total_b'].dtype) == 'int64'
223+
assert str(data['percent_positive'].dtype) == 'float64'
224+
assert str(data['percent_a'].dtype) == 'float64'
225+
assert str(data['percent_b'].dtype) == 'float64'
146226

147227
def test_pub_fluview_meta() -> None:
148228
apicall = Epidata.pub_fluview_meta()
149229
data = apicall.df()
150230
assert len(data) > 0
151231
assert str(data['latest_update'].dtype) == 'datetime64[ns]'
152232
assert str(data['latest_issue'].dtype) == 'datetime64[ns]'
233+
assert str(data['table_rows'].dtype) == 'int64'
153234

154235
def test_pub_fluview() -> None:
155236
apicall = Epidata.pub_fluview(
@@ -159,8 +240,14 @@ def test_pub_fluview() -> None:
159240
data = apicall.df()
160241
assert len(data) > 0
161242
assert str(data['release_date'].dtype) == 'datetime64[ns]'
243+
assert str(data['region'].dtype) == 'string'
162244
assert str(data['issue'].dtype) == 'datetime64[ns]'
163245
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
246+
assert str(data['lag'].dtype) == 'int64'
247+
assert str(data['num_ili'].dtype) == 'int64'
248+
assert str(data['num_patients'].dtype) == 'int64'
249+
assert str(data['wili'].dtype) == 'float64'
250+
assert str(data['ili'].dtype) == 'float64'
164251

165252
def test_pub_gft() -> None:
166253
apicall = Epidata.pub_gft(
@@ -169,7 +256,9 @@ def test_pub_gft() -> None:
169256
)
170257
data = apicall.df()
171258
assert len(data) > 0
259+
assert str(data['location'].dtype) == 'string'
172260
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
261+
assert str(data['num'].dtype) == 'int64'
173262

174263
def test_pvt_ght() -> None:
175264
apicall = Epidata.pvt_ght(
@@ -180,7 +269,9 @@ def test_pvt_ght() -> None:
180269
)
181270
data = apicall.df()
182271
assert len(data) > 0
272+
assert str(data['location'].dtype) == 'string'
183273
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
274+
assert str(data['value'].dtype) == 'float64'
184275

185276
def test_pub_kcdc_ili() -> None:
186277
apicall = Epidata.pub_kcdc_ili(
@@ -190,8 +281,11 @@ def test_pub_kcdc_ili() -> None:
190281
data = apicall.df()
191282
assert len(data) > 0
192283
assert str(data['release_date'].dtype) == 'datetime64[ns]'
284+
assert str(data['region'].dtype) == 'string'
193285
assert str(data['issue'].dtype) == 'datetime64[ns]'
194286
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
287+
assert str(data['lag'].dtype) == 'int64'
288+
assert str(data['ili'].dtype) == 'float64'
195289

196290
def test_pvt_meta_norostat() -> None:
197291
apicall = Epidata.pvt_meta_norostat(
@@ -212,7 +306,9 @@ def test_pub_nidss_dengue() -> None:
212306
)
213307
data = apicall.df()
214308
assert len(data) > 0
309+
assert str(data['location'].dtype) == 'string'
215310
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
311+
assert str(data['count'].dtype) == 'int64'
216312

217313
def test_pub_nidss_flu() -> None:
218314
apicall = Epidata.pub_nidss_flu(
@@ -222,8 +318,12 @@ def test_pub_nidss_flu() -> None:
222318
data = apicall.df()
223319
assert len(data) > 0
224320
assert str(data['release_date'].dtype) == 'datetime64[ns]'
321+
assert str(data['region'].dtype) == 'string'
225322
assert str(data['issue'].dtype) == 'datetime64[ns]'
226323
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
324+
assert str(data['lag'].dtype) == 'int64'
325+
assert str(data['visits'].dtype) == 'int64'
326+
assert str(data['ili'].dtype) == 'float64'
227327

228328
def test_pvt_norostat() -> None:
229329
apicall = Epidata.pvt_norostat(
@@ -244,7 +344,10 @@ def test_pub_nowcast() -> None:
244344
)
245345
data = apicall.df()
246346
assert len(data) > 0
347+
assert str(data['location'].dtype) == 'string'
247348
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
349+
assert str(data['value'].dtype) == 'float64'
350+
assert str(data['std'].dtype) == 'float64'
248351

249352
def test_pub_paho_dengue() -> None:
250353
apicall = Epidata.pub_paho_dengue(
@@ -254,8 +357,16 @@ def test_pub_paho_dengue() -> None:
254357
data = apicall.df()
255358
assert len(data) > 0
256359
assert str(data['release_date'].dtype) == 'datetime64[ns]'
257-
assert str(data['issue'].dtype) == 'datetime64[ns]'
360+
assert str(data['region'].dtype) == 'string'
361+
assert str(data['serotype'].dtype) == 'string'
258362
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
363+
assert str(data['issue'].dtype) == 'datetime64[ns]'
364+
assert str(data['lag'].dtype) == 'int64'
365+
assert str(data['total_pop'].dtype) == 'int64'
366+
assert str(data['num_dengue'].dtype) == 'int64'
367+
assert str(data['num_severe'].dtype) == 'int64'
368+
assert str(data['num_deaths'].dtype) == 'int64'
369+
assert str(data['incidence_rate'].dtype) == 'float64'
259370

260371
def test_pvt_quidel() -> None:
261372
apicall = Epidata.pvt_quidel(
@@ -265,7 +376,9 @@ def test_pvt_quidel() -> None:
265376
)
266377
data = apicall.df()
267378
assert len(data) > 0
379+
assert str(data['location'].dtype) == 'string'
268380
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
381+
assert str(data['value'].dtype) == 'float64'
269382

270383
def test_pvt_sensors() -> None:
271384
apicall = Epidata.pvt_sensors(
@@ -276,7 +389,10 @@ def test_pvt_sensors() -> None:
276389
)
277390
data = apicall.df()
278391
assert len(data) > 0
392+
assert str(data['name'].dtype) == 'string'
393+
assert str(data['location'].dtype) == 'string'
279394
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
395+
assert str(data['value'].dtype) == 'float64'
280396

281397
def test_pvt_twitter() -> None:
282398
apicall = Epidata.pvt_twitter(
@@ -287,7 +403,11 @@ def test_pvt_twitter() -> None:
287403
)
288404
data = apicall.df()
289405
assert len(data) > 0
406+
assert str(data['location'].dtype) == 'string'
290407
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
408+
assert str(data['num'].dtype) == 'int64'
409+
assert str(data['total'].dtype) == 'int64'
410+
assert str(data['percent'].dtype) == 'float64'
291411

292412
def test_pub_wiki() -> None:
293413
apicall = Epidata.pub_wiki(
@@ -297,4 +417,9 @@ def test_pub_wiki() -> None:
297417
)
298418
data = apicall.df()
299419
assert len(data) > 0
420+
assert str(data['article'].dtype) == 'string'
300421
assert str(data['epiweek'].dtype) == 'datetime64[ns]'
422+
assert str(data['count'].dtype) == 'int64'
423+
assert str(data['total'].dtype) == 'int64'
424+
assert str(data['hour'].dtype) == 'int64'
425+
assert str(data['value'].dtype) == 'float64'

0 commit comments

Comments
 (0)