code: def test_shuffle_columns():
      """Checks that learn_many works identically whether columns are shuffled or not."""
  
      X = pd.read_csv(datasets.TrumpApproval().path)
      Y = X.pop("five_thirty_eight")
  
      normal = lm.LinearRegression()
      for xb, yb in zip(np.array_split(X, 10), np.array_split(Y, 10)):
          normal.learn_many(xb, yb)
  
      shuffled = lm.LinearRegression()
      for xb, yb in zip(np.array_split(X, 10), np.array_split(Y, 10)):
          cols = np.random.permutation(X.columns)
          shuffled.learn_many(xb[cols], yb)
  
      for i in X:
          assert math.isclose(normal.weights[i], shuffled.weights[i])
  
imports: from __future__ import annotations
  import copy
  import itertools
  import math
  import random
  import numpy
  import pandas
  import pytest
  from sklearn import linear_model
  from sklearn.datasets import make_classification, make_regression
  from sklearn.metrics import log_loss
  from river import datasets, optim, preprocessing, stream, utils
  from river import linear_model
label_desc: Use image node_id 4 for calling a global function with example usage: test_shuffle_columns() without return types