Exemple #1
0
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)
Exemple #2
0
    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)