def METHOD_NAME():
    class IsCachable(cirq.Operation):
        def __init__(self) -> None:
            super().__init__()
            self.num_calls = 0
            self._gate = cirq.X
        def _t_complexity_(self) -> cirq_ft.TComplexity:
            self.num_calls += 1
            return cirq_ft.TComplexity()
        @property
        def qubits(self):
            return [cirq.LineQubit(3)]  # pragma: no cover
        def with_qubits(self, _):
            ...
        @property
        def gate(self):
            return self._gate
    assert cirq_ft.t_complexity(cirq.X) == cirq_ft.TComplexity(clifford=1)
    # Using a global cache will result in a failure of this test since `cirq.X` has
    # `T-complexity(clifford=1)` but we explicitly return `cirq_ft.TComplexity()` for IsCachable
    # operation; for which the hash would be equivalent to the hash of it's subgate i.e. `cirq.X`.
    cirq_ft.t_complexity.cache_clear()
    op = IsCachable()
    assert cirq_ft.t_complexity([op, op]) == cirq_ft.TComplexity()
    assert op.num_calls == 1
    cirq_ft.t_complexity.cache_clear()