text: 
  import unittest
  
  import caffe2.python.hypothesis_test_util as hu
  import hypothesis.strategies as st
  import numpy as np
  from caffe2.python import core, dyndep
  from hypothesis import given, settings
  
  
  dyndep.InitOpsLibrary("@/caffe2/modules/detectron:detectron_ops")
  
  
  class TestUpsampleNearestOp(hu.HypothesisTestCase):
      @given(
          N=st.integers(1, 3),
          H=st.integers(10, 300),
          W=st.integers(10, 300),
          scale=st.integers(1, 3),
          **hu.gcs
      )
      @settings(deadline=None, max_examples=20)
      def test_upsample_nearest_op(self, N, H, W, scale, gc, dc):
          C = 32
          X = np.random.randn(N, C, H, W).astype(np.float32)
          op = core.CreateOperator("UpsampleNearest", ["X"], ["Y"], scale=scale)
  
          def ref(X):
              outH = H * scale
              outW = W * scale
              outH_idxs, outW_idxs = np.meshgrid(
                  np.arange(outH), np.arange(outW), indexing="ij"
              )
              inH_idxs = (outH_idxs / scale).astype(np.int32)
              inW_idxs = (outW_idxs / scale).astype(np.int32)
              Y = X[:, :, inH_idxs, inW_idxs]
              return [Y]
  
          self.assertReferenceChecks(device_option=gc, op=op, inputs=[X], reference=ref)
  
  
  if __name__ == "__main__":
      unittest.main()
  