code: def test_statistics_expose(manager: SpillManager):
      assert len(manager.statistics.spill_totals) == 0
  
      buffers: List[SpillableBuffer] = [
          as_buffer(data=rmm.DeviceBuffer(size=10), exposed=False)
          for _ in range(10)
      ]
  
      # Expose the first buffer
      buffers[0].mark_exposed()
      assert len(manager.statistics.exposes) == 1
      stat = list(manager.statistics.exposes.values())[0]
      assert stat.count == 1
      assert stat.total_nbytes == buffers[0].nbytes
      assert stat.spilled_nbytes == 0
  
      # Expose all 10 buffers
      for i in range(10):
          buffers[i].mark_exposed()
  
      # The rest of the ptr accesses should accumulate to a single stat
      # because they resolve to the same traceback.
      assert len(manager.statistics.exposes) == 2
      stat = list(manager.statistics.exposes.values())[1]
      assert stat.count == 9
      assert stat.total_nbytes == buffers[0].nbytes * 9
      assert stat.spilled_nbytes == 0
  
      # Create and spill 10 new buffers
      buffers: List[SpillableBuffer] = [
          as_buffer(data=rmm.DeviceBuffer(size=10), exposed=False)
          for _ in range(10)
      ]
  
      manager.spill_to_device_limit(0)
  
      # Expose the new buffers and check that they are counted as spilled
      for i in range(10):
          buffers[i].mark_exposed()
      assert len(manager.statistics.exposes) == 3
      stat = list(manager.statistics.exposes.values())[2]
      assert stat.count == 10
      assert stat.total_nbytes == buffers[0].nbytes * 10
      assert stat.spilled_nbytes == buffers[0].nbytes * 10
  
imports: import importlib
  import random
  import time
  import warnings
  import weakref
  from concurrent.futures import ThreadPoolExecutor
  from typing import List, Tuple
  import cupy
  import numpy
  import pandas
  import pandas.testing
  import pytest
  import rmm
  import cudf
  import cudf.core.buffer.spill_manager
  import cudf.options
  from cudf.core.abc import Serializable
  from cudf.core.buffer import Buffer, acquire_spill_lock, as_buffer, get_spill_lock
  from cudf.core.buffer.spill_manager import SpillManager, get_global_manager, get_rmm_memory_resource_stack, set_global_manager
  from cudf.core.buffer.spillable_buffer import SpillableBuffer, SpillableBufferOwner, SpillLock
  from cudf.testing._utils import assert_eq
label_desc: Use image node_id 33 for calling a global function with example usage: test_statistics_expose(manager) without return types