code: def test_input_str(
      dunder_naming_scheme: DunderNamingScheme,
  ) -> None:  # noqa: D
      assert (
          dunder_naming_scheme.input_str(
              DimensionSpec(
                  element_name="country",
                  entity_links=(
                      EntityReference(element_name="booking"),
                      EntityReference(element_name="listing"),
                  ),
              )
          )
          == "booking__listing__country"
      )
  
      assert (
          dunder_naming_scheme.input_str(
              TimeDimensionSpec(
                  element_name="creation_time",
                  entity_links=(
                      EntityReference(element_name="booking"),
                      EntityReference(element_name="listing"),
                  ),
                  time_granularity=TimeGranularity.MONTH,
                  date_part=DatePart.DAY,
              )
          )
          is None
      )
  
      assert (
          dunder_naming_scheme.input_str(
              TimeDimensionSpec(
                  element_name="creation_time",
                  entity_links=(
                      EntityReference(element_name="booking"),
                      EntityReference(element_name="listing"),
                  ),
                  time_granularity=TimeGranularity.MONTH,
              )
          )
          == "booking__listing__creation_time__month"
      )
  
      assert (
          dunder_naming_scheme.input_str(
              EntitySpec(
                  element_name="user",
                  entity_links=(
                      EntityReference(element_name="booking"),
                      EntityReference(element_name="listing"),
                  ),
              )
          )
          == "booking__listing__user"
      )
  
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 2 for calling a global function with example usage: test_input_str(dunder_naming_scheme) without return types