def test_kvp_sort(): ks = np.full(10, -1, dtype=np.int32) vs = np.zeros(10) n = 0 for k in range(20): v = np.random.randn() n = kvp_minheap_insert(0, n, 10, k, v, ks, vs) assert n == 10 ovs = vs.copy() oks = ks.copy() ord = np.argsort(ovs) ord = ord[::-1] kvp_minheap_sort(0, n, ks, vs) assert vs[0] == np.max(ovs) assert vs[-1] == np.min(ovs) assert all(ks == oks[ord]) assert all(vs == ovs[ord])
def test_kvp_sort(values): "Test that sorting logic works" ks = np.full(10, -1, dtype=np.int32) vs = np.zeros(10) n = 0 for k in range(20): v = values[k] n = kvp_minheap_insert(0, n, 10, k, v, ks, vs) assert n == 10 ovs = vs.copy() oks = ks.copy() ord = np.argsort(ovs) ord = ord[::-1] kvp_minheap_sort(0, n, ks, vs) assert vs[0] == np.max(ovs) assert vs[-1] == np.min(ovs) assert all(ks == oks[ord]) assert all(vs == ovs[ord])
def _sort_nbrs(smat): for i in prange(smat.nrows): sp, ep = smat.row_extent(i) kvp_minheap_sort(sp, ep, smat.colinds, smat.values)