code: def test_basic3(self):
      space = hp.pchoice(
          "something",
          [
              (0.2, hp.pchoice("number", [(0.8, 2), (0.2, 1)])),
              (0.8, hp.pchoice("number1", [(0.7, 5), (0.3, 6)])),
          ],
      )
      a, b, c, d = 0, 0, 0, 0
      rng = np.random.default_rng(123)
      for i in range(0, 2000):
          nesto = hyperopt.pyll.stochastic.sample(space, rng=rng)
          if nesto == 2:
              a += 1
          elif nesto == 1:
              b += 1
          elif nesto == 5:
              c += 1
          elif nesto == 6:
              d += 1
          else:
              assert 0, nesto
      print((a, b, c, d))
      assert a + b + c + d == 2000
      assert 300 < a + b < 500
      assert 1500 < c + d < 1700
      assert a * 0.3 > b  # a * 1.2 > 4 * b
      assert c * 3 * 1.2 > d * 7
  
file_path: hyperopt/hyperopt/tests/unit/test_pchoice.py
imports: from functools import partial
  import numpy
  import unittest
  from hyperopt import hp, Trials, fmin, tpe, anneal, rand
  import hyperopt.pyll.stochastic
label_desc: Use image node_id 3 for calling the TestPChoice obj's underlying member method code with example usage: obj.test_basic3() without return types