code: def test_cbva001_callback_dep_types():
      app = Dash(__name__)
      app.layout = html.Div(
          [
              html.Div("child", id="in1"),
              html.Div("state", id="state1"),
              html.Div(id="out1"),
              html.Div("child", id="in2"),
              html.Div("state", id="state2"),
              html.Div(id="out2"),
              html.Div("child", id="in3"),
              html.Div("state", id="state3"),
              html.Div(id="out3"),
          ]
      )
  
      with pytest.raises(IncorrectTypeException) as err:
  
          @app.callback(
              Input("in1", "children"), Output("out1", "children")
          )
          def f2(i):
              return i
  
          pytest.fail("out-of-order args")
  
      assert (
          "Outputs first,\nthen all Inputs, then all States."
          in err.value.args[0]
      )
      assert "<Input `in1.children`>" in err.value.args[0]
      assert "<Output `out1.children`>" in err.value.args[0]
  
      # all OK with tuples
      @app.callback(
          (Output("out1", "children"),),
          (Input("in1", "children"),),
          (State("state1", "children"),),
      )
      def f1(i):
          return i
  
      # all OK with all args in single list
      @app.callback(
          Output("out2", "children"),
          Input("in2", "children"),
          State("state2", "children"),
      )
      def f3(i):
          return i
  
      # all OK with lists
      @app.callback(
          [Output("out3", "children")],
          [Input("in3", "children")],
          [State("state3", "children")],
      )
      def f4(i):
          return i
  
file_path: dash/tests/integration/callbacks/test_validation.py
imports: import pytest
  from dash import Dash, Input, Output, State, html
  from dash.exceptions import InvalidCallbackReturnValue, IncorrectTypeException
label_desc: Use image node_id 1 for calling a global function with example usage: test_cbva001_callback_dep_types() and returns: i, i, i, i