code: def test_join_expressions():
      assert Join(
          values=[
              "foo",
              ParameterFloat(name="MyFloat"),
              ParameterInteger(name="MyInt"),
              ParameterString(name="MyStr"),
              Properties(step_name="foo", path="OutputPath.S3Uri"),
              ExecutionVariables.PIPELINE_EXECUTION_ID,
              Join(on=",", values=[1, "a", False, 1.1]),
          ]
      ).expr == {
          "Std:Join": {
              "On": "",
              "Values": [
                  "foo",
                  {"Get": "Parameters.MyFloat"},
                  {"Get": "Parameters.MyInt"},
                  {"Get": "Parameters.MyStr"},
                  {"Get": "Steps.foo.OutputPath.S3Uri"},
                  {"Get": "Execution.PipelineExecutionId"},
                  {
                      "Std:Join": {
                          "On": ",",
                          "Values": [1, "a", False, 1.1],
                      }
                  },
              ],
          },
      }
  
file_path: sagemaker-python-sdk/tests/unit/sagemaker/workflow/test_functions.py
imports: from __future__ import absolute_import
  import pytest
  from sagemaker.workflow.execution_variables import ExecutionVariables
  from sagemaker.workflow.functions import Join, JsonGet
  from sagemaker.workflow.parameters import ParameterFloat, ParameterInteger, ParameterString
  from sagemaker.workflow.properties import Properties, PropertyFile
label_desc: Use image node_id 3 for calling a global function with example usage: test_join_expressions() without return types