code: def test_fully_contracted():
      i, j, k, l = symbols("i j k l", below_fermi=True)
      a, b, c, d = symbols("a b c d", above_fermi=True)
      p, q, r, s = symbols("p q r s", cls=Dummy)
  
      Fock = AntiSymmetricTensor("f", (p,), (q,)) * NO(Fd(p) * F(q))
      V = (
          AntiSymmetricTensor("v", (p, q), (r, s))
          * NO(Fd(p) * Fd(q) * F(s) * F(r))
      ) / 4
  
      Fai = wicks(
          NO(Fd(i) * F(a)) * Fock,
          keep_only_fully_contracted=True,
          simplify_kronecker_deltas=True,
      )
      assert Fai == AntiSymmetricTensor("f", (a,), (i,))
      Vabij = wicks(
          NO(Fd(i) * Fd(j) * F(b) * F(a)) * V,
          keep_only_fully_contracted=True,
          simplify_kronecker_deltas=True,
      )
      assert Vabij == AntiSymmetricTensor("v", (a, b), (i, j))
  
imports: from sympy.physics.secondquant import Dagger, Bd, VarBosonicBasis, BBra, B, BKet, FixedBosonicBasis, matrix_rep, apply_operators, InnerProduct, Commutator, KroneckerDelta, AnnihilateBoson, CreateBoson, BosonicOperator, F, Fd, FKet, BosonState, CreateFermion, AnnihilateFermion, evaluate_deltas, AntiSymmetricTensor, contraction, NO, wicks, PermutationOperator, simplify_index_permutations, _sort_anticommuting_fermions, _get_ordered_dummies, substitute_dummies, FockStateBosonKet, ContractionAppliesOnlyToFermions
  from sympy.concrete.summations import Sum
  from sympy.core.function import Function, expand
  from sympy.core.numbers import I, Rational
  from sympy.core.singleton import S
  from sympy.core.symbol import Dummy, Symbol, symbols
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.printing.repr import srepr
  from sympy.simplify.simplify import simplify
  from sympy.testing.pytest import slow, raises
  from sympy.printing.latex import latex
label_desc: Use image node_id 27 for calling a global function with example usage: test_fully_contracted() without return types