class_docstr: Base class for missing values in supervised learning.
class_docstr_tok: ["Base","class","for","missing","values","in","supervised","learning","."]
docstr: Test extract missing value
docstr_tok: ["Test","extract","missing","value"]
code: def test_extract_features(self):
      """
      Test extract missing value
      """
      if self.model is None:
          return
  
      if not hasattr(self.model, "extract_features"):
          return
  
      model = self.model
      test_sf = self.test_sf.copy()
  
      # Should pass
      pred = model.extract_features(
          test_sf, missing_value_action="auto"
      )
      pred = model.extract_features(
          test_sf, missing_value_action="impute"
      )
      pred = model.extract_features(
          test_sf, missing_value_action="error"
      )
  
      # Missing value in each column
      # -------------------------------
      for col in ["int", "float", "dict", "array", "str"]:
          test_sf_with_na = self.fill_with_na(test_sf, col)
          pred_missing = model.extract_features(test_sf_with_na)
  
      for col in ["int", "float", "array"]:
          test_sf_with_na = self.fill_with_na(test_sf, col)
          self.assertRaises(
              ToolkitError,
              lambda: model.extract_features(
                  test_sf_with_na, missing_value_action="error"
              ),
          )
  
      # Missing entire columns
      # ----------------------------------
      for col in ["int", "float", "dict", "array", "str"]:
          del test_sf[col]
          pred = model.extract_features(test_sf)
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  import turicreate
  import array
  from turicreate.toolkits._main import ToolkitError
label_desc: Use image node_id 8 for calling the SupervisedLearningMissingValueTest obj's underlying member method code with example usage: obj.test_extract_features() without return types