code: def test_do_one():
      rl = do_one(posdec, posdec)
      assert rl(5) == 4
  
      def rl1(x: int) -> int:
          if x == 1:
              return 2
          return x
  
      def rl2(x: int) -> int:
          if x == 2:
              return 3
          return x
  
      rule = do_one(rl1, rl2)
      assert rule(1) == 2
      assert rule(rule(1)) == 3
  
file_path: sympy/sympy/strategies/tests/test_core.py
imports: from __future__ import annotations
  from sympy.core.singleton import S
  from sympy.core.basic import Basic
  from sympy.strategies.core import null_safe, exhaust, memoize, condition, chain, tryit, do_one, debug, switch, minimize
  from io import StringIO
label_desc: Use image node_id 10 for calling a global function with example usage: test_do_one() and returns: x, x, int, int