code: def test_case_when_multiple_args(df):
      """Test case_when for multiple arguments."""
      result = df.case_when(
          df.a < 10,
          "baby",
          df.a.between(10, 20, "left"),
          "kid",
          lambda df: df.a.between(20, 30, "left"),
          "young",
          "30 <= a < 50",
          "mature",
          default="grandpa",
          column_name="elderly",
      )
      conditions = [
          df["a"] < 10,
          (df["a"] >= 10) & (df["a"] < 20),
          (df["a"] >= 20) & (df["a"] < 30),
          (df["a"] >= 30) & (df["a"] < 50),
      ]
      choices = ["baby", "kid", "young", "mature"]
      expected = np.select(conditions, choices, "grandpa")
      expected = df.assign(elderly=expected)
      assert_frame_equal(result, expected)
  
imports: import numpy
  import pandas
  import pytest
  from hypothesis import given, settings
  from pandas.testing import assert_frame_equal
  from janitor.testing_utils.strategies import categoricaldf_strategy, df_strategy
label_desc: Use image node_id 15 for calling a global function with example usage: test_case_when_multiple_args(df) without return types