def test_usgs_gage_init_multiple_parameters(dates_daily): usgs_gage = USGSGage( name="USGS 03290500 KENTUCKY RIVER AT LOCK 2 AT LOCKPORT, KY", parameters=[ Parameter(name="Discharge", dates=dates_daily, values=np.array([100, 110, 105, 107, 112]), units="cubic feet per second (Mean)", code="06_00060_00003"), Parameter(name="Stage", dates=dates_daily, values=np.array([10, 20, 25, 15, 5]), units="feet", code="03_00065") ]) assert usgs_gage.name == "USGS 03290500 KENTUCKY RIVER AT LOCK 2 AT LOCKPORT, KY" assert len(usgs_gage.parameters) == 2 assert usgs_gage.parameters[0].code == "06_00060_00003" assert usgs_gage.parameters[1].code == "03_00065" assert usgs_gage.parameters[0].name == "Discharge" assert usgs_gage.parameters[1].name == "Stage" assert usgs_gage.parameters[0].units == "cubic feet per second (Mean)" assert usgs_gage.parameters[1].units == "feet" assert list(usgs_gage.parameters[0].dates) == list(dates_daily) assert list(usgs_gage.parameters[1].dates) == list(dates_daily) assert list(usgs_gage.parameters[0].values) == list( np.array([100, 110, 105, 107, 112])) assert list(usgs_gage.parameters[1].values) == list( np.array([10, 20, 25, 15, 5]))
def test_parameter_save_summary_html(dates_daily): parameter = Parameter(name="Discharge", dates=dates_daily, units="cubic feet per second (Mean)", code="06_00060_00003", values=np.array([1, 2, 3, 4, 5])) output.save_summary(data=parameter.get_summary_data(), template_filename=parameter.template_html, output_file="tests/parameter-summary.html")
def test_print_parameter_by_not_capturing_stdout(dates_daily): parameter = Parameter(name = "Discharge", dates = dates_daily, units = "cubic feet per second (Mean)", code = "06_00060_00003", values = np.array([1, 2, 3, 4, 5])) print(parameter)
def test_print_usgs_gage_by_not_capturing_stdout(dates_daily): usgs_gage = USGSGage( name="USGS 03290500 KENTUCKY RIVER AT LOCK 2 AT LOCKPORT, KY", parameters=[ Parameter(name="Discharge", dates=dates_daily, values=np.array([1, 2, 3, 4, 5]), units="cubic feet per second (Mean)", code="06_00060_00003"), Parameter(name="Stage", dates=dates_daily, values=np.array([2, 4, 6, 8, 10]), units="feet", code="03_00065") ]) print(usgs_gage)
def test_save_usgs_gage_summary_html(dates_daily): usgs_gage = USGSGage( name="USGS 03290500 KENTUCKY RIVER AT LOCK 2 AT LOCKPORT, KY", parameters=[ Parameter(name="Discharge", dates=dates_daily, values=np.array([1, 2, 3, 4, 5]), units="cubic feet per second (Mean)", code="06_00060_00003"), Parameter(name="Stage", dates=dates_daily, values=np.array([2, 4, 6, 8, 10]), units="feet", code="03_00065") ]) output.save_summary(data=usgs_gage.get_summary_data(), template_filename=usgs_gage.template_html, output_file="tests/usgsgage-summary.html")
def test_max_min_date_with_nan(dates_daily): parameter = Parameter(name = "Discharge", dates = dates_daily, units = "cubic feet per second (Mean)", code = "06_00060_00003", values = np.array([1, 2, np.nan, 4, 5])) assert parameter.max_date == datetime(2015, 8, 5, 0, 0) assert parameter.min_date == datetime(2015, 8, 1, 0, 0)
def test_parameter_values_mean_max_min_with_nan(dates_daily): parameter = Parameter(name = "Discharge", dates = dates_daily, units = "cubic feet per second (Mean)", code = "06_00060_00003", values = np.array([1, 2, 3, np.nan, 12])) assert parameter.mean == 4.5 # sum(values)/len(values) -> 18/4 = 4.5 assert parameter.max == 12.0 assert parameter.min == 1.0
def test_parameter_values_mean_max_min_without_nan(dates_daily): parameter = Parameter(name = "Discharge", dates = dates_daily, units = "cubic feet per second (Mean)", code = "06_00060_00003", values = np.array([1, 2, 3, 4, 5])) assert parameter.mean == 3.0 assert parameter.max == 5.0 assert parameter.min == 1.0
def test_parameter_init(dates_daily): parameter = Parameter(name = "Discharge", dates = dates_daily, values = np.array([100, 110, 105, 107, 112]), units = "cubic feet per second (Mean)", code = "06_00060_00003") assert list(parameter.dates) == list(dates_daily) assert parameter.code == "06_00060_00003" assert parameter.name == "Discharge" assert parameter.units == "cubic feet per second (Mean)" assert list(parameter.values) == list(np.array([100, 110, 105, 107, 112]))