code: def test_log_operations(self, environment):
      # given
      session = Session(api_token=environment.user_token)
      project = session.get_project(
          project_qualified_name=environment.project
      )
      experiment = project.create_experiment()
  
      # when
      experiment.log_metric("m1", 1)
      experiment.log_metric("m1", 2)
      experiment.log_metric("m1", 3)
      experiment.log_metric("m1", 2)
      experiment.log_metric("nested/m1", 1)
  
      # and
      experiment.log_text("m2", "a")
      experiment.log_text("m2", "b")
      experiment.log_text("m2", "c")
  
      # and
      with tmp_context():
          filename = fake.file_name(extension="png")
  
          tmp = numpy.random.rand(100, 100, 3) * 255
          im = Image.fromarray(tmp.astype("uint8")).convert("RGBA")
          im.save(filename)
  
          experiment.log_image(
              "g_img", filename, image_name="name", description="desc"
          )
          experiment.log_image("g_img", filename)
  
      # then
      logs = experiment.get_logs()
      assert "m1" in logs
      assert "m2" in logs
      assert "nested/m1" in logs
      assert "g_img" in logs
  
file_path: neptune-client/tests/e2e/standard/test_legacy_client.py
imports: from datetime import datetime
  import numpy
  from PIL import Image
  from neptune.legacy import Session
  from tests.e2e.base import fake
  from tests.e2e.utils import tmp_context
label_desc: Use image node_id 4 for calling the TestLegacyClient obj's underlying member method code with example usage: obj.test_log_operations(environment) without return types