added numpy test (minor): check that 'strides' is respected even when creating new arrays

- This actually works with no changes, I just wasn't 100% convinced and
  decided to write a test to see if it's true.
This commit is contained in:
Wenzel Jakob 2016-10-12 23:34:06 +02:00
parent 26df852392
commit 43f6aa6846
2 changed files with 18 additions and 0 deletions

View File

@ -91,4 +91,12 @@ test_initializer numpy_array([](py::module &m) {
def_index_fn(mutate_data_t, arr_t&); def_index_fn(mutate_data_t, arr_t&);
def_index_fn(at_t, const arr_t&); def_index_fn(at_t, const arr_t&);
def_index_fn(mutate_at_t, arr_t&); def_index_fn(mutate_at_t, arr_t&);
sm.def("make_f_array", [] {
return py::array_t<float>({ 2, 2 }, { 4, 8 });
});
sm.def("make_c_array", [] {
return py::array_t<float>({ 2, 2 }, { 8, 4 });
});
}); });

View File

@ -148,3 +148,13 @@ def test_bounds_check(arr):
with pytest.raises(IndexError) as excinfo: with pytest.raises(IndexError) as excinfo:
index_at(arr, 0, 4) index_at(arr, 0, 4)
assert str(excinfo.value) == 'index 4 is out of bounds for axis 1 with size 3' assert str(excinfo.value) == 'index 4 is out of bounds for axis 1 with size 3'
@pytest.requires_numpy
def test_make_c_f_array():
from pybind11_tests.array import (
make_c_array, make_f_array
)
assert make_c_array().flags.c_contiguous
assert not make_c_array().flags.f_contiguous
assert make_f_array().flags.f_contiguous
assert not make_f_array().flags.c_contiguous