code: def run_then_assert(
      self, container: MetadataContainer, series_type: str
  ):
      steps = sorted(random.sample(range(1, 100), 5))
      timestamps = [
          1675876469.0,
          1675876470.0,
          1675876471.0,
          1675876472.0,
          1675876473.0,
      ]
      key = self.gen_key()
  
      if series_type == "floats":
          # given
          values = list(random.random() for _ in range(5))
  
          # when
          yield container[key], values, steps, timestamps
          container.sync()
  
          # then
          assert container[key].fetch_last() == values[-1]
          assert list(container[key].fetch_values()["value"]) == values
          assert list(container[key].fetch_values()["step"]) == steps
          assert (
              list(
                  map(
                      lambda t: time.mktime(t.utctimetuple()),
                      container[key].fetch_values()["timestamp"],
                  )
              )
              == timestamps
          )
  
      elif series_type == "strings":
          # given
          values = list(fake.word() for _ in range(5))
  
          # when
          yield container[key], values, steps, timestamps
  
          container.sync()
  
          # then
          assert container[key].fetch_last() == values[-1]
          assert list(container[key].fetch_values()["value"]) == values
          assert list(container[key].fetch_values()["step"]) == steps
          assert (
              list(
                  map(
                      lambda t: time.mktime(t.utctimetuple()),
                      container[key].fetch_values()["timestamp"],
                  )
              )
              == timestamps
          )
  
      elif series_type == "files":
          # given
          images = list(
              generate_image(size=2**n) for n in range(7, 12)
          )
  
          # when
          yield container[key], images, steps, timestamps
  
          container.sync()
  
          # then
          with tmp_context():
              container[key].download_last("last")
              container[key].download("all")
  
              with Image.open("last/4.png") as img:
                  assert img == image_to_png(image=images[-1])
  
              for i in range(5):
                  with Image.open(f"all/{i}.png") as img:
                      assert img == image_to_png(image=images[i])
  
file_path: neptune-client/tests/e2e/standard/test_series.py
imports: import random
  import time
  from contextlib import contextmanager
  import pytest
  from PIL import Image
  from neptune.metadata_containers import MetadataContainer
  from neptune.types import FileSeries, FloatSeries, StringSeries
  from tests.e2e.base import AVAILABLE_CONTAINERS, BaseE2ETest, fake
  from tests.e2e.utils import generate_image, image_to_png, tmp_context
label_desc: Use image node_id 7 for calling the TestSeries obj's underlying member method code with example usage: obj.run_then_assert(container, series_type) without return types