code: def test_between_expr(
      default_expr_renderer: DefaultSqlExpressionRenderer,
  ) -> None:  # noqa: D
      actual = default_expr_renderer.render_sql_expr(
          SqlBetweenExpression(
              column_arg=SqlColumnReferenceExpression(
                  SqlColumnReference("a", "col0")
              ),
              start_expr=SqlCastToTimestampExpression(
                  arg=SqlStringLiteralExpression(
                      literal_value="2020-01-01",
                  )
              ),
              end_expr=SqlCastToTimestampExpression(
                  arg=SqlStringLiteralExpression(
                      literal_value="2020-01-10",
                  )
              ),
          )
      ).sql
      assert (
          actual
          == "a.col0 BETWEEN CAST('2020-01-01' AS TIMESTAMP) AND CAST('2020-01-10' AS TIMESTAMP)"
      )
  
imports: from __future__ import annotations
  import logging
  import textwrap
  import pytest
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
  from metricflow.sql.render.expr_renderer import DefaultSqlExpressionRenderer
  from metricflow.sql.sql_exprs import SqlAggregateFunctionExpression, SqlBetweenExpression, SqlCastToTimestampExpression, SqlColumnReference, SqlColumnReferenceExpression, SqlColumnReplacements, SqlComparison, SqlComparisonExpression, SqlDateTruncExpression, SqlExtractExpression, SqlFunction, SqlIsNullExpression, SqlLogicalExpression, SqlLogicalOperator, SqlNullExpression, SqlRatioComputationExpression, SqlStringExpression, SqlStringLiteralExpression, SqlWindowFunction, SqlWindowFunctionExpression, SqlWindowOrderByArgument
label_desc: Use image node_id 18 for calling a global function with example usage: test_between_expr(default_expr_renderer) without return types