code: def test_multiplication():
      n = NT()
      s = ST()
      a = AT()
      p = PT()
      log_trans = LT()
      c1 = CT([s, a, p])
      assert c1
      c2 = CT([s, a, s])
  
      assert isinstance(n * n, NT)
      assert isinstance(n * s, ST)
      assert isinstance(s * s, ST)
      assert isinstance(a * s, AT)
      assert isinstance(a * a, AT)
      assert isinstance(s * a, AT)
      assert isinstance(n * p, PT)
      assert isinstance(s * p, CT)
      assert isinstance(a * p, CT)
      assert isinstance(p * a, CT)
      assert isinstance(p * s, CT)
      assert_chain_types(p * a, [PT, AT])
      assert_chain_types(p * s, [PT, ST])
      assert_chain_types(s * p, [ST, PT])
      assert_chain_types(s * p * a, [ST, PT, AT])
      assert_chain_types(s * a * p, [AT, PT])
      assert_chain_types(p * s * a, [PT, ST, AT])
      assert_chain_types(s * p * s, [ST, PT, ST])
      assert_chain_types(s * a * p * s * a, [AT, PT, ST, AT])
      assert_chain_types(c2 * a, [ST, AT, ST, AT])
      assert_chain_types(p * log_trans * s, [PT, LT, ST])
  
file_path: vispy/vispy/visuals/transforms/tests/test_transforms.py
imports: import numpy
  from numpy.testing import assert_allclose
  import pytest
  import vispy.visuals.transforms
  from vispy.geometry import Rect
  from vispy.testing import run_tests_if_main
label_desc: Use image node_id 3 for calling a global function with example usage: test_multiplication() without return types