code: def testSolve3D():
      p1 = np.array(
          [[0, 0, 0, 1], [1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 1]],
          dtype=float,
      )
  
      # transform points through random matrix
      tr = np.random.normal(size=(4, 4))
      tr[3] = (0, 0, 0, 1)
      p2 = np.dot(tr, p1.T).T[:, :3]
  
      # solve to see if we can recover the transformation matrix.
      tr2 = pg.solve3DTransform(p1, p2)
  
      assert_array_almost_equal(tr[:3], tr2[:3])
  
imports: from collections import OrderedDict
  from copy import deepcopy
  import numpy
  import pytest
  from numpy.testing import assert_array_almost_equal
  import pyqtgraph
  from pyqtgraph.functions import arrayToQPath, eq
  from pyqtgraph.Qt import QtGui
label_desc: Use image node_id 1 for calling a global function with example usage: testSolve3D() without return types