def test_convert_units(self): a = tstoolbox.read("tests/data_gainesville_daily_precip.csv", target_units="in") b = tstoolbox.equation( "x1/25.4", input_ts="tests/data_gainesville_daily_precip.csv").astype( "float64") b.columns = ["ADaymet-prcp:in"] assert_frame_equal(a, b) a = tstoolbox.read("tests/data_gainesville_daily_precip.csv", target_units="km") b = tstoolbox.equation( "x1/(1000*1000)", input_ts="tests/data_gainesville_daily_precip.csv").astype( "float64") b.columns = ["ADaymet-prcp:km"] assert_frame_equal(a, b) with pytest.raises(ValueError) as e_info: _ = tstoolbox.read("tests/data_gainesville_daily_precip.csv", source_units="ft3/s") assert ( r" You specified 'source_units' as ft3/s, but column units are mm." in str(e_info.value)) with pytest.raises(ValueError) as e_info: _ = tstoolbox.read("tests/data_gainesville_daily_precip.csv", target_units="ft3/s")
def test_equation_multiple_cols_01(self): """Test of equation API with multiple columns and numpy functions.""" out = tstoolbox.equation('sin(x1)*4 + cos(x2)*2', input_ts='tests/data_multiple_cols.csv', print_input=True) assert_frame_equal(out, self.equation_multiple_cols_01, check_column_type=False)
def test_equation(self): ''' Test equation API ''' out = tstoolbox.equation('x*4 + 2', input_ts='tests/data_simple.csv', print_input=True) assert_frame_equal(out, self.equation, check_column_type=False)
def test_equation_multiple_cols_03(self): """Test API with multiple columns and different times records.""" out = tstoolbox.equation('x1[t] + 0.6*maximum(x1[t-1], x1[t+1]) + x2', input_ts='tests/data_multiple_cols.csv', print_input=True) assert_frame_equal(out, self.equation_multiple_cols_03, check_column_type=False)
def test_equation_multiple_cols_03(self): """Test API with multiple columns and different times records.""" out = tstoolbox.equation( "x1[t] + 0.6*maximum(x1[t-1], x1[t+1]) + x2", input_ts="tests/data_multiple_cols.csv", print_input=True, ) assert_frame_equal(out, self.equation_multiple_cols_03, check_column_type=False)
def test_equation_multiple_cols_02(self): """Test API with mulitple columns.""" out = tstoolbox.equation('x1 + x2', input_ts='tests/data_multiple_cols.csv', print_input=True) assert_frame_equal(out, self.equation_multiple_cols_02, check_column_type=False)
def test_equation_multiple_cols_01(self): """Test of equation API with multiple columns and numpy functions.""" out = tstoolbox.equation( "sin(x1)*4 + cos(x2)*2", input_ts="tests/data_multiple_cols.csv", print_input=True, ) assert_frame_equal(out, self.equation_multiple_cols_01, check_column_type=False)
def test_equation_multiple_cols_02(self): """Test API with mulitple columns.""" out = tstoolbox.equation("x1 + x2", input_ts="tests/data_multiple_cols.csv", print_input=True) assert_frame_equal(out, self.equation_multiple_cols_02, check_column_type=False)
def test_equation_multiple_cols_04(self): """Test of equation API using different time records.""" out = tstoolbox.equation( "x[t] + 0.6*maximum(x[t-1], x[t+1]) + x[t]", input_ts="tests/data_flat.csv", print_input=True, ) self.maxDiff = None assert_frame_equal(out, self.equation_multiple_cols_04, check_column_type=False)
def test_equation_multiple_cols_04(self): """Test of equation API using different time records.""" out = tstoolbox.equation('x[t] + 0.6*maximum(x[t-1], x[t+1]) + x[t]', input_ts='tests/data_flat.csv', print_input=True) self.maxDiff = None assert_frame_equal(out, self.equation_multiple_cols_04, check_column_type=False)
def test_equation_multiple_cols_01(self): ''' Test of equation API with multiple columns and numpy functions. ''' out = tstoolbox.equation('sin(x1)*4 + cos(x2)*2', input_ts='tests/data_multiple_cols.csv', print_input=True) assert_frame_equal(out, self.equation_multiple_cols_01, check_column_type=False)
def test_equation_multiple_cols_02(self): ''' Test of equation API with mulitple columns. ''' out = tstoolbox.equation('x1 + x2', input_ts='tests/data_multiple_cols.csv', print_input=True) assert_frame_equal(out, self.equation_multiple_cols_02, check_column_type=False)
def test_equation_cols_over_nine(self): """Test of using equation API with columns over 9.""" input_ts = tstoolbox.read('tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv', append='columns') out = tstoolbox.equation('x10*10', input_ts=input_ts) self.maxDiff = None assert_frame_equal(out, self.equation_result)
def test_equation_multiple_cols_03(self): ''' Test of equation API with multiple columns and using different times records. ''' out = tstoolbox.equation('x1[t] + 0.6*maximum(x1[t-1], x1[t+1]) + x2', input_ts='tests/data_multiple_cols.csv', print_input=True) assert_frame_equal(out, self.equation_multiple_cols_03, check_column_type=False)
def test_equation_multiple_cols_05(self): ''' Test of equation API using different time records. Almost same as test_equation_multiple_cols_04 ''' out = tstoolbox.equation('x + 0.6*maximum(x[t-1], x[t+1]) + x[t]', input_ts='tests/data_flat.csv', print_input=True) self.maxDiff = None assert_frame_equal(out, self.equation_multiple_cols_04, check_column_type=False)
def test_equation_cols_over_nine(self): """Test of using equation API with columns over 9.""" input_ts = tstoolbox.read( "tests/data_multiple_cols.csv," "tests/data_multiple_cols.csv," "tests/data_multiple_cols.csv," "tests/data_multiple_cols.csv," "tests/data_multiple_cols.csv", append="columns", ) out = tstoolbox.equation("x10*10", input_ts=input_ts) self.maxDiff = None assert_frame_equal(out, self.equation_result)
def test_equation_cols_over_nine(self): ''' Test of using equation API with columns over 9. ''' input_ts = tstoolbox.read( 'tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv,' 'tests/data_multiple_cols.csv', append='columns') out = tstoolbox.equation('x10*10', input_ts=input_ts) self.maxDiff = None assert_frame_equal(out, self.equation_result)
def test_equation(self): """Test equation API.""" out = tstoolbox.equation( "x*4 + 2", input_ts="tests/data_simple.csv", print_input=True ) assert_frame_equal(out, self.equation, check_column_type=False)
def test_equation(self): """Test equation API.""" out = tstoolbox.equation('x*4 + 2', input_ts='tests/data_simple.csv', print_input=True) assert_frame_equal(out, self.equation, check_column_type=False)
matplotlib.use("Agg") import matplotlib.pyplot as plt import pytest from tstoolbox import tstoolbox # Pull this in once. df = tstoolbox.aggregate(agg_interval="D", clean=True, input_ts="tests/02234500_65_65.csv") # Pull this in once. dfa = tstoolbox.aggregate(agg_interval="A", clean=True, input_ts="tests/02234500_65_65.csv") dfa = tstoolbox.equation("x1*120@x2", input_ts=dfa, output_names=["Elevation::mean", "Flow::mean"]) @pytest.mark.mpl_image_compare(tolerance=6) def test_double_mass(): plt.close("all") return tstoolbox.plot( type="double_mass", clean=True, input_ts="tests/02234500_65_65.csv", ofilename=None, plot_styles="classic", )