class_docstr: Smoke tests (with a few asserts) for fitpack routines -- mostly
  check that they are runnable
class_docstr_tok: ["Smoke","tests","(","with","a","few","asserts",")","for","fitpack","routines","--","mostly","check","that","they","are","runnable"]
code: def check_2(self, per=0, N=20, ia=0, ib=2 * np.pi):
      a, b, dx = 0, 2 * np.pi, 0.2 * np.pi
      x = np.linspace(a, b, N + 1)  # nodes
      v = np.sin(x)
  
      def err_est(k, d):
          # Assume f has all derivatives < 1
          h = 1.0 / N
          tol = 5 * h ** (0.75 * (k - d))
          return tol
  
      nk = []
      for k in range(1, 6):
          tck = splrep(x, v, s=0, per=per, k=k, xe=b)
          nk.append([splint(ia, ib, tck), spalde(dx, tck)])
  
      k = 1
      for r in nk:
          d = 0
          for dr in r[1]:
              tol = err_est(k, d)
              assert_allclose(dr, f1(dx, d), atol=0, rtol=tol)
              d = d + 1
          k = k + 1
  
imports: import itertools
  import os
  import numpy
  from numpy.testing import assert_equal, assert_allclose, assert_, assert_almost_equal, assert_array_almost_equal
  from pytest import raises
  import pytest
  from scipy._lib._testutils import check_free_memory
  from scipy.interpolate import RectBivariateSpline
  from scipy.interpolate._fitpack_py import splrep, splev, bisplrep, bisplev, sproot, splprep, splint, spalde, splder, splantider, insert, dblint
  from scipy.interpolate.dfitpack import regrid_smth
  from scipy.interpolate._fitpack2 import dfitpack_int
label_desc: Use image node_id 2 for calling the TestSmokeTests obj's underlying member method code with example usage: obj.check_2(per, N, ia, ib) and returns: tol