def test_search_by_index(builder): error = np.arange(9, dtype=float).reshape(3, 3) error[-1] = 7 iarr = RawBinary.map(FloatArray.from_numpy(error)) seq = Linear.flatten(0, iarr) space = builder.build_informationspace(seq) assert isinstance(space, IS)
name = "Block" @staticmethod def flatten(startnode, integerarray, weights=None): default_weights = () if not weights: weights = default_weights startnode, integerarray = _check_input(startnode, integerarray) shape = integerarray.array.shape _, seq = bfs.BFSBlos(shape=shape, startidx=int(startnode)-1, weights=weights) data = np.array([integerarray.array.flat[x] for x in seq]) return IndexSequence(list(seq), shape, data) if __name__ == '__main__': from pasc.objects.floatarray import FloatArray from pasc.modifier.mapper import RawBinary farr = FloatArray.from_data('pre', 'tas') # farr = FloatArray.from_numpy(np.arange(43, dtype=float)) farr = FloatArray.from_numpy(farr.array[::, ::, ::]) iarr = RawBinary.map(farr) startidx = 0 print(ChequerboardC.name, ChequerboardC.flatten(startidx, iarr).sequence) print(BlossomC.name, BlossomC.flatten(startidx, iarr).sequence) print(BlockC.name, BlockC.flatten(startidx, iarr).sequence) print(Linear.name, Linear.flatten(startidx, iarr).sequence) print(Blossom.name, Blossom.flatten(startidx, iarr).sequence) print(Block.name, Block.flatten(startidx, iarr).sequence) print(Chequerboard.name, Chequerboard.flatten(startidx, iarr).sequence)