def test_categorize_columns(): csvdata = StringIO( dedent("""\ parameter,units,season,lower,NSQD Median,upper Cadmium (Cd),ug/L,autumn,0.117,0.361,0.52 Cadmium (Cd),ug/L,spring,0.172,0.352,0.53 Cadmium (Cd),ug/L,summer,0.304,0.411,0.476 Cadmium (Cd),ug/L,winter,0.355,0.559,1.125 Dissolved Chloride (Cl),mg/L,autumn,0.342,2.3,5.8 Dissolved Chloride (Cl),mg/L,spring,2.5,2.5,2.5 Dissolved Chloride (Cl),mg/L,summer,0.308,0.762,1.24 Escherichia coli,MPN/100 mL,autumn,1200.0,15500.0,24000.0 Escherichia coli,MPN/100 mL,spring,10.0,630.0,810.0 Escherichia coli,MPN/100 mL,summer,21000.0,27000.0,35000.0 Escherichia coli,MPN/100 mL,winter,20.0,200.0,800.0 """)) df = pandas.read_csv(csvdata) df2 = misc.categorize_columns(df, "parameter", "units", "season") # check pandas API that the first df has object columns assert object in df.dtypes.values # confirm that all of those objects are gone assert object not in df2.dtypes.values with helpers.raises(ValueError): misc.categorize_columns(df, "parameter", "upper")
def test_getStormFromTimestamp_(hr_simple_fixture, value, smallstorms, error): with helpers.raises(error): sn, storm = hr_simple_fixture.getStormFromTimestamp( value, smallstorms=smallstorms) assert sn == 2 if not smallstorms: assert storm is None else: assert isinstance(storm, hydro.Storm)
def test__find_by_name(value, expected, error): source = [ {"name": "MPN/100 mL", "factor": 1}, {"name": "MPN/100 mL", "factor": 1}, {"name": "ug/L", "factor": 1}, ] with helpers.raises(error): result = info._find_by_name(value, source) assert result == expected
def test_add_column_level(basic_data): known_cols = pandas.MultiIndex.from_tuples([ (u"test", u"A"), (u"test", u"B"), (u"test", u"C"), (u"test", u"D") ]) newdata = misc.add_column_level(basic_data, "test", "testlevel") assert known_cols.tolist() == newdata.columns.tolist() # can only add levels to non-MultiIndex columns with helpers.raises(ValueError): misc.add_column_level(newdata, "test2", "testlevel2")
def test_getStormFromTimestamp_lookback(hr_simple_fixture, lbh, expected, error): with helpers.raises(error): ts = pandas.Timestamp("2013-05-19 14:42") sn, storm = hr_simple_fixture.getStormFromTimestamp(ts, lookback_hours=lbh) if expected: assert sn == expected else: assert sn is None
def test_makeTimestamp_basic(row, expected, error): with warnings.catch_warnings(), helpers.raises(error): warnings.simplefilter("always") tstamp = dateutils.makeTimestamp(row) assert tstamp == pandas.Timestamp(expected)
def test_ds_scatterplot_useros(ds_NDs): with helpers.raises(ValueError): ds_NDs.scatterplot(useros=True)
def test_theilslopes(dc): with helpers.raises(NotImplementedError): _ = dc.theilslopes
def test_anderson_darling_log(dc): with helpers.raises(NotImplementedError): _ = dc.anderson_darling_log
def test__detection_limit_index_out_of_bounds(basic_cohn): with helpers.raises(IndexError): ros._detection_limit_index(0, basic_cohn)