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 test_smoke_sproot(self):
      # sproot is only implemented for k=3
      a, b = 0.1, 15
      x = np.linspace(a, b, 20)
      v = np.sin(x)
  
      for k in [1, 2, 4, 5]:
          tck = splrep(x, v, s=0, per=0, k=k, xe=b)
          with assert_raises(ValueError):
              sproot(tck)
  
      k = 3
      tck = splrep(x, v, s=0, k=3)
      roots = sproot(tck)
      assert_allclose(splev(roots, tck), 0, atol=1e-10, rtol=1e-10)
      assert_allclose(roots, np.pi * np.array([1, 2, 3, 4]), rtol=1e-3)
  
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 7 for calling the TestSmokeTests obj's underlying member method code with example usage: obj.test_smoke_sproot() without return types