code: def test_PythonRational__mul__():
      assert QQ(-1, 2) * QQ(1, 2) == QQ(-1, 4)
      assert QQ(1, 2) * QQ(-1, 2) == QQ(-1, 4)
  
      assert QQ(1, 2) * QQ(1, 2) == QQ(1, 4)
      assert QQ(1, 2) * QQ(3, 2) == QQ(3, 4)
      assert QQ(3, 2) * QQ(1, 2) == QQ(3, 4)
      assert QQ(3, 2) * QQ(3, 2) == QQ(9, 4)
  
      assert 2 * QQ(1, 2) == QQ(1)
      assert QQ(1, 2) * 2 == QQ(1)
  
file_path: sympy/sympy/polys/tests/test_pythonrational.py
imports: from sympy.polys.domains import PythonRational
  from sympy.testing.pytest import raises
label_desc: Use image node_id 10 for calling a global function with example usage: test_PythonRational__mul__() without return types