Exemple #1
0
    def __init__(self, body: Waveform, repetition_count: int):
        repetition_count = checked_int_cast(repetition_count)
        if repetition_count < 1 or not isinstance(repetition_count, int):
            raise ValueError('Repetition count must be an integer >0')

        super().__init__(duration=body.duration * repetition_count)
        self._body = body
        self._repetition_count = repetition_count
Exemple #2
0
 def get_repetition_count_value(self, parameters: Mapping[str,
                                                          Real]) -> int:
     value = self._repetition_count.evaluate_in_scope(parameters)
     try:
         return checked_int_cast(value)
     except ValueError:
         raise ParameterNotIntegerException(str(self._repetition_count),
                                            value)
Exemple #3
0
    def test_no_int_detection(self):
        with self.assertRaises(ValueError):
            checked_int_cast(0.5)

        with self.assertRaises(ValueError):
            checked_int_cast(-0.5)

        with self.assertRaises(ValueError):
            checked_int_cast(123124.2)

        with self.assertRaises(ValueError):
            checked_int_cast(123124 + 1e-6, epsilon=1e-10)
Exemple #4
0
 def to_range(self, parameters: Mapping[str, Number]) -> range:
     return range(
         checked_int_cast(self.start.evaluate_in_scope(parameters)),
         checked_int_cast(self.stop.evaluate_in_scope(parameters)),
         checked_int_cast(self.step.evaluate_in_scope(parameters)))
Exemple #5
0
 def test_int_forwarding(self):
     my_int = 6
     self.assertIs(my_int, checked_int_cast(my_int))
Exemple #6
0
    def test_variable_epsilon(self):
        self.assertEqual(6, checked_int_cast(6 + 1e-11))

        with self.assertRaises(ValueError):
            checked_int_cast(6 + 1e-11, epsilon=1e-15)
Exemple #7
0
    def test_float_cast(self):
        self.assertEqual(6, checked_int_cast(6 + 1e-11))

        self.assertEqual(-6, checked_int_cast(-6 + 1e-11))
 def to_range(self, parameters: Dict[str, Any]) -> range:
     return range(checked_int_cast(self.start.evaluate_numeric(**parameters)),
                  checked_int_cast(self.stop.evaluate_numeric(**parameters)),
                  checked_int_cast(self.step.evaluate_numeric(**parameters)))