code: def test_spec_pattern(  # noqa: D
      dunder_naming_scheme: DunderNamingScheme,
      specs: Sequence[LinkableInstanceSpec],
  ) -> None:
      assert tuple(
          dunder_naming_scheme.spec_pattern(
              "listing__user__country"
          ).match(specs)
      ) == (
          DimensionSpec(
              element_name="country",
              entity_links=(
                  EntityReference(element_name="listing"),
                  EntityReference(element_name="user"),
              ),
          ),
      )
  
      assert tuple(
          dunder_naming_scheme.spec_pattern("metric_time").match(specs)
      ) == (
          MTD_SPEC_WEEK,
          MTD_SPEC_MONTH,
          MTD_SPEC_YEAR,
      )
  
      assert tuple(
          dunder_naming_scheme.spec_pattern(
              "booking__listing__user"
          ).match(specs)
      ) == (
          EntitySpec(
              element_name="user",
              entity_links=(
                  EntityReference(element_name="booking"),
                  EntityReference(element_name="listing"),
              ),
          ),
      )
  
      assert tuple(
          dunder_naming_scheme.spec_pattern("metric_time__month").match(
              specs
          )
      ) == (MTD_SPEC_MONTH,)
  
file_path: metricflow/metricflow/test/naming/test_dunder_naming_scheme.py
imports: from __future__ import annotations
  from typing import Sequence
  import pytest
  from dbt_semantic_interfaces.references import EntityReference
  from dbt_semantic_interfaces.type_enums import TimeGranularity
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from metricflow.naming.dunder_scheme import DunderNamingScheme
  from metricflow.specs.specs import DimensionSpec, EntitySpec, LinkableInstanceSpec, TimeDimensionSpec
  from metricflow.test.time.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
label_desc: Use image node_id 4 for calling a global function with example usage: test_spec_pattern(dunder_naming_scheme, specs) without return types