MCPcopy Create free account
hub / github.com/pybind/pybind11 / test_trivial_broadcasting

Function test_trivial_broadcasting

tests/test_numpy_vectorize.py:159–207  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

157
158
159def test_trivial_broadcasting():
160 trivial, vectorized_is_trivial = m.trivial, m.vectorized_is_trivial
161
162 assert vectorized_is_trivial(1, 2, 3) == trivial.c_trivial
163 assert vectorized_is_trivial(np.array(1), np.array(2), 3) == trivial.c_trivial
164 assert (
165 vectorized_is_trivial(np.array([1, 3]), np.array([2, 4]), 3)
166 == trivial.c_trivial
167 )
168 assert trivial.c_trivial == vectorized_is_trivial(
169 np.array([[1, 3, 5], [7, 9, 11]]), np.array([[2, 4, 6], [8, 10, 12]]), 3
170 )
171 assert (
172 vectorized_is_trivial(np.array([[1, 2, 3], [4, 5, 6]]), np.array([2, 3, 4]), 2)
173 == trivial.non_trivial
174 )
175 assert (
176 vectorized_is_trivial(np.array([[1, 2, 3], [4, 5, 6]]), np.array([[2], [3]]), 2)
177 == trivial.non_trivial
178 )
179 z1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]], dtype="int32")
180 z2 = np.array(z1, dtype="float32")
181 z3 = np.array(z1, dtype="float64")
182 assert vectorized_is_trivial(z1, z2, z3) == trivial.c_trivial
183 assert vectorized_is_trivial(1, z2, z3) == trivial.c_trivial
184 assert vectorized_is_trivial(z1, 1, z3) == trivial.c_trivial
185 assert vectorized_is_trivial(z1, z2, 1) == trivial.c_trivial
186 assert vectorized_is_trivial(z1[::2, ::2], 1, 1) == trivial.non_trivial
187 assert vectorized_is_trivial(1, 1, z1[::2, ::2]) == trivial.c_trivial
188 assert vectorized_is_trivial(1, 1, z3[::2, ::2]) == trivial.non_trivial
189 assert vectorized_is_trivial(z1, 1, z3[1::4, 1::4]) == trivial.c_trivial
190
191 y1 = np.array(z1, order="F")
192 y2 = np.array(y1)
193 y3 = np.array(y1)
194 assert vectorized_is_trivial(y1, y2, y3) == trivial.f_trivial
195 assert vectorized_is_trivial(y1, 1, 1) == trivial.f_trivial
196 assert vectorized_is_trivial(1, y2, 1) == trivial.f_trivial
197 assert vectorized_is_trivial(1, 1, y3) == trivial.f_trivial
198 assert vectorized_is_trivial(y1, z2, 1) == trivial.non_trivial
199 assert vectorized_is_trivial(z1[1::4, 1::4], y2, 1) == trivial.f_trivial
200 assert vectorized_is_trivial(y1[1::4, 1::4], z2, 1) == trivial.c_trivial
201
202 assert m.vectorized_func(z1, z2, z3).flags.c_contiguous
203 assert m.vectorized_func(y1, y2, y3).flags.f_contiguous
204 assert m.vectorized_func(z1, 1, 1).flags.c_contiguous
205 assert m.vectorized_func(1, y2, 1).flags.f_contiguous
206 assert m.vectorized_func(z1[1::4, 1::4], y2, 1).flags.f_contiguous
207 assert m.vectorized_func(y1[1::4, 1::4], z2, 1).flags.c_contiguous
208
209
210def test_passthrough_arguments(doc):

Callers

nothing calls this directly

Calls 1

arrayMethod · 0.80

Tested by

no test coverage detected