code: def test_init(self):
      trainer = self._construct_trainer()
      quantiles = (0.5 + torch.arange(self.num_atoms).float()) / float(
          self.num_atoms
      )
      self.assertTrue(
          (torch.isclose(trainer.quantiles, quantiles)).all()
      )
      self.assertTrue(
          (torch.isclose(trainer.reward_boosts, torch.zeros(2))).all()
      )
      param_copy = QRDQNTrainerParameters(
          actions=["1", "2"],
          num_atoms=11,
          rl=RLParameters(reward_boost={"1": 1, "2": 2}),
      )
      reward_boost_trainer = self._construct_trainer(
          new_params=param_copy
      )
      self.assertTrue(
          (
              torch.isclose(
                  reward_boost_trainer.reward_boosts,
                  torch.tensor([1.0, 2.0]),
              )
          ).all()
      )
  
file_path: ReAgent/reagent/test/training/test_qrdqn.py
imports: import unittest
  import torch
  from reagent.core.parameters import EvaluationParameters, RLParameters
  from reagent.core.types import DiscreteDqnInput, ExtraData, FeatureData
  from reagent.evaluation.evaluator import get_metrics_to_score
  from reagent.models.dqn import FullyConnectedDQN
  from reagent.training.parameters import QRDQNTrainerParameters
  from reagent.training.qrdqn_trainer import QRDQNTrainer
  from reagent.workflow.types import RewardOptions
label_desc: Use image node_id 3 for calling the TestQRDQN obj's underlying member method code with example usage: obj.test_init() without return types