mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-26 15:12:01 +00:00
Add explicit test for recarray format descriptors
This commit is contained in:
parent
7f913aecab
commit
bdc9902041
@ -57,7 +57,13 @@ py::array_t<NestedStruct> create_nested(size_t n) {
|
|||||||
ptr[i].b.x = (i + 1) % 2; ptr[i].b.y = (uint32_t) (i + 1); ptr[i].b.z = (float) (i + 1) * 1.5f;
|
ptr[i].b.x = (i + 1) % 2; ptr[i].b.y = (uint32_t) (i + 1); ptr[i].b.z = (float) (i + 1) * 1.5f;
|
||||||
}
|
}
|
||||||
return arr;
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void print_format_descriptors() {
|
||||||
|
std::cout << py::format_descriptor<Struct>::value() << std::endl;
|
||||||
|
std::cout << py::format_descriptor<PackedStruct>::value() << std::endl;
|
||||||
|
std::cout << py::format_descriptor<NestedStruct>::value() << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_ex20(py::module &m) {
|
void init_ex20(py::module &m) {
|
||||||
@ -68,4 +74,5 @@ void init_ex20(py::module &m) {
|
|||||||
m.def("create_rec_simple", &create_recarray<Struct>);
|
m.def("create_rec_simple", &create_recarray<Struct>);
|
||||||
m.def("create_rec_packed", &create_recarray<PackedStruct>);
|
m.def("create_rec_packed", &create_recarray<PackedStruct>);
|
||||||
m.def("create_rec_nested", &create_nested);
|
m.def("create_rec_nested", &create_nested);
|
||||||
|
m.def("print_format_descriptors", &print_format_descriptors);
|
||||||
}
|
}
|
||||||
|
@ -2,12 +2,16 @@
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from example import create_rec_simple, create_rec_packed, create_rec_nested
|
from example import (
|
||||||
|
create_rec_simple, create_rec_packed, create_rec_nested, print_format_descriptors
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def check_eq(arr, data, dtype):
|
def check_eq(arr, data, dtype):
|
||||||
np.testing.assert_equal(arr, np.array(data, dtype=dtype))
|
np.testing.assert_equal(arr, np.array(data, dtype=dtype))
|
||||||
|
|
||||||
|
print_format_descriptors()
|
||||||
|
|
||||||
simple_dtype = np.dtype({'names': ['x', 'y', 'z'],
|
simple_dtype = np.dtype({'names': ['x', 'y', 'z'],
|
||||||
'formats': ['?', 'u4', 'f4'],
|
'formats': ['?', 'u4', 'f4'],
|
||||||
'offsets': [0, 4, 8]})
|
'offsets': [0, 4, 8]})
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
T{?:x:xxxI:y:f:z:}
|
||||||
|
T{?:x:=I:y:f:z:}
|
||||||
|
T{T{?:x:xxxI:y:f:z:}:a:T{?:x:=I:y:f:z:}:b:}
|
Loading…
Reference in New Issue
Block a user