code: def test_states():
      assert PIABKet(n).dual_class() == PIABBra
      assert PIABKet(n).hilbert_space == L2(
          Interval(S.NegativeInfinity, S.Infinity)
      )
      assert represent(PIABKet(n)) == sqrt(2 / L) * sin(n * pi * x / L)
      assert (PIABBra(i) * PIABKet(j)).doit() == KroneckerDelta(i, j)
      assert PIABBra(n).dual_class() == PIABKet
  
file_path: sympy/sympy/physics/quantum/tests/test_piab.py
imports: from sympy.core.numbers import pi
  from sympy.core.singleton import S
  from sympy.core.symbol import symbols
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.functions.elementary.trigonometric import sin
  from sympy.sets.sets import Interval
  from sympy.functions.special.tensor_functions import KroneckerDelta
  from sympy.physics.quantum import L2, qapply, hbar, represent
  from sympy.physics.quantum.piab import PIABHamiltonian, PIABKet, PIABBra, m, L
label_desc: Use image node_id 2 for calling a global function with example usage: test_states() without return types