code: def test_options(self):
      rfile = os.path.join(rpath, "test_lowess_simple.csv")
      test_data = np.genfromtxt(
          open(rfile, "rb"), delimiter=",", names=True
      )
      y, x = test_data["y"], test_data["x"]
      res1_fitted = test_data["out"]
      expected_lowess = np.array([test_data["x"], test_data["out"]]).T
  
      # check skip sorting
      actual_lowess1 = lowess(y, x, is_sorted=True)
      assert_almost_equal(actual_lowess1, expected_lowess, decimal=13)
  
      # check skip sorting - DataFrame
      df = pd.DataFrame({"y": y, "x": x})
      actual_lowess1 = lowess(df["y"], df["x"], is_sorted=True)
      assert_almost_equal(actual_lowess1, expected_lowess, decimal=13)
  
      # check skip missing
      actual_lowess = lowess(y, x, is_sorted=True, missing="none")
      assert_almost_equal(actual_lowess, actual_lowess1, decimal=13)
  
      # check order/index, returns yfitted only
      actual_lowess = lowess(y[::-1], x[::-1], return_sorted=False)
      assert_almost_equal(
          actual_lowess, actual_lowess1[::-1, 1], decimal=13
      )
  
      # check returns yfitted only
      actual_lowess = lowess(
          y, x, return_sorted=False, missing="none", is_sorted=True
      )
      assert_almost_equal(
          actual_lowess, actual_lowess1[:, 1], decimal=13
      )
  
      # check integer input
      actual_lowess = lowess(np.round(y).astype(int), x, is_sorted=True)
      actual_lowess1 = lowess(np.round(y), x, is_sorted=True)
      assert_almost_equal(actual_lowess, actual_lowess1, decimal=13)
      assert_(actual_lowess.dtype is np.dtype(float))
      # this will also have duplicate x
      actual_lowess = lowess(y, np.round(x).astype(int), is_sorted=True)
      actual_lowess1 = lowess(y, np.round(x), is_sorted=True)
      assert_almost_equal(actual_lowess, actual_lowess1, decimal=13)
      assert_(actual_lowess.dtype is np.dtype(float))
  
      # Test specifying xvals explicitly
      perm_idx = np.arange(len(x) // 2)
      np.random.shuffle(perm_idx)
      actual_lowess2 = lowess(
          y, x, xvals=x[perm_idx], return_sorted=False
      )
      assert_almost_equal(
          actual_lowess[perm_idx, 1], actual_lowess2, decimal=13
      )
  
      # check with nans,  this changes the arrays
      y[[5, 6]] = np.nan
      x[3] = np.nan
      mask_valid = np.isfinite(x) & np.isfinite(y)
      # actual_lowess1[[3, 5, 6], 1] = np.nan
      actual_lowess = lowess(y, x, is_sorted=True)
      actual_lowess1 = lowess(
          y[mask_valid], x[mask_valid], is_sorted=True
      )
      assert_almost_equal(actual_lowess, actual_lowess1, decimal=13)
      assert_raises(ValueError, lowess, y, x, missing="raise")
  
      perm_idx = np.arange(len(x))
      np.random.shuffle(perm_idx)
      yperm = y[perm_idx]
      xperm = x[perm_idx]
      actual_lowess2 = lowess(yperm, xperm, is_sorted=False)
      assert_almost_equal(actual_lowess, actual_lowess2, decimal=13)
  
      actual_lowess3 = lowess(
          yperm, xperm, is_sorted=False, return_sorted=False
      )
      mask_valid = np.isfinite(xperm) & np.isfinite(yperm)
      assert_equal(np.isnan(actual_lowess3), ~mask_valid)
      # get valid sorted smoothed y from actual_lowess3
      sort_idx = np.argsort(xperm)
      yhat = actual_lowess3[sort_idx]
      yhat = yhat[np.isfinite(yhat)]
      assert_almost_equal(yhat, actual_lowess2[:, 1], decimal=13)
  
      # Test specifying xvals explicitly, now with nans
      perm_idx = np.arange(actual_lowess.shape[0])
      actual_lowess4 = lowess(
          y, x, xvals=actual_lowess[perm_idx, 0], return_sorted=False
      )
      assert_almost_equal(
          actual_lowess[perm_idx, 1], actual_lowess4, decimal=13
      )
  
imports: import os
  import numpy
  from numpy.testing import assert_, assert_allclose, assert_almost_equal, assert_equal, assert_raises
  import pytest
  from statsmodels.nonparametric.smoothers_lowess import lowess
  import pandas
label_desc: Use image node_id 13 for calling the TestLowess obj's underlying member method code with example usage: obj.test_options() without return types