code: def test_bisect_percentil_op_large(
      self,
      N: int,
      lengths_in: List[int],
      max_value: int,
      discrete: bool,
      p: float,
      gc,
      dc,
  ):
      lengths = np.array(lengths_in, dtype=np.int32)
      D = len(lengths)
  
      if discrete:
          raw_data = np.random.randint(0, max_value, size=(N, D))
      else:
          raw_data = np.random.randn(N, D)
  
      # To generate valid pct_lower and pct_upper
      pct_lower = []
      pct_upper = []
      pct_raw_data = []
      for i in range(D):
          pct_lower_val = 0.0
          pct_upper_val = 0.0
          pct_lower_cur = []
          pct_upper_cur = []
          # There is no duplicated values in pct_raw_data
          if discrete:
              pct_raw_data_cur = np.random.choice(
                  np.arange(max_value), size=lengths[i], replace=False
              )
          else:
              pct_raw_data_cur = np.random.randn(lengths[i])
              while len(set(pct_raw_data_cur)) < lengths[i]:
                  pct_raw_data_cur = np.random.randn(lengths[i])
          pct_raw_data_cur = np.sort(pct_raw_data_cur)
          for _ in range(lengths[i]):
              pct_lower_val = pct_upper_val + 0.01
              pct_lower_cur.append(pct_lower_val)
              pct_upper_val = pct_lower_val + 0.01 * np.random.randint(
                  1, 20
              ) * (np.random.uniform() < p)
              pct_upper_cur.append(pct_upper_val)
          # normalization
          pct_lower_cur = (
              np.array(pct_lower_cur, np.float32) / pct_upper_val
          )
          pct_upper_cur = (
              np.array(pct_upper_cur, np.float32) / pct_upper_val
          )
          pct_lower.extend(pct_lower_cur)
          pct_upper.extend(pct_upper_cur)
          pct_raw_data.extend(pct_raw_data_cur)
  
      pct_lower = np.array(pct_lower, dtype=np.float32)
      pct_upper = np.array(pct_upper, dtype=np.float32)
      pct_mapping = (pct_lower + pct_upper) / 2.0
      raw_data = np.array(raw_data, dtype=np.float32)
      pct_raw_data = np.array(pct_raw_data, dtype=np.float32)
  
      self.compare_reference(
          raw_data,
          pct_raw_data,
          pct_mapping,
          pct_lower,
          pct_upper,
          lengths,
      )
  
file_path: pytorch/caffe2/python/operator_test/bisect_percentile_op_test.py
imports: from typing import List
  import hypothesis.strategies
  from caffe2.python import core, workspace
  from hypothesis import given
  import caffe2.python.hypothesis_test_util
  import bisect
  import numpy
label_desc: Use image node_id 3 for calling the TestBisectPercentileOp obj's underlying member method code with example usage: obj.test_bisect_percentil_op_large(N, lengths_in, max_value, discrete, p, gc, dc) without return types