def METHOD_NAME(self):
    class Child(torch.autograd.Function):
        @staticmethod
        def forward(ctx, i):
            result = i.log()
            result_log = result.log()
            ctx.save_for_backward(result_log)
            return result_log
        @staticmethod
        def backward(ctx, grad_output):
            (result,) = ctx.saved_tensors
            return grad_output * result
    class Parent(torch.autograd.Function):
        @staticmethod
        def forward(ctx, i):
            result_exp = i.exp()
            result_log = Child.apply(result_exp)
            ctx.save_for_backward(result_exp, result_log)
            return result_exp, result_log
        @staticmethod
        def backward(ctx, grad_output):
            (result,) = ctx.saved_tensors
            return grad_output * result
    class Caller(torch.nn.Module):
        def forward(self, input):
            return Parent.apply(input)
    model = Caller()
    input = torch.ones(1, 5)
    run_model_test(self, model, input_args=(input,))