code: def test_parse_filename(self):
      # check format detection
      self.check_filename("test.ipynb", "test.ipynb", "test", "json")
      self.check_filename("test.json", "test.json", "test", "json")
      self.check_filename("test.py", "test.py", "test", "py")
  
      # check parsing an unknown format
      self.check_filename("test.nb", "test.nb.ipynb", "test.nb", "json")
  
      # check parsing a full file path
      abs_path = os.path.abspath("test.ipynb")
      basename, ext = os.path.splitext(abs_path)
      self.check_filename(abs_path, abs_path, basename, "json")
  
      # check parsing a file name containing dots
      self.check_filename(
          "test.nb.ipynb", "test.nb.ipynb", "test.nb", "json"
      )
  
file_path: nbformat/tests/v3/test_misc.py
imports: from __future__ import annotations
  import os
  from unittest import TestCase
  from nbformat.v3 import parse_filename
label_desc: Use image node_id 2 for calling the MiscTests obj's underlying member method code with example usage: obj.test_parse_filename() without return types