code: def test_inf(self):
      x = pd.Series(np.linspace(-3, 3, 10))
      num_NINF = 20
      x = pd.concat([x, pd.Series([np.NINF] * num_NINF)])
      num_inf = 10
      x = pd.concat([x, pd.Series([np.inf] * num_inf)])
  
      primitive_instance = CountOutsideRange(-3, 3)
      primitive_func = primitive_instance.get_function()
      assert primitive_func(x) == num_inf + num_NINF
  
      primitive_instance = CountOutsideRange(-0.34, 1.68)
      primitive_func = primitive_instance.get_function()
      assert primitive_func(x) == 6 + num_inf + num_NINF
  
      primitive_instance = CountOutsideRange(np.NINF, 3)
      primitive_func = primitive_instance.get_function()
      assert primitive_func(x) == num_inf
  
      primitive_instance = CountOutsideRange(-3, np.inf)
      primitive_func = primitive_instance.get_function()
      assert primitive_func(x) == num_NINF
  
imports: import numpy
  import pandas
  from pytest import raises
  from featuretools.primitives import CountAboveMean, CountGreaterThan, CountInsideNthSTD, CountInsideRange, CountLessThan, CountOutsideNthSTD, CountOutsideRange
  from featuretools.tests.primitive_tests.utils import PrimitiveTestBase
label_desc: Use image node_id 4 for calling the TestCountOutsideRange obj's underlying member method code with example usage: obj.test_inf() without return types