docstr: Test quantile logic when feaure value == quantile boundary.
docstr_tok: ["Test","quantile","logic","when","feaure","value","==","quantile","boundary","."]
code: def test_quantile_boundary_logic(self) -> None:
      """Test quantile logic when feaure value == quantile boundary."""
      input = torch.tensor([[0.0], [80.0], [100.0]])
      norm_params = NormalizationParameters(
          feature_type="QUANTILE",
          boxcox_lambda=None,
          boxcox_shift=None,
          mean=0,
          stddev=1,
          possible_values=None,
          quantiles=[0.0, 80.0, 100.0],
          min_value=0.0,
          max_value=100.0,
      )
      preprocessor = Preprocessor({1: norm_params}, False)
      output = preprocessor._preprocess_QUANTILE(
          0, input.float(), [norm_params]
      )
  
      expected_output = torch.tensor([[0.0], [0.5], [1.0]])
  
      self.assertTrue(np.all(np.isclose(output, expected_output)))
  
imports: import unittest
  import numpy
  import numpy.testing
  import six
  import torch
  from reagent.preprocessing import identify_types, normalization, transforms
  from reagent.preprocessing.identify_types import BOXCOX, CONTINUOUS, DO_NOT_PREPROCESS, ENUM
  from reagent.preprocessing.normalization import MISSING_VALUE, NormalizationParameters, sort_features_by_normalization
  from reagent.preprocessing.preprocessor import Preprocessor
  from reagent.test.base.utils import NumpyFeatureProcessor
  from reagent.test.preprocessing.preprocessing_util import BOXCOX_FEATURE_ID, CONTINUOUS_FEATURE_ID, CONTINUOUS_SMALL_FEATURE_ID, ENUM_FEATURE_ID, id_to_type, PROBABILITY_FEATURE_ID, read_data
  from scipy import special
label_desc: Use image node_id 5 for calling the TestPreprocessing obj's underlying member method code with example usage: obj.test_quantile_boundary_logic() without return types