def test_special_attribute_func3(): shape = (6, 6) ordering = np.arange(product(shape))[::-1].reshape(shape) val = np.arange(product(shape)).reshape(shape) func = lambda s, x: x * s.val * s.myscalar1 * s._myscalar2 layout = PackedTable(shape, ordering=ordering, val=val, key=func) layout.myscalar1 = 2 layout._myscalar2 = 3 assert_same(layout.key(2), val.ravel()[::-1] * 12) assert_same(layout.all.key(2), val * 12)
def test_special_attribute_func2(): shape = (6, 6) ordering = np.arange(product(shape))[::-1].reshape(shape) val = np.arange(product(shape)).reshape(shape) layout = PackedTable(shape, ordering=ordering, val=val, key=None) layout.myscalar1 = 2 layout._myscalar2 = 3 layout_funcs = (lambda: val.ravel()[::-1] * 6, lambda s: s.val * s.myscalar1 * s._myscalar2) def func(v): setattr(layout, 'key', v) assert_equal(layout.all.key, val * 6) assert_equal(layout.key, val.ravel()[::-1] * 6) assert_same(layout.all.key.shape, layout.shape) assert_same(layout.key.shape, (len(layout),)) for v in layout_funcs: yield func, v