(self)
| 3370 | np.zeros_like(a.ravel(), dtype=np.intp), msg) |
| 3371 | |
| 3372 | def test_partition(self): |
| 3373 | d = np.arange(10) |
| 3374 | assert_raises(TypeError, np.partition, d, 2, kind=1) |
| 3375 | assert_raises(ValueError, np.partition, d, 2, kind="nonsense") |
| 3376 | assert_raises(ValueError, np.argpartition, d, 2, kind="nonsense") |
| 3377 | assert_raises(ValueError, d.partition, 2, axis=0, kind="nonsense") |
| 3378 | assert_raises(ValueError, d.argpartition, 2, axis=0, kind="nonsense") |
| 3379 | for k in ("introselect",): |
| 3380 | d = np.array([]) |
| 3381 | assert_array_equal(np.partition(d, 0, kind=k), d) |
| 3382 | assert_array_equal(np.argpartition(d, 0, kind=k), d) |
| 3383 | d = np.ones(1) |
| 3384 | assert_array_equal(np.partition(d, 0, kind=k)[0], d) |
| 3385 | assert_array_equal(d[np.argpartition(d, 0, kind=k)], |
| 3386 | np.partition(d, 0, kind=k)) |
| 3387 | |
| 3388 | # kth not modified |
| 3389 | kth = np.array([30, 15, 5]) |
| 3390 | okth = kth.copy() |
| 3391 | np.partition(np.arange(40), kth) |
| 3392 | assert_array_equal(kth, okth) |
| 3393 | |
| 3394 | for r in ([2, 1], [1, 2], [1, 1]): |
| 3395 | d = np.array(r) |
| 3396 | tgt = np.sort(d) |
| 3397 | assert_array_equal(np.partition(d, 0, kind=k)[0], tgt[0]) |
| 3398 | assert_array_equal(np.partition(d, 1, kind=k)[1], tgt[1]) |
| 3399 | self.assert_partitioned(np.partition(d, 0, kind=k), [0]) |
| 3400 | self.assert_partitioned(d[np.argpartition(d, 0, kind=k)], [0]) |
| 3401 | self.assert_partitioned(np.partition(d, 1, kind=k), [1]) |
| 3402 | self.assert_partitioned(d[np.argpartition(d, 1, kind=k)], [1]) |
| 3403 | for i in range(d.size): |
| 3404 | d[i:].partition(0, kind=k) |
| 3405 | assert_array_equal(d, tgt) |
| 3406 | |
| 3407 | for r in ([3, 2, 1], [1, 2, 3], [2, 1, 3], [2, 3, 1], |
| 3408 | [1, 1, 1], [1, 2, 2], [2, 2, 1], [1, 2, 1]): |
| 3409 | d = np.array(r) |
| 3410 | tgt = np.sort(d) |
| 3411 | assert_array_equal(np.partition(d, 0, kind=k)[0], tgt[0]) |
| 3412 | assert_array_equal(np.partition(d, 1, kind=k)[1], tgt[1]) |
| 3413 | assert_array_equal(np.partition(d, 2, kind=k)[2], tgt[2]) |
| 3414 | self.assert_partitioned(np.partition(d, 0, kind=k), [0]) |
| 3415 | self.assert_partitioned(d[np.argpartition(d, 0, kind=k)], [0]) |
| 3416 | self.assert_partitioned(np.partition(d, 1, kind=k), [1]) |
| 3417 | self.assert_partitioned(d[np.argpartition(d, 1, kind=k)], [1]) |
| 3418 | self.assert_partitioned(np.partition(d, 2, kind=k), [2]) |
| 3419 | self.assert_partitioned(d[np.argpartition(d, 2, kind=k)], [2]) |
| 3420 | for i in range(d.size): |
| 3421 | d[i:].partition(0, kind=k) |
| 3422 | assert_array_equal(d, tgt) |
| 3423 | |
| 3424 | d = np.ones(50) |
| 3425 | assert_array_equal(np.partition(d, 0, kind=k), d) |
| 3426 | assert_array_equal(d[np.argpartition(d, 0, kind=k)], |
| 3427 | np.partition(d, 0, kind=k)) |
| 3428 | |
| 3429 | # sorted |
nothing calls this directly
no test coverage detected