code: def test_linear_momentum():
      N = ReferenceFrame("N")
      Ac = Point("Ac")
      Ac.set_vel(N, 25 * N.y)
      I = outer(N.x, N.x)
      A = RigidBody("A", Ac, N, 20, (I, Ac))
      P = Point("P")
      Pa = Particle("Pa", P, 1)
      Pa.point.set_vel(N, 10 * N.x)
      raises(TypeError, lambda: linear_momentum(A, A, Pa))
      raises(TypeError, lambda: linear_momentum(N, N, Pa))
      assert linear_momentum(N, A, Pa) == 10 * N.x + 500 * N.y
  
file_path: sympy/sympy/physics/mechanics/tests/test_functions.py
imports: from sympy import sin, cos, tan, pi, symbols, Matrix, S, Function
  from sympy.physics.mechanics import Particle, Point, ReferenceFrame, RigidBody
  from sympy.physics.mechanics import angular_momentum, dynamicsymbols, kinetic_energy, linear_momentum, outer, potential_energy, msubs, find_dynamicsymbols, Lagrangian
  from sympy.physics.mechanics.functions import center_of_mass, _validate_coordinates, _parse_linear_solver
  from sympy.testing.pytest import raises, warns_deprecated_sympy
label_desc: Use image node_id 1 for calling a global function with example usage: test_linear_momentum() without return types