code: def test_basic_state():
      i, j, n, m = symbols("i,j,n,m")
      s = BosonState([0, 1, 2, 3, 4])
      assert len(s) == 5
      assert s.args[0] == tuple(range(5))
      assert s.up(0) == BosonState([1, 1, 2, 3, 4])
      assert s.down(4) == BosonState([0, 1, 2, 3, 3])
      for i in range(5):
          assert s.up(i).down(i) == s
      assert s.down(0) == 0
      for i in range(5):
          assert s[i] == i
      s = BosonState([n, m])
      assert s.down(0) == BosonState([n - 1, m])
      assert s.up(0) == BosonState([n + 1, m])
  
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 7 for calling a global function with example usage: test_basic_state() without return types