code: def test_fullrank(self):
      import warnings
  
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          X = standard_normal((40, 10))
          X[:, 0] = X[:, 1] + X[:, 2]
  
          Y = tools.fullrank(X)
          assert_equal(Y.shape, (40, 9))
  
          X[:, 5] = X[:, 3] + X[:, 4]
          Y = tools.fullrank(X)
          assert_equal(Y.shape, (40, 8))
          warnings.simplefilter("ignore")
  
imports: from statsmodels.compat.pandas import assert_frame_equal, assert_series_equal
  from statsmodels.compat.python import lrange
  import string
  import numpy
  from numpy.random import standard_normal
  from numpy.testing import assert_almost_equal, assert_array_equal, assert_equal, assert_string_equal
  import pandas
  import pytest
  from statsmodels.datasets import longley
  from statsmodels.tools import tools
  from statsmodels.tools.tools import pinv_extended
label_desc: Use image node_id 12 for calling the TestTools obj's underlying member method code with example usage: obj.test_fullrank() without return types