code: def test_multi(self):
      multi_mod = Model(
          self.multi_fcn,
          meta=dict(
              name="Sample Multi-Response Model",
              ref="ODRPACK UG, pg. 56",
          ),
      )
  
      multi_x = np.array(
          [
              30.0,
              50.0,
              70.0,
              100.0,
              150.0,
              200.0,
              300.0,
              500.0,
              700.0,
              1000.0,
              1500.0,
              2000.0,
              3000.0,
              5000.0,
              7000.0,
              10000.0,
              15000.0,
              20000.0,
              30000.0,
              50000.0,
              70000.0,
              100000.0,
              150000.0,
          ]
      )
      multi_y = np.array(
          [
              [
                  4.22,
                  4.167,
                  4.132,
                  4.038,
                  4.019,
                  3.956,
                  3.884,
                  3.784,
                  3.713,
                  3.633,
                  3.54,
                  3.433,
                  3.358,
                  3.258,
                  3.193,
                  3.128,
                  3.059,
                  2.984,
                  2.934,
                  2.876,
                  2.838,
                  2.798,
                  2.759,
              ],
              [
                  0.136,
                  0.167,
                  0.188,
                  0.212,
                  0.236,
                  0.257,
                  0.276,
                  0.297,
                  0.309,
                  0.311,
                  0.314,
                  0.311,
                  0.305,
                  0.289,
                  0.277,
                  0.255,
                  0.24,
                  0.218,
                  0.202,
                  0.182,
                  0.168,
                  0.153,
                  0.139,
              ],
          ]
      )
      n = len(multi_x)
      multi_we = np.zeros((2, 2, n), dtype=float)
      multi_ifixx = np.ones(n, dtype=int)
      multi_delta = np.zeros(n, dtype=float)
  
      multi_we[0, 0, :] = 559.6
      multi_we[1, 0, :] = multi_we[0, 1, :] = -1634.0
      multi_we[1, 1, :] = 8397.0
  
      for i in range(n):
          if multi_x[i] < 100.0:
              multi_ifixx[i] = 0
          elif multi_x[i] <= 150.0:
              pass  # defaults are fine
          elif multi_x[i] <= 1000.0:
              multi_delta[i] = 25.0
          elif multi_x[i] <= 10000.0:
              multi_delta[i] = 560.0
          elif multi_x[i] <= 100000.0:
              multi_delta[i] = 9500.0
          else:
              multi_delta[i] = 144000.0
          if multi_x[i] == 100.0 or multi_x[i] == 150.0:
              multi_we[:, :, i] = 0.0
  
      multi_dat = Data(
          multi_x, multi_y, wd=1e-4 / np.power(multi_x, 2), we=multi_we
      )
      multi_odr = ODR(
          multi_dat,
          multi_mod,
          beta0=[4.0, 2.0, 7.0, 0.4, 0.5],
          delta0=multi_delta,
          ifixx=multi_ifixx,
      )
      multi_odr.set_job(deriv=1, del_init=1)
  
      out = multi_odr.run()
      assert_array_almost_equal(
          out.beta,
          np.array(
              [
                  4.3799880305938963,
                  2.4333057577497703,
                  8.0028845899503978,
                  0.5101147161764654,
                  0.5173902330489161,
              ]
          ),
      )
      assert_array_almost_equal(
          out.sd_beta,
          np.array(
              [
                  0.0130625231081944,
                  0.0130499785273277,
                  0.1167085962217757,
                  0.0132642749596149,
                  0.0288529201353984,
              ]
          ),
      )
      assert_array_almost_equal(
          out.cov_beta,
          np.array(
              [
                  [
                      0.0064918418231375,
                      0.0036159705923791,
                      0.0438637051470406,
                      -0.0058700836512467,
                      0.011281212888768,
                  ],
                  [
                      0.0036159705923791,
                      0.0064793789429006,
                      0.0517610978353126,
                      -0.0051181304940204,
                      0.0130726943624117,
                  ],
                  [
                      0.0438637051470406,
                      0.0517610978353126,
                      0.5182263323095322,
                      -0.0563083340093696,
                      0.1269490939468611,
                  ],
                  [
                      -0.0058700836512467,
                      -0.0051181304940204,
                      -0.0563083340093696,
                      0.0066939246261263,
                      -0.0140184391377962,
                  ],
                  [
                      0.011281212888768,
                      0.0130726943624117,
                      0.1269490939468611,
                      -0.0140184391377962,
                      0.0316733013820852,
                  ],
              ]
          ),
      )
  
imports: import tempfile
  import shutil
  import os
  import numpy
  from numpy import pi
  from numpy.testing import assert_array_almost_equal, assert_equal, assert_warns
  import pytest
  from pytest import raises
  from scipy.odr import Data, Model, ODR, RealData, OdrStop, OdrWarning, multilinear, exponential, unilinear, quadratic, polynomial
label_desc: Use image node_id 11 for calling the TestODR obj's underlying member method code with example usage: obj.test_multi() without return types