code: def test_get_variables_and_point_fn(simple_model):
      ip = simple_model.initial_point()
      variables, point_fn = get_variables_and_point_fn(simple_model, ip)
      assert isinstance(variables, list)
      assert callable(point_fn)
      vdict = {v.name: v for v in variables}
      assert set(vdict) == {
          "integer",
          "scalar",
          "vector",
          "vector_interval__",
          "matrix",
      }
      point = point_fn(ip)
      assert len(point) == len(variables)
      for v, p in zip(variables, point):
          assert str(p.dtype) == v.dtype
  
imports: import logging
  import arviz
  import numpy
  import pytest
  import pymc
  from pymc.backends import init_traces
  from pymc.step_methods.arraystep import ArrayStepShared
  from pymc.backends.mcbackend import ChainRecordAdapter, find_data, get_variables_and_point_fn, make_runmeta_and_point_fn
label_desc: Use image node_id 4 for calling a global function with example usage: test_get_variables_and_point_fn(simple_model) without return types