Esempio n. 1
0
def test_CartesianData():

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    test = CartesianData()

    raw = (0, 1)
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert b[0] == 0
    assert b[1] == 1

    raw = (0, 1, -1)
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert b[0] == 0
    assert b[1] == 1
    assert b[2] == -1

    raw = (0, 1, -1, 1)

    with pytest.raises(ValueError):
        test.get_data(raw, meta)
Esempio n. 2
0
def test_LineTable_auto_plot(tmpdir):

    velocity = [float(x) for x in range(10)]
    thrust = [2 * float(x) for x in range(10)]
    power = [3 * float(x) for x in range(10)]

    raw = {"Velocity": velocity, "Thrust": thrust, "Power": power}

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["Velocity", "Thrust", "Power"],
        "units": ["m/s", "N", "W"]
    })

    test = LineTable()

    fout_factory = InterfaceFactory(AutoPlot)
    PlotCls = fout_factory(meta, test)

    plot = PlotCls()
    plot.data.result = test.get_data(raw, meta)
    plot.meta.result = meta

    plot.connect()

    assert len(plt.get_fignums()) == 1
    plt.close("all")
def test_TableDataColumn_auto_db(mocker):
    
    idx = range(1000)
    values = np.random.rand(len(idx))
    
    mock_dict = {"index": idx,
                 "a": values,
                 "b": values}
    mock_df = pd.DataFrame(mock_dict)
    
    mocker.patch('dtocean_core.data.definitions.get_table_df',
                 return_value=mock_df,
                 autospec=True)
    
    meta = CoreMetaData({"identifier": "test",
                         "structure": "test",
                         "title": "test",
                         "labels": ["index", "a", "b"],
                         "tables": ["mock.mock", "index", "a", "b"]})
    
    test = TableDataColumn()
    
    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)
    
    query = QueryCls()
    query.meta.result = meta
    
    query.connect()
    result = test.get_data(query.data.result, meta)
        
    assert "a" in result
    assert len(result) == len(idx)
def test_NumpyLine_auto_plot(tmpdir):

    coarse_sample = np.linspace(0., 2 * np.pi, num=5)
    raw = zip(coarse_sample, np.sin(coarse_sample))

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["x", "f(x)"],
        "units": ["m", "m^{2}"]
    })

    test = NumpyLine()

    fout_factory = InterfaceFactory(AutoPlot)
    PlotCls = fout_factory(meta, test)

    plot = PlotCls()
    plot.data.result = test.get_data(raw, meta)
    plot.meta.result = meta

    plot.connect()

    assert len(plt.get_fignums()) == 1
    plt.close("all")
def test_Histogram_auto_plot(tmpdir):

    bin_values = [1, 2, 3, 4, 5]
    bin_separators = [0, 2, 4, 6, 8, 10]

    raw = (bin_values, bin_separators)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["x", "f(x)"],
        "units": [None, "m^{2}"]
    })

    test = Histogram()

    fout_factory = InterfaceFactory(AutoPlot)
    PlotCls = fout_factory(meta, test)

    plot = PlotCls()
    plot.data.result = test.get_data(raw, meta)
    plot.meta.result = meta

    plot.connect()

    assert len(plt.get_fignums()) == 1
    plt.close("all")
Esempio n. 6
0
def test_TimeTable_auto_plot(tmpdir):

    dates = []
    dt = datetime(2010, 12, 01)
    end = datetime(2010, 12, 02, 23, 59, 59)
    step = timedelta(seconds=3600)

    while dt < end:
        dates.append(dt)
        dt += step

    values = np.random.rand(len(dates))
    raw = {"DateTime": dates, "a": values, "b": values}

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["a", "b"],
        "units": ["kg", None]
    })

    test = TimeTable()

    fout_factory = InterfaceFactory(AutoPlot)
    PlotCls = fout_factory(meta, test)

    plot = PlotCls()
    plot.data.result = test.get_data(raw, meta)
    plot.meta.result = meta

    plot.connect()

    assert len(plt.get_fignums()) == 1
    plt.close("all")
def test_NumpyLineArray_auto_db_none(mocker):

    mock_list = [None]

    mocker.patch('dtocean_core.data.definitions.get_one_from_column',
                 return_value=mock_list,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["x", "f(x)"],
        "units": ["m", "m^{2}"],
        "tables": ["mock.mock", "f_x"]
    })

    test = NumpyLineArray()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()

    assert query.data.result is None
def test_PolygonDictColumn_auto_db_empty(mocker):

    mock_lists = [[], []]

    mocker.patch('dtocean_core.data.definitions.get_all_from_columns',
                 return_value=mock_lists,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "tables": ["mock.mock", "description", "boundary"]
    })

    test = PolygonDictColumn()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()

    assert query.data.result is None
