code: def test_Init(self) -> None:
      Ymean_expected = {
          ("m1", "a"): 1.0,
          ("m1", "b"): 3.0,
          ("m2", "a"): 5.0,
          ("m2", "b"): 1.5,
      }
      Ystd_expected = {
          ("m1", "a"): 1.0,
          ("m1", "b"): sqrt(2) * 2.0,
          ("m2", "a"): sqrt(2) * 3.0,
          ("m2", "b"): sqrt(2) * 0.5,
      }
      self.assertEqual(
          self.t.Ymean,
          Ymean_expected,
      )
      self.assertEqual(set(self.t.Ystd), set(Ystd_expected))
      for k, v in self.t.Ystd.items():
          self.assertAlmostEqual(v, Ystd_expected[k])
      with self.assertRaises(ValueError):
          # No parameter specified
          StratifiedStandardizeY(
              search_space=self.search_space,
              observations=[self.obs1, self.obs2],
          )
      with self.assertRaises(ValueError):
          # Wrong parameter type
          StratifiedStandardizeY(
              search_space=self.search_space,
              observations=[self.obs1, self.obs2],
              config={"parameter_name": "x"},
          )
      # Multiple tasks parameters
      ss3 = SearchSpace(
          parameters=[
              RangeParameter(
                  name="x",
                  parameter_type=ParameterType.FLOAT,
                  lower=0,
                  upper=10,
              ),
              ChoiceParameter(
                  name="z",
                  parameter_type=ParameterType.STRING,
                  values=["a", "b"],
                  is_task=True,
                  target_value="a",
              ),
              ChoiceParameter(
                  name="z2",
                  parameter_type=ParameterType.STRING,
                  values=["a", "b"],
                  is_task=True,
                  target_value="b",
              ),
          ]
      )
      with self.assertRaises(ValueError):
          StratifiedStandardizeY(
              search_space=ss3,
              observations=[self.obs1, self.obs2],
          )
  
      # Grab from task feature
      ss2 = SearchSpace(
          parameters=[
              RangeParameter(
                  name="x",
                  parameter_type=ParameterType.FLOAT,
                  lower=0,
                  upper=10,
              ),
              ChoiceParameter(
                  name="z",
                  parameter_type=ParameterType.STRING,
                  values=["a", "b"],
                  is_task=True,
                  target_value="a",
              ),
          ]
      )
      t2 = StratifiedStandardizeY(
          search_space=ss2,
          observations=[self.obs1, self.obs2],
      )
      self.assertEqual(
          t2.Ymean,
          Ymean_expected,
      )
      self.assertEqual(set(t2.Ystd), set(Ystd_expected))
      for k, v in t2.Ystd.items():
          self.assertAlmostEqual(v, Ystd_expected[k])
  
imports: from copy import deepcopy
  from math import sqrt
  import numpy
  from ax.core.metric import Metric
  from ax.core.objective import Objective
  from ax.core.observation import Observation, ObservationData, ObservationFeatures
  from ax.core.optimization_config import OptimizationConfig
  from ax.core.outcome_constraint import OutcomeConstraint
  from ax.core.parameter import ChoiceParameter, ParameterType, RangeParameter
  from ax.core.search_space import SearchSpace
  from ax.core.types import ComparisonOp
  from ax.modelbridge.transforms.stratified_standardize_y import StratifiedStandardizeY
  from ax.modelbridge.transforms.tests.test_standardize_y_transform import osd_allclose
  from ax.utils.common.testutils import TestCase
label_desc: Use image node_id 2 for calling the StratifiedStandardizeYTransformTest obj's underlying member method code with example usage: obj.test_Init() without return types