def METHOD_NAME():
    """testing various ways of annotation: multiple outputs, using a tuple for output annot."""
    def direct(a: int) -> (int, float):
        return a + 2, a + 2.0
    @annotate({"return": (int, float)})
    def partial(a: int):
        return a + 2, a + 2.0
    @annotate({"a": int, "return": (int, float)})
    def indirect(a):
        return a + 2, a + 2.0
    # checking if the annotations are equivalent
    assert direct.__annotations__ == partial.__annotations__
    assert direct.__annotations__ == indirect.__annotations__
    # Run functions to ensure behavior is unaffected
    a = random.randint(0, (1 << 32) - 3)
    assert direct(a) == partial(a)
    assert direct(a) == indirect(a)
    # checking if the annotation is properly converted to output_spec if used in task
    task_direct = task(direct)()
    assert task_direct.output_spec.fields == [("out1", int), ("out2", float)]