def test_extend(self): """Test the extend method""" # make ndarrays and DimArrays with identical data arr1 = np.arange(256).reshape((4,4,4,4)) dat1 = DimArray(arr1,dims=[Dim(np.arange(100,500,100),name='one'), Dim(np.arange(30,70,10),name='two'), Dim(np.arange(4),name='three'), Dim(np.arange(1000,1200,50),name='four')], test='tst') arr2 = np.arange(256,512).reshape((4,4,4,4)) dat2 = DimArray(arr2,dims=[Dim(np.arange(100,500,100),name='one'), Dim(np.arange(30,70,10),name='two'), Dim(np.arange(4,8),name='three'), Dim(np.arange(1000,1200,50),name='four')], test='tst') # extend dat1dat2 = dat1.extend(dat2,'three') arr1arr2 = np.concatenate([arr1,arr2],2) assert_array_equal(dat1dat2,arr1arr2)
def test_extend(self): """Test the extend method""" # make ndarrays and DimArrays with identical data arr1 = np.arange(256).reshape((4,4,4,4)) dat1 = DimArray(arr1,dims=[Dim(np.arange(100,500,100),name='one'), Dim(np.arange(30,70,10),name='two'), Dim(np.arange(4),name='three'), Dim(np.arange(1000,1200,50),name='four')], test='tst') arr2 = np.arange(256,512).reshape((4,4,4,4)) dat2 = DimArray(arr2,dims=[Dim(np.arange(100,500,100),name='one'), Dim(np.arange(30,70,10),name='two'), Dim(np.arange(4,8),name='three'), Dim(np.arange(1000,1200,50),name='four')], test='tst') # extend with string label for axis dat1dat2 = dat1.extend(dat2,'three') arr1arr2 = np.concatenate([arr1,arr2],2) assert_array_equal(dat1dat2,arr1arr2) # extend with int label for axis dat1dat2 = dat1.extend(dat2,2) arr1arr2 = np.concatenate([arr1,arr2],2) assert_array_equal(dat1dat2,arr1arr2) # now the same again for the case when not all dimensions are identical in size: # make ndarrays and DimArrays with identical data arr1 = np.arange(256).reshape((8,2,16,1)) dat1 = DimArray(arr1,dims=[Dim(np.arange(100,500,50),name='one'), Dim(np.arange(30,70,20),name='two'), Dim(np.arange(16),name='three'), Dim(np.arange(1000,1200,200),name='four')], test='tst') arr2 = np.arange(256,512).reshape((8,2,16,1)) dat2 = DimArray(arr2,dims=[Dim(np.arange(100,500,50),name='one'), Dim(np.arange(30,70,20),name='two'), Dim(np.arange(16,32),name='three'), Dim(np.arange(1000,1200,200),name='four')], test='tst') # extend with string label for axis dat1dat2 = dat1.extend(dat2,'three') arr1arr2 = np.concatenate([arr1,arr2],2) assert_array_equal(dat1dat2,arr1arr2) # extend with int label for axis dat1dat2 = dat1.extend(dat2,2) arr1arr2 = np.concatenate([arr1,arr2],2) assert_array_equal(dat1dat2,arr1arr2) # now the same again for the case when not all dimensions are identical in size: # make ndarrays and DimArrays with identical data arr1 = np.arange(4).reshape((1,1,4)) dat1 = DimArray(arr1,dims=[Dim([100],name='one'), Dim([30],name='two'), Dim(np.arange(4),name='three')], test='tst') arr2 = np.arange(4,16).reshape((1,3,4)) dat2 = DimArray(arr2,dims=[Dim([100],name='one'), Dim(np.arange(40,90,20),name='two'), Dim(np.arange(4),name='three')], test='tst') # extend with string label for axis dat1dat2 = dat1.extend(dat2,'two') arr1arr2 = np.concatenate([arr1,arr2],1) assert_array_equal(dat1dat2,arr1arr2) # extend with int label for axis dat1dat2 = dat1.extend(dat2,1) arr1arr2 = np.concatenate([arr1,arr2],1) assert_array_equal(dat1dat2,arr1arr2)