code: def test_2d_array():
      """test using 2 independent variables for the
      state variable.
      """
  
      f = GHFilter(array([0, 1]), array([0, 0]), 1, 0.8, 0.2)
      f0 = GHFilter(0, 0, 1, 0.8, 0.2)
      f1 = GHFilter(1, 0, 1, 0.8, 0.2)
  
      # test using scalar in update (not normal, but possible)
      for i in range(1, 10):
          f.update(i)
          f0.update(i)
          f1.update(i)
  
          assert f.x[0] == f0.x
          assert f.x[1] == f1.x
  
          assert f.dx[0] == f0.dx
          assert f.dx[1] == f1.dx
  
      # test using array for update (typical scenario)
      f = GHFilter(array([0, 1]), array([0, 0]), 1, 0.8, 0.2)
      f0 = GHFilter(0, 0, 1, 0.8, 0.2)
      f1 = GHFilter(1, 0, 1, 0.8, 0.2)
  
      for i in range(1, 10):
          f.update(array([i, i + 3]))
          f0.update(i)
          f1.update(i + 3)
  
          assert f.x[0] == f0.x
          assert f.x[1] == f1.x
  
          assert f.dx[0] == f0.dx
          assert f.dx[1] == f1.dx
  
          assert f.VRF() == f0.VRF()
          assert f.VRF() == f1.VRF()
  
file_path: filterpy/filterpy/gh/tests/test_gh.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  from filterpy.common import Saver
  from filterpy.gh import GHFilter, GHKFilter, least_squares_parameters, optimal_noise_smoothing, GHFilterOrder
  from numpy import array
  from numpy.random import randn
  import matplotlib.pyplot
label_desc: Use image node_id 3 for calling a global function with example usage: test_2d_array() without return types