code: def test_case_when_1():
      """Test case_when function."""
      df = pd.DataFrame(
          {
              "a": [0, 0, 1, 2, "hi"],
              "b": [0, 3, 4, 5, "bye"],
              "c": [6, 7, 8, 9, "wait"],
          }
      )
      expected = pd.DataFrame(
          {
              "a": [0, 0, 1, 2, "hi"],
              "b": [0, 3, 4, 5, "bye"],
              "c": [6, 7, 8, 9, "wait"],
              "value": ["x", 0, 8, 9, "hi"],
          }
      )
      result = df.case_when(
          ((df.a == 0) & (df.b != 0)) | (df.c == "wait"),
          df.a,
          (df.b == 0) & (df.a == 0),
          "x",
          default=df.c,
          column_name="value",
      )
  
      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 1 for calling a global function with example usage: test_case_when_1() without return types