Esempio n. 9
0
def test_CartesianDictColumn_auto_db(mocker):

    raws = [{"a": (0, 1), "b": (1, 2)}, {"a": (0, 1, -1), "b": (1, 2, -2)}]

    for raw in raws:

        mock_lists = [raw.keys(), raw.values()]

        mocker.patch('dtocean_core.data.definitions.get_all_from_columns',
                     return_value=mock_lists,
                     autospec=True)

        meta = CoreMetaData({
            "identifier": "test",
            "structure": "test",
            "title": "test",
            "tables": ["mock.mock", "name", "position"]
        })

        test = CartesianDictColumn()

        query_factory = InterfaceFactory(AutoQuery)
        QueryCls = query_factory(meta, test)

        query = QueryCls()
        query.meta.result = meta

        query.connect()
        result = test.get_data(query.data.result, meta)

        assert result["a"][0] == 0
        assert result["a"][1] == 1
def test_PolygonDict_auto_file_output_bad_data(tmpdir):

    test_path = tmpdir.mkdir("sub").join("test{}".format(".csv"))
    test_path_str = str(test_path)

    raw = {
        "block 1": [(0., 0.), (1., 1.), (2., 2.)],
        "block 2": [(10., 10.), (11., 11.), (12., 12.)]
    }

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    test = PolygonDict()

    fout_factory = InterfaceFactory(AutoFileOutput)
    FOutCls = fout_factory(meta, test)

    fout = FOutCls()
    fout._path = test_path_str
    fout.data.result = raw

    with pytest.raises(TypeError):
        fout.connect()
def test_PolygonDict_auto_plot(tmpdir):

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    raw = {
        "block 1": [(0., 0., 0.), (1., 1., 1.), (2., 2., 2.)],
        "block 2": [(10., 10., 10.), (11., 11., 11.), (12., 12., 12.)]
    }

    test = PolygonDict()

    fout_factory = InterfaceFactory(AutoPlot)
    PlotCls = fout_factory(meta, test)

    plot = PlotCls()
    plot.data.result = test.get_data(raw, meta)
    plot.meta.result = meta

    plot.connect()

    assert len(plt.get_fignums()) == 1
    plt.close("all")
Esempio n. 12
0
def test_TimeSeries():
    
    dates = []
    dt = datetime(2010, 12, 01)
    end = datetime(2010, 12, 02, 23, 59, 59)
    step = timedelta(seconds=3600)
    
    while dt < end:
        dates.append(dt)
        dt += step
        
    values = np.random.rand(len(dates))
    raw = [(d, v) for d, v in zip(dates, values)]

    meta = CoreMetaData({"identifier": "test",
                         "structure": "test",
                         "title": "test",
                         "labels": ['mass'],
                         "units": ["kg"]})
    
    test = TimeSeries()
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert len(b) == len(dates)
    assert len(b.resample('D').mean()) == 2
Esempio n. 13
0
def test_TimeSeriesColumn_auto_db_empty(mocker):
    
    mock_dict = {"date": [],
                 "time": [],
                 "mass": []}
    mock_df = pd.DataFrame(mock_dict)
    
    mocker.patch('dtocean_core.data.definitions.get_table_df',
                 return_value=mock_df,
                 autospec=True)
    
    meta = CoreMetaData({"identifier": "test",
                         "structure": "test",
                         "title": "test",
                         "labels": ['mass'],
                         "units": ["kg"],
                         "tables": ["mock.mock", "date", "time", "mass"]})
    
    test = TimeSeriesColumn()
    
    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)
    
    query = QueryCls()
    query.meta.result = meta
    
    query.connect()
        
    assert query.data.result is None
Esempio n. 14
0
def test_XSet3D():

    raw = {
        "values": {
            "a": np.random.randn(2, 3, 1),
            "b": np.random.randn(2, 3, 1)
        },
        "coords": [['a', 'b'], [-2, 0, 2], [datetime(2010, 12, 01)]]
    }

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ['x', 'y', 't', 'a', 'b'],
        "units": [None, 'm', 's', 'POWER!', None]
    })

    test = XSet3D()
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert b["a"].shape == (2, 3, 1)
    assert b["a"].units == 'POWER!'
    assert b.t.units == 's'
def test_HistogramDict_auto_plot(tmpdir):

    test_data_one = np.random.random(10)
    test_data_two = np.random.random(10)

    values_one, bins_one = np.histogram(test_data_one)
    values_two, bins_two = np.histogram(test_data_two)

    values_dict = {
        "test_one": (values_one, bins_one),
        "test_two": (values_two, bins_two)
    }

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    test = HistogramDict()

    fout_factory = InterfaceFactory(AutoPlot)
    PlotCls = fout_factory(meta, test)

    plot = PlotCls()
    plot.data.result = test.get_data(values_dict, meta)
    plot.meta.result = meta

    plot.connect()

    assert len(plt.get_fignums()) == 1
    plt.close("all")
