def test_delaunay_triples_wrong_kind_of_input(dataframe): """ Run triangulate.delaunay_triples using grid input that is not file/matrix/vectors. """ data = dataframe.z.to_xarray() # convert pandas.Series to xarray.DataArray assert data_kind(data) == "grid" with pytest.raises(GMTInvalidInput): triangulate.delaunay_triples(data=data)
def test_delaunay_triples_ndarray_output(dataframe, expected_dataframe): """ Test triangulate.delaunay_triples with "numpy" output type. """ output = triangulate.delaunay_triples(data=dataframe, output_type="numpy") assert isinstance(output, np.ndarray) np.testing.assert_allclose(actual=output, desired=expected_dataframe.to_numpy())
def test_delaunay_triples_input_xyz(dataframe, expected_dataframe): """ Run triangulate.delaunay_triples by passing in x, y, z numpy.ndarrays individually. """ output = triangulate.delaunay_triples(x=dataframe.x, y=dataframe.y, z=dataframe.z) pd.testing.assert_frame_equal(left=output, right=expected_dataframe)
def test_delaunay_triples_input_table_matrix(array_func, dataframe, expected_dataframe): """ Run triangulate.delaunay_triples by passing in a numpy.array or xarray.Dataset. """ table = array_func(dataframe) output = triangulate.delaunay_triples(data=table) pd.testing.assert_frame_equal(left=output, right=expected_dataframe)
def test_delaunay_triples_outfile(dataframe, expected_dataframe): """ Test triangulate.delaunay_triples with ``outfile``. """ with GMTTempFile(suffix=".txt") as tmpfile: with pytest.warns(RuntimeWarning) as record: result = triangulate.delaunay_triples(data=dataframe, outfile=tmpfile.name) assert len(record) == 1 # check that only one warning was raised assert result is None # return value is None assert os.path.exists(path=tmpfile.name) temp_df = pd.read_csv(filepath_or_buffer=tmpfile.name, sep="\t", header=None) pd.testing.assert_frame_equal(left=temp_df, right=expected_dataframe)
def test_delaunay_triples_input_xy_no_z(dataframe, expected_dataframe): """ Run triangulate.delaunay_triples by passing in x and y, but no z. """ output = triangulate.delaunay_triples(x=dataframe.x, y=dataframe.y) pd.testing.assert_frame_equal(left=output, right=expected_dataframe)
def test_delaunay_triples_invalid_format(dataframe): """ Test that triangulate.delaunay_triples fails with incorrect format. """ with pytest.raises(GMTInvalidInput): triangulate.delaunay_triples(data=dataframe, output_type=1)