code: def test_when_calling_setdiff2d_then_returns_expected_arrays():
      assert setdiff2d(
          np.array([[1, 2], [1, 4], [1, 2], [2, 3]]),
          np.array([[1, 4], [2, 3], [2, 4]]),
      ) == approx(np.array([[1, 2]]))
      assert setdiff2d(
          np.array([[1, 2], [1, 4], [1, 2], [2, 3]]),
          np.array([[1, 4], [2, 3], [2, 4]]),
          assume_unique=True,
      ) == approx(np.array([[1, 2], [1, 2]]))
      assert setdiff2d(
          np.array([[1, 4], [2, 3], [2, 4]]),
          np.array([[1, 2], [1, 4], [1, 2], [2, 3]]),
      ) == approx(np.array([[2, 4]]))
      assert setdiff2d(
          np.array([[1, 2], [1, 4], [1, 2], [2, 3]]),
          np.array([[1, 3], [2, 5], [2, 4]]),
      ) == approx(np.array([[1, 2], [1, 4], [2, 3]]))
      assert setdiff2d(
          np.array([[1, 2], [1, 4], [1, 2], [2, 3]]),
          np.array([[1, 3], [2, 5], [2, 4]]),
          assume_unique=True,
      ) == approx(np.array([[1, 2], [1, 4], [1, 2], [2, 3]]))
  
imports: import random
  import networkx
  import numpy
  import pandas
  import pytest
  from _pytest.python_api import approx
  from dowhy import gcm
  from dowhy.gcm.util.general import apply_catboost_encoding, apply_one_hot_encoding, auto_apply_encoders, auto_fit_encoders, fit_catboost_encoders, fit_one_hot_encoders, has_categorical, is_categorical, is_discrete, set_random_seed, setdiff2d, shape_into_2d
label_desc: Use image node_id 9 for calling a global function with example usage: test_when_calling_setdiff2d_then_returns_expected_arrays() without return types