(self)
| 2785 | np.zeros_like(a.ravel(), dtype=np.intp), msg) |
| 2786 | |
| 2787 | def test_partition(self): |
| 2788 | d = np.arange(10) |
| 2789 | assert_raises(TypeError, np.partition, d, 2, kind=1) |
| 2790 | assert_raises(ValueError, np.partition, d, 2, kind="nonsense") |
| 2791 | assert_raises(ValueError, np.argpartition, d, 2, kind="nonsense") |
| 2792 | assert_raises(ValueError, d.partition, 2, axis=0, kind="nonsense") |
| 2793 | assert_raises(ValueError, d.argpartition, 2, axis=0, kind="nonsense") |
| 2794 | for k in ("introselect",): |
| 2795 | d = np.array([]) |
| 2796 | assert_array_equal(np.partition(d, 0, kind=k), d) |
| 2797 | assert_array_equal(np.argpartition(d, 0, kind=k), d) |
| 2798 | d = np.ones(1) |
| 2799 | assert_array_equal(np.partition(d, 0, kind=k)[0], d) |
| 2800 | assert_array_equal(d[np.argpartition(d, 0, kind=k)], |
| 2801 | np.partition(d, 0, kind=k)) |
| 2802 | |
| 2803 | # kth not modified |
| 2804 | kth = np.array([30, 15, 5]) |
| 2805 | okth = kth.copy() |
| 2806 | np.partition(np.arange(40), kth) |
| 2807 | assert_array_equal(kth, okth) |
| 2808 | |
| 2809 | for r in ([2, 1], [1, 2], [1, 1]): |
| 2810 | d = np.array(r) |
| 2811 | tgt = np.sort(d) |
| 2812 | assert_array_equal(np.partition(d, 0, kind=k)[0], tgt[0]) |
| 2813 | assert_array_equal(np.partition(d, 1, kind=k)[1], tgt[1]) |
| 2814 | assert_array_equal(d[np.argpartition(d, 0, kind=k)], |
| 2815 | np.partition(d, 0, kind=k)) |
| 2816 | assert_array_equal(d[np.argpartition(d, 1, kind=k)], |
| 2817 | np.partition(d, 1, kind=k)) |
| 2818 | for i in range(d.size): |
| 2819 | d[i:].partition(0, kind=k) |
| 2820 | assert_array_equal(d, tgt) |
| 2821 | |
| 2822 | for r in ([3, 2, 1], [1, 2, 3], [2, 1, 3], [2, 3, 1], |
| 2823 | [1, 1, 1], [1, 2, 2], [2, 2, 1], [1, 2, 1]): |
| 2824 | d = np.array(r) |
| 2825 | tgt = np.sort(d) |
| 2826 | assert_array_equal(np.partition(d, 0, kind=k)[0], tgt[0]) |
| 2827 | assert_array_equal(np.partition(d, 1, kind=k)[1], tgt[1]) |
| 2828 | assert_array_equal(np.partition(d, 2, kind=k)[2], tgt[2]) |
| 2829 | assert_array_equal(d[np.argpartition(d, 0, kind=k)], |
| 2830 | np.partition(d, 0, kind=k)) |
| 2831 | assert_array_equal(d[np.argpartition(d, 1, kind=k)], |
| 2832 | np.partition(d, 1, kind=k)) |
| 2833 | assert_array_equal(d[np.argpartition(d, 2, kind=k)], |
| 2834 | np.partition(d, 2, kind=k)) |
| 2835 | for i in range(d.size): |
| 2836 | d[i:].partition(0, kind=k) |
| 2837 | assert_array_equal(d, tgt) |
| 2838 | |
| 2839 | d = np.ones(50) |
| 2840 | assert_array_equal(np.partition(d, 0, kind=k), d) |
| 2841 | assert_array_equal(d[np.argpartition(d, 0, kind=k)], |
| 2842 | np.partition(d, 0, kind=k)) |
| 2843 | |
| 2844 | # sorted |
nothing calls this directly
no test coverage detected