code: def test_get_function_schema_pydantic() -> None:
      def currency_calculator(
          base: Annotated[
              Currency, "Base currency: amount and currency symbol"
          ],
          quote_currency: Annotated[
              CurrencySymbol, "Quote currency symbol (default: 'EUR')"
          ] = "EUR",
      ) -> Currency:
          pass
  
      expected = {
          "type": "function",
          "function": {
              "description": "Currency exchange calculator.",
              "name": "currency_calculator",
              "parameters": {
                  "type": "object",
                  "properties": {
                      "base": {
                          "properties": {
                              "currency": {
                                  "description": "Currency code",
                                  "enum": ["USD", "EUR"],
                                  "title": "Currency",
                                  "type": "string",
                              },
                              "amount": {
                                  "default": 100.0,
                                  "description": "Amount of money in the currency",
                                  "title": "Amount",
                                  "type": "number",
                              },
                          },
                          "required": ["currency"],
                          "title": "Currency",
                          "type": "object",
                          "description": "Base currency: amount and currency symbol",
                      },
                      "quote_currency": {
                          "enum": ["USD", "EUR"],
                          "type": "string",
                          "default": "EUR",
                          "description": "Quote currency symbol (default: 'EUR')",
                      },
                  },
                  "required": ["base"],
              },
          },
      }
  
      actual = get_function_schema(
          currency_calculator,
          description="Currency exchange calculator.",
          name="currency_calculator",
      )
  
      assert actual == expected, actual
  
imports: import asyncio
  import inspect
  import unittest.mock
  from typing import Dict, List, Literal, Optional, Tuple
  import pytest
  from pydantic import BaseModel, Field
  from typing_extensions import Annotated
  from autogen._pydantic import PYDANTIC_V1, model_dump
  from autogen.function_utils import get_default_values, get_function_schema, get_load_param_if_needed_function, get_missing_annotations, get_param_annotations, get_parameter_json_schema, get_parameters, get_required_params, get_typed_annotation, get_typed_return_annotation, get_typed_signature, load_basemodels_if_needed, serialize_to_str
label_desc: Use image node_id 16 for calling a global function with example usage: test_get_function_schema_pydantic() without return types