code: def test_where(self, N, gc, dc, engine):
      C = np.random.rand(N).astype(bool)
      X = np.random.rand(N).astype(np.float32)
      Y = np.random.rand(N).astype(np.float32)
      op = core.CreateOperator(
          "Where", ["C", "X", "Y"], ["Z"], engine=engine
      )
      self.assertDeviceChecks(dc, op, [C, X, Y], [0])
      self.assertReferenceChecks(gc, op, [C, X, Y], mux)
  
imports: from caffe2.python import core
  import caffe2.python.hypothesis_test_util
  import caffe2.python.serialized_test.serialized_test_util
  from hypothesis import given, settings
  import hypothesis.strategies
  import numpy
  import unittest
label_desc: Use image node_id 2 for calling the TestWhere obj's underlying member method code with example usage: obj.test_where(N, gc, dc, engine) without return types