class_docstr: Tests for the algo ASHA.
class_docstr_tok: ["Tests","for","the","algo","ASHA","."]
docstr: Test that correct points are promoted and returned, plus random points
code: def test_suggest_promote_many_plus_random(
      self,
      asha: ASHA,
      bracket: ASHABracket,
      big_rung_0: RungDict,
      big_rung_1: RungDict,
  ):
      """Test that correct points are promoted and returned, plus random points"""
      asha.brackets = [bracket]
      assert bracket.owner is asha
      bracket.rungs[0] = big_rung_0
      bracket.rungs[1] = big_rung_1
  
      candidates = asha.suggest(20)
  
      assert len(candidates) == 20
      assert (
          sum(
              1
              for trial in candidates
              if trial.params[asha.fidelity_index] == 9
          )
          == 2
      )
      assert (
          sum(
              1
              for trial in candidates
              if trial.params[asha.fidelity_index] == 3
          )
          == 3 * 3
      )
      assert (
          sum(
              1
              for trial in candidates
              if trial.params[asha.fidelity_index] == 1
          )
          == 20 - 2 - 3 * 3
      )
  
imports: from __future__ import annotations
  import hashlib
  import logging
  from typing import ClassVar
  import numpy
  import pytest
  from test_hyperband import compare_registered_trial, create_rung_from_points, create_trial_for_hb, force_observe
  from orion.algo.asha import ASHA, ASHABracket, compute_budgets
  from orion.algo.hyperband import RungDict
  from orion.algo.space import Fidelity, Integer, Real, Space
  from orion.core.worker.primary_algo import SpaceTransform
  from orion.testing.algo import BaseAlgoTests, TestPhase
  from orion.testing.trial import create_trial
label_desc: Use image node_id 13 for calling the TestASHA obj's underlying member method code with example usage: obj.test_suggest_promote_many_plus_random(asha, bracket, big_rung_0, big_rung_1) without return types