def test_sigmerger_check(): # 0-d signals assert SigMerger.check([Signal(0), Signal(0)]) assert not SigMerger.check([Signal(0), Signal(1)]) # compatible along first axis assert SigMerger.check( [Signal(np.empty((1, 2))), Signal(np.empty((2, 2)))]) # compatible along second axis assert SigMerger.check( [Signal(np.empty((2, 1))), Signal(np.empty((2, 2)))], axis=1) assert not SigMerger.check( [Signal(np.empty((2, 1))), Signal(np.empty((2, 2)))], axis=0) # shape mismatch assert not SigMerger.check( [Signal(np.empty((2,))), Signal(np.empty((2, 2)))]) # mixed dtype assert not SigMerger.check( [Signal(np.empty(2, dtype=int)), Signal(np.empty(2, dtype=float))]) s1 = Signal(np.empty(5)) s2 = Signal(np.empty(5)) # mixed signal and view assert not SigMerger.check([s1, s1[:3]]) # mixed bases assert not SigMerger.check([s1[:2], s2[2:]]) # compatible views assert SigMerger.check([s1[:2], s1[2:]])
def test_sigmerger_check(): # 0-d signals assert SigMerger.check([Signal(0), Signal(0)]) assert not SigMerger.check([Signal(0), Signal(1)]) # compatible along first axis assert SigMerger.check( [Signal(np.empty((1, 2))), Signal(np.empty((2, 2)))]) # compatible along second axis assert SigMerger.check( [Signal(np.empty( (2, 1))), Signal(np.empty((2, 2)))], axis=1) assert not SigMerger.check( [Signal(np.empty( (2, 1))), Signal(np.empty((2, 2)))], axis=0) # shape mismatch assert not SigMerger.check( [Signal(np.empty( (2, ))), Signal(np.empty((2, 2)))]) # mixed dtype assert not SigMerger.check( [Signal(np.empty(2, dtype=int)), Signal(np.empty(2, dtype=float))]) s1 = Signal(np.empty(5)) s2 = Signal(np.empty(5)) # mixed signal and view assert not SigMerger.check([s1, s1[:3]]) # mixed bases assert not SigMerger.check([s1[:2], s2[2:]]) # compatible views assert SigMerger.check([s1[:2], s1[2:]])
def test_sigmerger_check(): # 0-d signals assert SigMerger.check([Signal(0), Signal(0)]) assert not SigMerger.check([Signal(0), Signal(1)]) # compatible along first axis assert SigMerger.check( [Signal(np.empty((1, 2))), Signal(np.empty((2, 2)))]) # compatible along second axis assert SigMerger.check( [Signal(np.empty( (2, 1))), Signal(np.empty((2, 2)))], axis=1) assert not SigMerger.check( [Signal(np.empty( (2, 1))), Signal(np.empty((2, 2)))], axis=0) # shape mismatch assert not SigMerger.check( [Signal(np.empty( (2, ))), Signal(np.empty((2, 2)))]) # mixed dtype assert not SigMerger.check( [Signal(np.empty(2, dtype=int)), Signal(np.empty(2, dtype=float))]) s1 = Signal(np.empty(5)) s2 = Signal(np.empty(5)) # mixed signal and view assert not SigMerger.check([s1, s1[:3]]) # mixed bases assert not SigMerger.check([s1[:2], s2[2:]]) # compatible views assert SigMerger.check([s1[:2], s1[2:]]) # sparse signals not mergeable assert not SigMerger.check([ Signal(SparseMatrix([[0, 0]], 1.0, (1, 1))), Signal(SparseMatrix([[0, 0]], 1.0, (1, 1))), ]) # same signal cannot appear twice sig = Signal(0) assert not SigMerger.check([sig, sig])