code: def test_atomic():
      g, h = map(Function, "gh")
      x = symbols("x")
      assert _atomic(g(x + h(x))) == {g(x + h(x))}
      assert _atomic(g(x + h(x)), recursive=True) == {
          h(x),
          x,
          g(x + h(x)),
      }
      assert _atomic(1) == set()
      assert _atomic(Basic(S(1), S(2))) == set()
  
imports: import collections
  from typing import TypeVar, Generic
  from sympy.assumptions.ask import Q
  from sympy.core.basic import Basic, Atom, as_Basic, _atomic, _aresame
  from sympy.core.containers import Tuple
  from sympy.core.function import Function, Lambda
  from sympy.core.numbers import I, pi, Float
  from sympy.core.singleton import S
  from sympy.core.symbol import symbols, Symbol, Dummy
  from sympy.concrete.summations import Sum
  from sympy.functions.elementary.trigonometric import cos, sin
  from sympy.functions.special.gamma_functions import gamma
  from sympy.integrals.integrals import Integral
  from sympy.functions.elementary.exponential import exp
  from sympy.testing.pytest import raises, warns_deprecated_sympy
label_desc: Use image node_id 19 for calling a global function with example usage: test_atomic() without return types