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_1(
      self,
      per=0,
      s=0,
      a=0,
      b=2 * np.pi,
      at_nodes=False,
      xb=None,
      xe=None,
  ):
      if xb is None:
          xb = a
      if xe is None:
          xe = b
  
      N = 20
      # nodes and middle points of the nodes
      x = np.linspace(a, b, N + 1)
      x1 = a + (b - a) * np.arange(1, N, dtype=float) / float(N - 1)
      v = f1(x)
  
      def err_est(k, d):
          # Assume f has all derivatives < 1
          h = 1.0 / N
          tol = 5 * h ** (0.75 * (k - d))
          if s > 0:
              tol += 1e5 * s
          return tol
  
      for k in range(1, 6):
          tck = splrep(x, v, s=s, per=per, k=k, xe=xe)
          tt = tck[0][k:-k] if at_nodes else x1
  
          for d in range(k + 1):
              tol = err_est(k, d)
              err = norm2(f1(tt, d) - splev(tt, tck, d)) / norm2(
                  f1(tt, d)
              )
              assert err < tol
  
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 1 for calling the TestSmokeTests obj's underlying member method code with example usage: obj.check_1(per, s, a, b, at_nodes, xb, xe) and returns: tol