code: def test_distribute():
      class T1(Basic):
          pass
  
      class T2(Basic):
          pass
  
      distribute_t12 = distribute(T1, T2)
      assert distribute_t12(T1(S(1), S(2), T2(S(3), S(4)), S(5))) == T2(
          T1(S(1), S(2), S(3), S(5)), T1(S(1), S(2), S(4), S(5))
      )
      assert distribute_t12(T1(S(1), S(2), S(3))) == T1(
          S(1), S(2), S(3)
      )
  
file_path: sympy/sympy/strategies/tests/test_rl.py
imports: from sympy.core.singleton import S
  from sympy.strategies.rl import rm_id, glom, flatten, unpack, sort, distribute, subs, rebuild
  from sympy.core.basic import Basic
  from sympy.core.add import Add
  from sympy.core.mul import Mul
  from sympy.core.symbol import symbols
  from sympy.abc import x
label_desc: Use image node_id 6 for calling a global function with example usage: test_distribute() without return types