code: def test_run_trace_dtype_and_last_value(self):
      run = Run()
      run.track(1.0, name="metric 1", context={})
      run.track(2.0, name="metric 1", context={})
      run.track(3.0, name="metric 1", context={})
      run.track(1.0, name="metric 1", context={"subset": "train"})
  
      meta_container_path = os.path.join(
          self.repo.path, "meta", "chunks", run.hash
      )
      rc = RocksContainer(meta_container_path, read_only=True)
      tree = ContainerTreeView(rc)
      metric_1_dict = tree.view(
          (
              "meta",
              "chunks",
              run.hash,
              "traces",
              Context({}).idx,
              "metric 1",
          )
      ).collect()
      self.assertEqual(3.0, metric_1_dict["last"])
      self.assertEqual("float", metric_1_dict["dtype"])
  
      metric_1_dict = tree.view(
          (
              "meta",
              "chunks",
              run.hash,
              "traces",
              Context({"subset": "train"}).idx,
              "metric 1",
          )
      ).collect()
      self.assertEqual(1.0, metric_1_dict["last"])
  
file_path: aim/tests/sdk/test_run_write_container_data.py
imports: import os
  from tests.base import TestBase
  from aim.sdk import Run
  from aim.storage.context import Context
  from aim.storage.containertreeview import ContainerTreeView
  from aim.storage.rockscontainer import RocksContainer
  from aim.storage.hashing import hash_auto
label_desc: Use image node_id 3 for calling the TestRunContainerData obj's underlying member method code with example usage: obj.test_run_trace_dtype_and_last_value() without return types