Exemplo n.º 1
0
    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")
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 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)
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
 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)
Exemplo n.º 18
0
 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)
Exemplo n.º 19
0
 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)
Exemplo n.º 20
0
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",
    )