code: def test_mul():
      a, b = [0, 2, 1, 3], [0, 1, 3, 2]
      assert _af_rmul(a, b) == [0, 2, 3, 1]
      assert _af_rmuln(a, b, list(range(4))) == [0, 2, 3, 1]
      assert rmul(Permutation(a), Permutation(b)).array_form == [
          0,
          2,
          3,
          1,
      ]
  
      a = Permutation([0, 2, 1, 3])
      b = (0, 1, 3, 2)
      c = (3, 1, 2, 0)
      assert Permutation.rmul(a, b, c) == Permutation([1, 2, 3, 0])
      assert Permutation.rmul(a, c) == Permutation([3, 2, 1, 0])
      raises(TypeError, lambda: Permutation.rmul(b, c))
  
      n = 6
      m = 8
      a = [Permutation.unrank_nonlex(n, i).array_form for i in range(m)]
      h = list(range(n))
      for i in range(m):
          h = _af_rmul(h, a[i])
          h2 = _af_rmuln(*a[: i + 1])
          assert h == h2
  
imports: from itertools import permutations
  from copy import copy
  from sympy.core.expr import unchanged
  from sympy.core.numbers import Integer
  from sympy.core.relational import Eq
  from sympy.core.symbol import Symbol
  from sympy.core.singleton import S
  from sympy.combinatorics.permutations import Permutation, _af_parity, _af_rmul, _af_rmuln, AppliedPermutation, Cycle
  from sympy.printing import sstr, srepr, pretty, latex
  from sympy.testing.pytest import raises, warns_deprecated_sympy
label_desc: Use image node_id 5 for calling a global function with example usage: test_mul() without return types