()
| 237 | |
| 238 | |
| 239 | def test_sequences(): |
| 240 | rng = random.Random(42) |
| 241 | np_rng = np.random.default_rng(12345) |
| 242 | max_batch_size = 64 |
| 243 | max_num_frames = 50 |
| 244 | num_points = 30 |
| 245 | num_iters = 4 |
| 246 | |
| 247 | def points(): |
| 248 | return np.float32(np_rng.uniform(-100, 250, (num_points, 2))) |
| 249 | |
| 250 | def rand_range(limit): |
| 251 | return range(rng.randint(1, limit) + 1) |
| 252 | |
| 253 | def m(sample_desc): |
| 254 | angles = np_rng.uniform(-np.pi, np.pi, 2) |
| 255 | scales = np_rng.uniform(0, 5, 2) |
| 256 | c = np.cos(angles[0]) |
| 257 | s = np.sin(angles[1]) |
| 258 | return np.array([[c * scales[0], -s], [s, c * scales[1]]], dtype=np.float32) |
| 259 | |
| 260 | def t(sample_desc): |
| 261 | return np.float32(np_rng.uniform(-100, 250, 2)) |
| 262 | |
| 263 | def mt(sample_desc): |
| 264 | return np.append(m(sample_desc), t(sample_desc).reshape(-1, 1), axis=1) |
| 265 | |
| 266 | input_cases = [ |
| 267 | (fn.coord_transform, {}, [ArgCb("M", m, True)]), |
| 268 | (fn.coord_transform, {}, [ArgCb("T", t, True)]), |
| 269 | (fn.coord_transform, {}, [ArgCb("MT", mt, True)]), |
| 270 | (fn.coord_transform, {}, [ArgCb("MT", mt, False)]), |
| 271 | (fn.coord_transform, {}, [ArgCb("M", m, True), ArgCb("T", t, True)]), |
| 272 | (fn.coord_transform, {}, [ArgCb("M", m, False), ArgCb("T", t, True)]), |
| 273 | ] |
| 274 | |
| 275 | input_seq_data = [ |
| 276 | [ |
| 277 | np.array([points() for _ in rand_range(max_num_frames)], dtype=np.float32) |
| 278 | for _ in rand_range(max_batch_size) |
| 279 | ] |
| 280 | for _ in range(num_iters) |
| 281 | ] |
| 282 | |
| 283 | main_input = ArgData(desc=ArgDesc(0, "F", "", "F**"), data=input_seq_data) |
| 284 | |
| 285 | yield from sequence_suite_helper(rng, [main_input], input_cases, num_iters) |
| 286 | |
| 287 | input_broadcast_cases = [ |
| 288 | (fn.coord_transform, {}, [ArgCb(0, lambda _: points(), False, "cpu")], ["cpu"]), |
| 289 | (fn.coord_transform, {}, [ArgCb(0, lambda _: points(), False, "gpu")], ["cpu"]), |
| 290 | ] |
| 291 | |
| 292 | input_mt_data = [ |
| 293 | [ |
| 294 | np.array([mt(None) for _ in rand_range(max_num_frames)], dtype=np.float32) |
| 295 | for _ in rand_range(max_batch_size) |
| 296 | ] |
nothing calls this directly
no test coverage detected