code: def test_columns_info():
      num_fe = np.random.rand(600)
      cat_fe = np.random.randint(5, size=600)
      date = range(1635693229, 1635693829)
      index = range(600)
      data = {
          "index": index,
          "date": date,
          "a": cat_fe,
          "b": num_fe,
          "c": num_fe,
          "label": cat_fe,
      }
      df = pd.DataFrame.from_dict(data)
  
      dataset = Dataset(
          df,
          label="label",
          datetime_name="date",
          index_name="index",
          features=["a", "b"],
      )
      # Arrange
      check = ColumnsInfo()
      # Act
      result_ds, result_df = (
          check.run(dataset).value,
          check.run(df).value,
      )
      # Assert
      expected_res_ds = {
          "index": "index",
          "date": "date",
          "a": "categorical feature",
          "b": "numerical feature",
          "c": "other",
          "label": "label",
      }
      assert_that(result_ds, equal_to(expected_res_ds))
  
      expected_res_df = {
          "index": "numerical feature",
          "date": "numerical feature",
          "a": "categorical feature",
          "b": "numerical feature",
          "c": "numerical feature",
          "label": "categorical feature",
      }
      # in df all columns are other
      assert_that(result_df, equal_to(expected_res_df))
  
file_path: deepchecks/tests/tabular/checks/integrity/columns_info_test.py
imports: import numpy
  import pandas
  from hamcrest import assert_that, calling, equal_to, has_length, raises
  from deepchecks.core.errors import DeepchecksValueError
  from deepchecks.tabular.checks.data_integrity import ColumnsInfo
  from deepchecks.tabular.dataset import Dataset
label_desc: Use image node_id 2 for calling a global function with example usage: test_columns_info() without return types