Esempio n. 16
0
def test_CartesianDict():

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    test = CartesianDict()

    raw = {"a": (0, 1), "b": (1, 2)}
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert b["a"][0] == 0
    assert b["a"][1] == 1

    raw = {"a": (0, 1, -1), "b": (1, 2, -2)}
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert b["a"][0] == 0
    assert b["a"][1] == 1
    assert b["a"][2] == -1

    raw = {"a": (0, 1, -1, 1)}

    with pytest.raises(ValueError):
        test.get_data(raw, meta)
def test_HistogramDict():

    test_data_one = np.random.random(10)
    test_data_two = np.random.random(10)

    values_one, bins_one = np.histogram(test_data_one)
    values_two, bins_two = np.histogram(test_data_two)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    values_dict = {
        "test_one": (values_one, bins_one),
        "test_two": (values_two, bins_two)
    }

    test = HistogramDict()
    a = test.get_data(values_dict, meta)
    b = test.get_value(a)

    assert len(b["test_one"]["values"]) == len(values_one)
    assert len(b["test_two"]["bins"]) == len(b["test_two"]["values"]) + 1
Esempio n. 18
0
def test_PolygonDataColumn_auto_db(mocker):

    raws = [
        WKTElement("POLYGON ((0 0, 1 0, 1 1, 0 0))"),
        WKTElement("POLYGON ((0 0 0, 1 0 0, 1 1 0, 0 0 0))")
    ]

    for raw in raws:

        mock_list = [raw]

        mocker.patch('dtocean_core.data.definitions.get_one_from_column',
                     return_value=mock_list,
                     autospec=True)

        meta = CoreMetaData({
            "identifier": "test",
            "structure": "test",
            "title": "test",
            "tables": ["mock.mock", "position"]
        })

        test = PolygonDataColumn()

        query_factory = InterfaceFactory(AutoQuery)
        QueryCls = query_factory(meta, test)

        query = QueryCls()
        query.meta.result = meta

        query.connect()
        result = test.get_data(query.data.result, meta)

        assert result.exterior.coords[0][0] == 0.
        assert result.exterior.coords[1][0] == 1.
Esempio n. 19
0
def test_TimeTable():

    dates = []
    dt = datetime(2010, 12, 01)
    end = datetime(2010, 12, 02, 23, 59, 59)
    step = timedelta(seconds=3600)

    while dt < end:
        dates.append(dt)
        dt += step

    values = np.random.rand(len(dates))
    raw = {"DateTime": dates, "a": values, "b": values}

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["a", "b"],
        "units": ["kg", None]
    })

    test = TimeTable()
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert "a" in b
    assert len(b) == len(dates)
    assert len(b.resample('D').mean()) == 2
Esempio n. 20
0
def test_PolygonData():

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    raw = [(0., 0.), (1., 1.), (2., 2.)]

    test = PolygonData()
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert b.exterior.coords[0][0] == 0.
    assert b.exterior.coords[1][1] == 1.

    raw = [(0., 0., 0.), (1., 1., 1.), (2., 2., 2.)]

    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert b.exterior.coords[0][0] == 0.
    assert b.exterior.coords[1][1] == 1.
    assert b.exterior.coords[2][2] == 2.

    raw = [(0., 0., 0., 0.), (1., 1., 1., 1.), (2., 2., 2., 2.)]

    with pytest.raises(ValueError):
        test.get_data(raw, meta)
def test_NumpyLineColumn_auto_db(mocker):

    coarse_sample = np.linspace(0., 2 * np.pi, num=5)
    mock_lists = [coarse_sample, list(np.sin(coarse_sample))]

    mocker.patch('dtocean_core.data.definitions.get_all_from_columns',
                 return_value=mock_lists,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["x", "f(x)"],
        "units": ["m", "m^{2}"],
        "tables": ["mock.mock", "x", "f_x"]
    })

    test = NumpyLineColumn()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()
    result = test.get_data(query.data.result, meta)

    assert max(result[:, 1]) == 1
Esempio n. 22
0
def test_PolygonDataColumn_auto_db_none(mocker):

    mock_list = [None]

    mocker.patch('dtocean_core.data.definitions.get_one_from_column',
                 return_value=mock_list,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "tables": ["mock.mock", "position"]
    })

    test = PolygonDataColumn()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()

    assert query.data.result is None
def test_HistogramColumn_auto_db_none(mocker):

    mock_lists = [[None, None], [None, None], [None, None]]

    mocker.patch('dtocean_core.data.definitions.get_all_from_columns',
                 return_value=mock_lists,
                 autospec=True)

    meta = CoreMetaData({
        "identifier":
        "test",
        "structure":
        "test",
        "title":
        "test",
        "labels": ["x", "f(x)"],
        "units": [None, "m^{2}"],
        "tables": ["mock.mock", "values", "lower_bounds", "upper_bounds"]
    })

    test = HistogramColumn()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()

    assert query.data.result is None
