def func(s, i, d): layout = PackedTable(shape, vertex=vertex, center=center, selection=s, ordering=i) packed = layout.pack(d) assert_equal(packed.shape, (len(layout),) + d.shape[2:]) d_ = layout.unpack(packed) assert_equal(d_.shape, d.shape) assert np.all((d == d_) | missing(d_)) out_packed = np.empty((len(layout),) + d.shape[2:], d.dtype).view(type(d)) out_unpacked = np.empty(d.shape, d.dtype).view(type(d)) layout.pack(d, out=out_packed) layout.unpack(out_packed, out=out_unpacked) assert np.all((d == out_unpacked) | missing(out_unpacked)) out_unpacked = np.empty((6,)+d.shape[1:], d.dtype)[::2].view(type(d)) out_packed = np.empty((out_packed.shape[0]*2,)+out_packed.shape[1:], d.dtype)[::2].view(type(d)) layout.pack(d, out=out_packed) layout.unpack(out_packed, out=out_unpacked) assert np.all((d == out_unpacked) | missing(out_unpacked))
def test_pack_none(): layout = PackedTable((3, 3)) assert_is_none(layout.pack(None)) assert_is_none(layout.unpack(None))