code: def test_spec_pattern(  # noqa: D
      object_builder_naming_scheme: ObjectBuilderNamingScheme,
      specs: Sequence[LinkableInstanceSpec],
  ) -> None:
      assert tuple(
          object_builder_naming_scheme.spec_pattern(
              "Dimension('listing__country', entity_path=['booking'])"
          ).match(specs)
      ) == (
          DimensionSpec(
              element_name="country",
              entity_links=(
                  EntityReference(element_name="booking"),
                  EntityReference(element_name="listing"),
              ),
          ),
      )
  
      assert tuple(
          object_builder_naming_scheme.spec_pattern(
              "TimeDimension('listing__creation_time', time_granularity_name='month', date_part_name='day', "
              "entity_path=['booking'])"
          ).match(specs)
      ) == (
          TimeDimensionSpec(
              element_name="creation_time",
              entity_links=(
                  EntityReference("booking"),
                  EntityReference("listing"),
              ),
              time_granularity=TimeGranularity.MONTH,
              date_part=DatePart.DAY,
          ),
      )
  
      assert tuple(
          object_builder_naming_scheme.spec_pattern(
              "TimeDimension('metric_time')"
          ).match(specs)
      ) == (
          MTD_SPEC_WEEK,
          MTD_SPEC_MONTH,
          MTD_SPEC_YEAR,
      )
  
      assert tuple(
          object_builder_naming_scheme.spec_pattern(
              "Entity('user', entity_path=['booking', 'listing'])"
          ).match(specs)
      ) == (
          EntitySpec(
              element_name="user",
              entity_links=(
                  EntityReference(element_name="booking"),
                  EntityReference(element_name="listing"),
              ),
          ),
      )
  
file_path: metricflow/metricflow/test/naming/test_object_builder_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.object_builder_scheme import ObjectBuilderNamingScheme
  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(object_builder_naming_scheme, specs) without return types