code: def test_given_categorical_data_when_calling_has_linear_relationship_then_returns_correct_results():
      X1 = np.random.normal(0, 1, 1000)
      X2 = np.random.normal(0, 1, 1000)
  
      assert has_linear_relationship(
          np.column_stack([X1, X2]), (X1 + X2 > 0).astype(str)
      )
      assert not has_linear_relationship(
          np.column_stack([X1, X2]), (X1 * X2 > 0).astype(str)
      )
  
imports: import networkx
  import numpy
  import pandas
  import pytest
  from _pytest.python_api import approx
  from flaky import flaky
  from pytest import mark
  from sklearn.ensemble import HistGradientBoostingClassifier, HistGradientBoostingRegressor
  from sklearn.linear_model import ElasticNetCV, LassoCV, LinearRegression, LogisticRegression, RidgeCV
  from sklearn.naive_bayes import GaussianNB
  from sklearn.pipeline import Pipeline
  from dowhy.gcm import AdditiveNoiseModel, DiscreteAdditiveNoiseModel, EmpiricalDistribution, ProbabilisticCausalModel, StructuralCausalModel, draw_samples, fit
  from dowhy.gcm.auto import AssignmentQuality, assign_causal_mechanisms, has_linear_relationship
label_desc: Use image node_id 21 for calling a global function with example usage: test_given_categorical_data_when_calling_has_linear_relationship_then_returns_correct_results() without return types