code: def test_get_full_model_name():
      SimpleCheckpoint = namedtuple("SimpleCheckpoint", ["dirpath"])
      test_input_data = [
          (
              "key",
              os.path.join("foo", "bar", "key.ext"),
              SimpleCheckpoint(dirpath=os.path.join("foo", "bar")),
          ),
          (
              "key/in/parts",
              os.path.join("foo", "bar", "key/in/parts.ext"),
              SimpleCheckpoint(dirpath=os.path.join("foo", "bar")),
          ),
          (
              "key",
              os.path.join("../foo", "bar", "key.ext"),
              SimpleCheckpoint(dirpath=os.path.join("../foo", "bar")),
          ),
          (
              "key",
              os.path.join("foo", "key.ext"),
              SimpleCheckpoint(
                  dirpath=os.path.join("./foo", "bar/../")
              ),
          ),
      ]
  
      for (
          expected_model_name,
          model_path,
          checkpoint,
      ) in test_input_data:
          assert (
              NeptuneLogger._get_full_model_name(model_path, checkpoint)
              == expected_model_name
          )
  
imports: import os
  import pickle
  from collections import namedtuple
  from unittest import mock
  from unittest.mock import MagicMock, call
  import lightning.pytorch
  import pytest
  import torch
  from lightning.pytorch import Trainer
  from lightning.pytorch.demos.boring_classes import BoringModel
  from lightning.pytorch.loggers import NeptuneLogger
label_desc: Use image node_id 17 for calling a global function with example usage: test_get_full_model_name() without return types