def add_tests(test_cls): """Add tests for LinearOperator methods.""" test_name_dict = { "add_to_tensor": _test_add_to_tensor, "cholesky": _test_cholesky, "cond": _test_cond, "composite_tensor": _test_composite_tensor, "det": _test_det, "diag_part": _test_diag_part, "eigvalsh": _test_eigvalsh, "inverse": _test_inverse, "log_abs_det": _test_log_abs_det, "matmul": _test_matmul, "matmul_with_broadcast": _test_matmul_with_broadcast, "saved_model": _test_saved_model, "solve": _test_solve, "solve_with_broadcast": _test_solve_with_broadcast, "to_dense": _test_to_dense, "trace": _test_trace, } tests_with_adjoint_args = [ "matmul", "matmul_with_broadcast", "solve", "solve_with_broadcast", ] for name, test_template_fn in test_name_dict.items(): if name in test_cls.skip_these_tests(): continue for dtype, use_placeholder, shape_info in itertools.product( test_cls.dtypes_to_test(), test_cls.use_placeholder_options(), test_cls.operator_shapes_infos()): base_test_name = "_".join([ "test", name, "_shape={},dtype={},use_placeholder={}".format( shape_info.shape, dtype, use_placeholder)]) if name in tests_with_adjoint_args: for adjoint in test_cls.adjoint_options(): for adjoint_arg in test_cls.adjoint_arg_options(): test_name = base_test_name + ",adjoint={},adjoint_arg={}".format( adjoint, adjoint_arg) if hasattr(test_cls, test_name): raise RuntimeError("Test %s defined more than once" % test_name) setattr( test_cls, test_name, test_util.run_deprecated_v1( test_template_fn( # pylint: disable=too-many-function-args use_placeholder, shape_info, dtype, adjoint, adjoint_arg, test_cls.use_blockwise_arg()))) else: if hasattr(test_cls, base_test_name): raise RuntimeError("Test %s defined more than once" % base_test_name) setattr( test_cls, base_test_name, test_util.run_deprecated_v1(test_template_fn( use_placeholder, shape_info, dtype)))
def add_tests(test_cls): """Add tests for LinearOperator methods.""" test_name_dict = { "add_to_tensor": _test_add_to_tensor, "cholesky": _test_cholesky, "det": _test_det, "diag_part": _test_diag_part, "inverse": _test_inverse, "log_abs_det": _test_log_abs_det, "matmul": _test_matmul, "matmul_with_broadcast": _test_matmul_with_broadcast, "solve": _test_solve, "solve_with_broadcast": _test_solve_with_broadcast, "to_dense": _test_to_dense, "trace": _test_trace, } tests_with_adjoint_args = [ "matmul", "matmul_with_broadcast", "solve", "solve_with_broadcast", ] for name, test_template_fn in test_name_dict.items(): if name in test_cls.tests_to_skip(): continue for dtype, use_placeholder, shape_info in itertools.product( test_cls.dtypes_to_test(), test_cls.use_placeholder_options(), test_cls.operator_shapes_infos()): base_test_name = "_".join([ "test", name, "_shape={},dtype={},use_placeholder={}".format( shape_info.shape, dtype, use_placeholder)]) if name in tests_with_adjoint_args: for adjoint in test_cls.adjoint_options(): for adjoint_arg in test_cls.adjoint_arg_options(): test_name = base_test_name + ",adjoint={},adjoint_arg={}".format( adjoint, adjoint_arg) if hasattr(test_cls, test_name): raise RuntimeError("Test %s defined more than once" % test_name) setattr( test_cls, test_name, test_util.run_deprecated_v1(test_template_fn( use_placeholder, shape_info, dtype, adjoint, adjoint_arg))) else: if hasattr(test_cls, base_test_name): raise RuntimeError("Test %s defined more than once" % base_test_name) setattr( test_cls, base_test_name, test_util.run_deprecated_v1(test_template_fn( use_placeholder, shape_info, dtype)))