def test_geometric_transform(): def transform(output_coordinates, shift): return output_coordinates[0] - shift, output_coordinates[1] - shift im = np.arange(12).reshape(4, 3).astype(np.float64) shift = 0.5 for mod in MODULES: res = ndimage.geometric_transform(im, _ctest.transform(shift)) std = ndimage.geometric_transform(im, transform, extra_arguments=(shift,)) assert_allclose(res, std, err_msg="{} failed".format(mod.__name__))
lambda filter_size: LowLevelCallable.from_cython( _cytest, "_filter1d", _cytest.filter1d_capsule(filter_size)), ] FILTER2D_FUNCTIONS = [ lambda weights: _ctest.filter2d(weights), lambda weights: _ctest_oldapi.filter2d(weights), lambda weights: _cytest.filter2d(weights, with_signature=False), lambda weights: LowLevelCallable( _cytest.filter2d(weights, with_signature=True)), lambda weights: LowLevelCallable.from_cython( _cytest, "_filter2d", _cytest.filter2d_capsule(weights)), ] TRANSFORM_FUNCTIONS = [ lambda shift: _ctest.transform(shift), lambda shift: _ctest_oldapi.transform(shift), lambda shift: _cytest.transform(shift, with_signature=False), lambda shift: LowLevelCallable( _cytest.transform(shift, with_signature=True)), lambda shift: LowLevelCallable.from_cython( _cytest, "_transform", _cytest.transform_capsule(shift)), ] def test_generic_filter(): def filter2d(footprint_elements, weights): return (weights * footprint_elements).sum() def check(j): func = FILTER2D_FUNCTIONS[j]
lambda filter_size: _cytest.filter1d(filter_size, with_signature=False), lambda filter_size: LowLevelCallable(_cytest.filter1d(filter_size, with_signature=True)), lambda filter_size: LowLevelCallable.from_cython(_cytest, "_filter1d", _cytest.filter1d_capsule(filter_size)), ] FILTER2D_FUNCTIONS = [ lambda weights: _ctest.filter2d(weights), lambda weights: _ctest_oldapi.filter2d(weights), lambda weights: _cytest.filter2d(weights, with_signature=False), lambda weights: LowLevelCallable(_cytest.filter2d(weights, with_signature=True)), lambda weights: LowLevelCallable.from_cython(_cytest, "_filter2d", _cytest.filter2d_capsule(weights)), ] TRANSFORM_FUNCTIONS = [ lambda shift: _ctest.transform(shift), lambda shift: _ctest_oldapi.transform(shift), lambda shift: _cytest.transform(shift, with_signature=False), lambda shift: LowLevelCallable(_cytest.transform(shift, with_signature=True)), lambda shift: LowLevelCallable.from_cython(_cytest, "_transform", _cytest.transform_capsule(shift)), ] def test_generic_filter(): def filter2d(footprint_elements, weights): return (weights*footprint_elements).sum() def check(j): func = FILTER2D_FUNCTIONS[j] im = np.ones((20, 20))