Esempio n. 24
0
def test_CartesianListDict():

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    test = CartesianListDict()

    raw = {"a": [(0, 1), (1, 2)], "b": [(3, 4), (4, 5)]}
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert len(b) == 2
    assert b["a"][0][0] == 0
    assert b["a"][0][1] == 1

    raw = {"a": [(0, 1, -1), (1, 2, -2)], "b": [(3, 4, -3), (4, 5, -5)]}
    a = test.get_data(raw, meta)
    b = test.get_value(a)

    assert len(b) == 2
    assert b["a"][0][0] == 0
    assert b["a"][0][1] == 1
    assert b["a"][0][2] == -1

    raw = {"a": [(0, 1, -1, 1)]}

    with pytest.raises(ValueError):
        test.get_data(raw, meta)
Esempio n. 25
0
def test_LineTableColumn_auto_db_none(mocker):

    thrust = [2 * float(x) for x in range(10)]
    power = [3 * float(x) for x in range(10)]

    mock_dict = {"velocity": [None] * 10, "thrust": thrust, "power": power}
    mock_df = pd.DataFrame(mock_dict)

    mocker.patch('dtocean_core.data.definitions.get_table_df',
                 return_value=mock_df,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "labels": ["Velocity", "Thrust", "Power"],
        "units": ["m/s", "N", "W"],
        "tables": ["mock.mock", "velocity", "thrust", "power"]
    })

    test = LineTableColumn()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()

    assert query.data.result is None
def test_SimpleDictColumn_auto_db(mocker):

    raw = {"a": 0, "b": 1}

    mock_lists = [raw.keys(), raw.values()]

    mocker.patch('dtocean_core.data.definitions.get_all_from_columns',
                 return_value=mock_lists,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "tables": ["mock.mock", "name", "position"],
        "types": ["float"]
    })

    test = SimpleDictColumn()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()
    result = test.get_data(query.data.result, meta)

    assert result["a"] == 0
    assert result["b"] == 1
def test_DateTimeDict_auto_file_input_bad_header(mocker):

    df_dict = {"Wrong": [1], "Headers": [1]}
    df = pd.DataFrame(df_dict)

    mocker.patch('dtocean_core.data.definitions.pd.read_excel',
                 return_value=df,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test"
    })

    test = DateTimeDict()

    fin_factory = InterfaceFactory(AutoFileInput)
    FInCls = fin_factory(meta, test)

    fin = FInCls()
    fin._path = "file.xlsx"

    with pytest.raises(ValueError):
        fin.connect()
def test_SimpleDictColumn_auto_db_none(mocker):

    mock_lists = [[None, None], [None, None]]

    mocker.patch('dtocean_core.data.definitions.get_all_from_columns',
                 return_value=mock_lists,
                 autospec=True)

    meta = CoreMetaData({
        "identifier": "test",
        "structure": "test",
        "title": "test",
        "tables": ["mock.mock", "position"],
        "types": ["float"]
    })

    test = SimpleDictColumn()

    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)

    query = QueryCls()
    query.meta.result = meta

    query.connect()

    assert query.data.result is None
def test_TableDataColumn_auto_db_none(mocker):
    
    mock_dict = {"index": [None, None],
                 "a": [None, None],
                 "b": [None, None]}
    mock_df = pd.DataFrame(mock_dict)
    
    mocker.patch('dtocean_core.data.definitions.get_table_df',
                 return_value=mock_df,
                 autospec=True)
    
    meta = CoreMetaData({"identifier": "test",
                         "structure": "test",
                         "title": "test",
                         "labels": ["index", "a", "b"],
                         "tables": ["mock.mock", "index", "a", "b"]})
    
    test = TableDataColumn()
    
    query_factory = InterfaceFactory(AutoQuery)
    QueryCls = query_factory(meta, test)
    
    query = QueryCls()
    query.meta.result = meta
    
    query.connect()
        
    assert query.data.result is None
Esempio n. 30
0
def test_CartesianDataColumn_auto_db(mocker):

    raws = [(0, 1), (0, 1, -1)]

    for raw in raws:

        mock_list = [raw]

        mocker.patch('dtocean_core.data.definitions.get_one_from_column',
                     return_value=mock_list,
                     autospec=True)

        meta = CoreMetaData({
            "identifier": "test",
            "structure": "test",
            "title": "test",
            "tables": ["mock.mock", "position"]
        })

        test = CartesianDataColumn()

        query_factory = InterfaceFactory(AutoQuery)
        QueryCls = query_factory(meta, test)

        query = QueryCls()
        query.meta.result = meta

        query.connect()
        result = test.get_data(query.data.result, meta)

        assert result[0] == 0
        assert result[1] == 1