code: def test_explicit_coords(self, seeded_test):
      N_rows = 5
      N_cols = 7
      data = np.random.uniform(size=(N_rows, N_cols))
      coords = {
          "rows": [f"R{r+1}" for r in range(N_rows)],
          "columns": [f"C{c+1}" for c in range(N_cols)],
      }
      # pass coordinates explicitly, use numpy array in Data container
      with pm.Model(coords=coords) as pmodel:
          # Dims created from coords are constant by default
          assert isinstance(
              pmodel.dim_lengths["rows"], pt.TensorConstant
          )
          assert isinstance(
              pmodel.dim_lengths["columns"], pt.TensorConstant
          )
          pm.MutableData("observations", data, dims=("rows", "columns"))
          # new data with same (!) shape
          pm.set_data({"observations": data + 1})
          # new data with same (!) shape and coords
          pm.set_data({"observations": data}, coords=coords)
      assert "rows" in pmodel.coords
      assert pmodel.coords["rows"] == ("R1", "R2", "R3", "R4", "R5")
      assert "rows" in pmodel.dim_lengths
      assert pmodel.dim_lengths["rows"].eval() == 5
      assert "columns" in pmodel.coords
      assert pmodel.coords["columns"] == (
          "C1",
          "C2",
          "C3",
          "C4",
          "C5",
          "C6",
          "C7",
      )
      assert pmodel.named_vars_to_dims == {
          "observations": ("rows", "columns")
      }
      assert "columns" in pmodel.dim_lengths
      assert pmodel.dim_lengths["columns"].eval() == 7
  
imports: import io
  import itertools
  import re
  import cloudpickle
  import numpy
  import pytensor
  import pytensor.tensor
  import pytest
  from pytensor import shared
  from pytensor.tensor.variable import TensorVariable
  import pymc
  from pymc.data import is_minibatch
  from pymc.pytensorf import GeneratorOp, floatX
label_desc: Use image node_id 12 for calling the TestData obj's underlying member method code with example usage: obj.test_explicit_coords(seeded_test) without return types