code: def test_get_gate_values_clamp(self) -> None:
      # enlarge the bounds & extremify log_alpha to mock gate  values beyond 0 & 1
      bcstg = BinaryConcreteStochasticGates._from_pretrained(
          torch.tensor([10.0, -10.0, 10.0]),
          lower_bound=-2,
          upper_bound=2,
      ).to(self.testing_device)
  
      clamped_gate_values = bcstg.get_gate_values().cpu().tolist()
      assert clamped_gate_values == [1.0, 0.0, 1.0]
  
      unclamped_gate_values = (
          bcstg.get_gate_values(clamp=False).cpu().tolist()
      )
      assert (
          unclamped_gate_values[0] > 1
          and unclamped_gate_values[1] < 0
          and unclamped_gate_values[2] > 1
      )
  
imports: import unittest
  import torch
  from captum.module.binary_concrete_stochastic_gates import BinaryConcreteStochasticGates
  from parameterized import parameterized_class
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
label_desc: Use image node_id 14 for calling the TestBinaryConcreteStochasticGates obj's underlying member method code with example usage: obj.test_get_gate_values_clamp() without return types