code: def test_freeimage_format(setup_library, test_images, tmp_path):
      fnamebase = str(tmp_path / "test")
  
      # Format
      F = iio.formats["PNG-FI"]
      assert F.name == "PNG-FI"
  
      # Reader
      R = F.get_reader(core.Request(test_images / "chelsea.png", "ri"))
      assert len(R) == 1
      assert isinstance(R.get_meta_data(), dict)
      assert isinstance(R.get_meta_data(0), dict)
      raises(IndexError, R.get_data, 2)
      raises(IndexError, R.get_meta_data, 2)
  
      # Writer
      W = F.get_writer(core.Request(fnamebase + ".png", "wi"))
      W.append_data(im0)
      W.set_meta_data({"foo": 3})
      raises(RuntimeError, W.append_data, im0)
  
imports: import os
  import shutil
  import sys
  import platform
  import warnings
  import fsspec
  import imageio.plugins
  import imageio.v3
  import imageio.v2
  import numpy
  import pytest
  from imageio import core
  from imageio.core import IS_PYPY
  from pytest import raises
  from conftest import deprecated_test
label_desc: Use image node_id 8 for calling a global function with example usage: test_freeimage_format(setup_library, test_images, tmp_path) without return types