code: def test_torsion_Beam3D():
      x = symbols("x")
      b = Beam3D(20, 40, 21, 100, 25)
      b.apply_moment_load(15, 5, -2, dir="x")
      b.apply_moment_load(25, 10, -2, dir="x")
      b.apply_moment_load(-5, 20, -2, dir="x")
      b.solve_for_torsion()
      assert b.angular_deflection().subs(x, 3) == sympify("1/40")
      assert b.angular_deflection().subs(x, 9) == sympify("17/280")
      assert b.angular_deflection().subs(x, 12) == sympify("53/840")
      assert b.angular_deflection().subs(x, 17) == sympify("2/35")
      assert b.angular_deflection().subs(x, 20) == sympify("3/56")
  
imports: from sympy.core.function import expand
  from sympy.core.numbers import Rational, pi
  from sympy.core.singleton import S
  from sympy.core.symbol import Symbol, symbols
  from sympy.sets.sets import Interval
  from sympy.simplify.simplify import simplify
  from sympy.physics.continuum_mechanics.beam import Beam
  from sympy.functions import SingularityFunction, Piecewise, meijerg, Abs, log
  from sympy.testing.pytest import raises
  from sympy.physics.units import meter, newton, kilo, giga, milli
  from sympy.physics.continuum_mechanics.beam import Beam3D
  from sympy.geometry import Circle, Polygon, Point2D, Triangle
  from sympy.core.sympify import sympify
label_desc: Use image node_id 20 for calling a global function with example usage: test_torsion_Beam3D() without return types