def test_sigmerger_check_views(): s1 = Signal(np.empty((5, 5))) s2 = Signal(np.empty((5, 5))) # compatible along first axis SigMerger.check_views([s1[:1], s1[1:]]) # compatible along second axis SigMerger.check_views([s1[:1, :1], s1[:1, 1:]], axis=1) with pytest.raises(ValueError): SigMerger.check_views([s1[:1, :1], s1[:1, 1:]], axis=0) # shape mismatch with pytest.raises(ValueError): SigMerger.check_views([s1[:1], s1[1:, 0]]) # different bases with pytest.raises(ValueError): SigMerger.check_views([s1[:2], s2[2:]])
def test_sigmerger_check_views(): s1 = Signal(shape=(5, 5)) s2 = Signal(shape=(5, 5)) # compatible along first axis SigMerger.check_views([s1[:1], s1[1:]]) # compatible along second axis SigMerger.check_views([s1[:1, :1], s1[:1, 1:]], axis=1) # non-views with pytest.raises(ValueError, match="Cannot merge non-views"): SigMerger.check_views([s1, s2]) # different bases with pytest.raises(ValueError, match="must share the same base"): SigMerger.check_views([s1[:2], s2[2:]]) # different ndims with pytest.raises(ValueError, match="must have the same number of dimensions"): SigMerger.check_views([s1[:1], s1[1:, 0]]) # different strides with pytest.raises(ValueError, match="must have equal strides"): SigMerger.check_views([s1[::2], s1[::3]]) # shape mismatch with pytest.raises(ValueError, match="must have same shape except on"): SigMerger.check_views([s1[:1, :1], s1[:1, 1:]], axis=0) # non-sequential with pytest.raises(ValueError, match="Views are not sequential"): SigMerger.check_views([s1[1:], s1[1:-1]])