code: def test_save_properties():
      global f, s
  
      class Foo(object):
          aa = 3
  
          def __init__(self):
              self.x = 7.0
              self.a = None
  
          @property
          def ll(self):
              self.a = Foo.aa
              Foo.aa += 1
              return self.a
  
      f = Foo()
      assert f.a is None
      s = Saver(f)
      s.save()  # try to trigger property writing to Foo.a
  
      assert s.a[0] == f.a
      assert s.ll[0] == f.a
      assert f.a == 3
  
      s.save()
      assert s.a[1] == f.a
      assert s.ll[1] == f.a
      assert f.a == 4
  
file_path: filterpy/filterpy/common/tests/test_helpers.py
imports: from filterpy.common import kinematic_kf, Saver, inv_diagonal, outer_product_sum
  import numpy
  from filterpy.kalman import MerweScaledSigmaPoints, UnscentedKalmanFilter, ExtendedKalmanFilter
label_desc: Use image node_id 6 for calling a global function with example usage: test_save_properties() and returns: self