def test_offset_with_different_strides(): pairs = np.arange(5, dtype=int).reshape((-1, 1)) out = np.empty(len(pairs), dtype=int) for _ in range(5): offset_to_sorted_block(pairs, out) assert np.all(out == [0, 1, 2, 3, 4]) pairs = np.hstack((pairs, pairs))
def test_offset_to_sorted_block_with_negatives(): pairs = np.array([ [-1, 0], [-1, 8], [-1, 7], [0, 3], [0, 2], [1, 4], [1, 7], [2, 8], [3, 5], [4, 5], [5, 6], [6, 7], [6, 8], ]) out = np.empty(len(pairs), dtype=int) offset_to_sorted_block(pairs, out) assert tuple(out) == (3, 5, 7, 8, 9, 10, 11, 13, 13, 13, 13, 13, 13)
def test_offset_to_sorted_block_all_negatives(): pairs = np.array([[-1, 0], [-1, 8], [-1, 7]]) out = np.empty(len(pairs) + 1, dtype=int) offset_to_sorted_block(pairs, out) assert tuple(out) == (3, 3, 3, 3)
def test_offset_with_long_out(): pairs = np.asarray([[1, 1], [2, 1], [3, 1], [4, 1]], dtype=np.int) out = np.empty(7, dtype=int) offset_to_sorted_block(pairs, out) assert np.all(out == [0, 0, 1, 2, 3, 4, 4])
def test_offset_2d_with_missing_in_middle(): pairs = np.asarray([[0, 1], [1, 1], [3, 1], [4, 1]], dtype=np.int) out = np.empty(5, dtype=int) offset_to_sorted_block(pairs, out) assert np.all(out == [0, 1, 2, 2, 3])
def test_offset_2d(): pairs = np.asarray([[0, 1], [1, 1], [2, 1], [3, 1], [4, 1]], dtype=np.int) out = np.empty(len(pairs), dtype=int) offset_to_sorted_block(pairs, out) assert np.all(out == [0, 1, 2, 3, 4])