code: def test_1d_0P():
      global inf
      f = KalmanFilter(dim_x=2, dim_z=1)
      inf = InformationFilter(dim_x=2, dim_z=1)
  
      f.x = np.array(
          [[2.0], [0.0]]
      )  # initial state (location and velocity)
  
      f.F = np.array(
          [[1.0, 1.0], [0.0, 1.0]]
      )  # state transition matrix
  
      f.H = np.array([[1.0, 0.0]])  # Measurement function
      f.R = np.array([[5.0]])  # state uncertainty
      f.Q = np.eye(2) * 0.0001  # process uncertainty
      f.P = np.diag([20.0, 20.0])
  
      inf.x = f.x.copy()
      inf.F = f.F.copy()
      inf.H = np.array([[1.0, 0.0]])  # Measurement function
      inf.R_inv *= 1.0 / 5  # state uncertainty
      inf.Q = np.eye(2) * 0.0001
      inf.P_inv = 0.000000000000000000001
      # inf.P_inv = inv(f.P)
  
      m = []
      r = []
      r2 = []
  
      zs = []
      for t in range(50):
          # create measurement = t plus white noise
          z = t + random.randn() * np.sqrt(5)
          zs.append(z)
  
          # perform kalman filtering
          f.predict()
          f.update(z)
  
          inf.predict()
          inf.update(z)
  
          try:
              print(t, inf.P)
          except:
              pass
  
          # save data
          r.append(f.x[0, 0])
          r2.append(inf.x[0, 0])
          m.append(z)
  
      # assert np.allclose(f.x, inf.x), f'{t}: {f.x.T} {inf.x.T}'
  
      if DO_PLOT:
          plt.plot(m)
          plt.plot(r)
          plt.plot(r2)
  
file_path: filterpy/filterpy/kalman/tests/test_information.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import numpy.random
  import numpy
  import matplotlib.pyplot
  from filterpy.common import Saver
  from filterpy.kalman import KalmanFilter, InformationFilter
label_desc: Use image node_id 1 for calling a global function with example usage: test_1d_0P() without return types