diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
index 54728290..9c9a0e8c 100644
--- a/ReleaseNotes.txt
+++ b/ReleaseNotes.txt
@@ -1,3 +1,7 @@
+## pending/current ##
+ - General:
+    - Fix TimeType comparisons with non-finite floats (inf, -inf, NaN)
+
 ## 0.5.1 ##
 
  - General:
diff --git a/qupulse/pulses/mapping_pulse_template.py b/qupulse/pulses/mapping_pulse_template.py
index a9ff5a0f..824a60e6 100644
--- a/qupulse/pulses/mapping_pulse_template.py
+++ b/qupulse/pulses/mapping_pulse_template.py
@@ -201,10 +201,7 @@ class MappingPulseTemplate(PulseTemplate, ParameterConstrainer):
 
     @property
     def duration(self) -> Expression:
-        return self.__template.duration.evaluate_symbolic(
-            {parameter_name: expression.underlying_expression
-             for parameter_name, expression in self.__parameter_mapping.items()}
-        )
+        return self.__template.duration.evaluate_symbolic(self.__parameter_mapping)
 
     def get_serialization_data(self, serializer: Optional[Serializer]=None) -> Dict[str, Any]:
         data = super().get_serialization_data(serializer)
diff --git a/qupulse/utils/types.py b/qupulse/utils/types.py
index 5e64e874..2d2267e9 100644
--- a/qupulse/utils/types.py
+++ b/qupulse/utils/types.py
@@ -151,21 +151,17 @@ class TimeType:
     def __rfloordiv__(self, other: 'TimeType'):
         return self._value.__rfloordiv__(other._value)
 
-    @_with_other_as_time_type
-    def __le__(self, other: 'TimeType'):
-        return self._value.__le__(other._value)
+    def __le__(self, other):
+        return self._value <= self.as_comparable(other)
 
-    @_with_other_as_time_type
-    def __ge__(self, other: 'TimeType'):
-        return self._value.__ge__(other._value)
+    def __ge__(self, other):
+        return self._value >= self.as_comparable(other)
 
-    @_with_other_as_time_type
-    def __lt__(self, other: 'TimeType'):
-        return self._value.__lt__(other._value)
+    def __lt__(self, other):
+        return self._value < self.as_comparable(other)
 
-    @_with_other_as_time_type
-    def __gt__(self, other: 'TimeType'):
-        return self._value.__gt__(other._value)
+    def __gt__(self, other):
+        return self._value > self.as_comparable(other)
 
     def __eq__(self, other):
         if type(other) == type(self):
@@ -173,6 +169,13 @@ class TimeType:
         else:
             return self._value == other
 
+    @classmethod
+    def as_comparable(cls, other: typing.Union['TimeType', typing.Any]):
+        if type(other) == cls:
+            return other._value
+        else:
+            return other
+
     @classmethod
     def from_float(cls, value: float, absolute_error: typing.Optional[float] = None) -> 'TimeType':
         """Convert a floating point number to a TimeType using one of three modes depending on `absolute_error`.
@@ -200,8 +203,14 @@ class TimeType:
             if type(value) in (cls, cls._InternalType, fractions.Fraction):
                 return cls(value)
             else:
-                # .upper() is a bit faster than replace('e', 'E') which gmpy2.mpq needs
-                return cls(cls._to_internal(str(value).upper()))
+                try:
+                    # .upper() is a bit faster than replace('e', 'E') which gmpy2.mpq needs
+                    return cls(cls._to_internal(str(value).upper()))
+                except ValueError:
+                    if isinstance(value, numbers.Number) and not numpy.isfinite(value):
+                        raise ValueError('Cannot represent "{}" as TimeType'.format(value), value)
+                    else:
+                        raise
 
         elif absolute_error == 0:
             return cls(cls._to_internal(value))

TimeType comparisons fail on inf
Currently TimeType casts float to TimeType for comparisons. This leads to crashes when doing something like `TimeType.from_float(1.1) < float('inf')` because infinity cannot be represented as an integer fraction. The error message is not clear because it only says `ValueError: invalid digits`.

Should we have a max time? somewhing like `1e30ns` which is a few orders of magnitude larger than the age of the universe. If one creates a TimeType with a larger absolute value qupulse does no longer garantuee corectness.

 - [ ] Better error message if a non-finite float(NaN, inf, -inf) is encountered.
 - [ ] Do not convert other value to `TimeType` by default for comparisons.
diff --git a/tests/pulses/mapping_pulse_template_tests.py b/tests/pulses/mapping_pulse_template_tests.py
index 2a70c78d..6248a391 100644
--- a/tests/pulses/mapping_pulse_template_tests.py
+++ b/tests/pulses/mapping_pulse_template_tests.py
@@ -253,15 +253,6 @@ class MappingTemplateTests(unittest.TestCase):
 
         self.assertEqual({'a': Expression('2*f'), 'B': Expression('-3.2*f+2.3')}, pulse.integral)
 
-    def test_duration(self):
-        seconds2ns = 1e9
-        pulse_duration = 1.0765001496284785e-07
-
-        dpt = DummyPulseTemplate(duration=Expression('duration'), parameter_names={'duration'},
-                                   defined_channels={'A'})
-        mpt = MappingPulseTemplate(dpt, parameter_mapping={'duration': seconds2ns * pulse_duration})
-        self.assertEqual(seconds2ns * pulse_duration, mpt.duration)
-
     def test_drop_channel(self):
         dummy = DummyPulseTemplate(defined_channels={'A', 'B', 'C', 'D'},
                                    parameter_names={'k', 'f', 'b'})
diff --git a/tests/pulses/table_pulse_template_tests.py b/tests/pulses/table_pulse_template_tests.py
index 8fc7fd49..efae8335 100644
--- a/tests/pulses/table_pulse_template_tests.py
+++ b/tests/pulses/table_pulse_template_tests.py
@@ -561,6 +561,37 @@ class TablePulseTemplateSequencingTests(unittest.TestCase):
         self.assertEqual(waveform._channel_id,
                          'ch')
 
+    def test_build_waveform_time_type(self):
+        from qupulse.utils.types import TimeType
+
+        table = TablePulseTemplate({0: [(0, 0),
+                                        ('foo', 'v', 'linear'),
+                                        ('bar', 0, 'jump')]},
+                                   parameter_constraints=['foo>1'],
+                                   measurements=[('M', 'b', 'l'),
+                                                 ('N', 1, 2)])
+
+        parameters = {'v': 2.3,
+                      'foo': TimeType.from_float(1.), 'bar': TimeType.from_float(4),
+                      'b': TimeType.from_float(2), 'l': TimeType.from_float(1)}
+        channel_mapping = {0: 'ch'}
+
+        with self.assertRaises(ParameterConstraintViolation):
+            table.build_waveform(parameters=parameters,
+                                 channel_mapping=channel_mapping)
+
+        parameters['foo'] = TimeType.from_float(1.1)
+        waveform = table.build_waveform(parameters=parameters,
+                                        channel_mapping=channel_mapping)
+
+        self.assertIsInstance(waveform, TableWaveform)
+        self.assertEqual(waveform._table,
+                         ((0, 0, HoldInterpolationStrategy()),
+                          (TimeType.from_float(1.1), 2.3, LinearInterpolationStrategy()),
+                          (4, 0, JumpInterpolationStrategy())))
+        self.assertEqual(waveform._channel_id,
+                         'ch')
+
     def test_build_waveform_multi_channel(self):
         table = TablePulseTemplate({0: [(0, 0),
                                         ('foo', 'v', 'linear'),
diff --git a/tests/utils/time_type_tests.py b/tests/utils/time_type_tests.py
index 0339f44c..87d201c2 100644
--- a/tests/utils/time_type_tests.py
+++ b/tests/utils/time_type_tests.py
@@ -58,6 +58,14 @@ class TestTimeType(unittest.TestCase):
                 self._fallback_qutypes = qutypes
         return self._fallback_qutypes
 
+    def test_non_finite_float(self):
+        with self.assertRaisesRegex(ValueError, 'Cannot represent'):
+            qutypes.TimeType.from_float(float('inf'))
+        with self.assertRaisesRegex(ValueError, 'Cannot represent'):
+            qutypes.TimeType.from_float(float('-inf'))
+        with self.assertRaisesRegex(ValueError, 'Cannot represent'):
+            qutypes.TimeType.from_float(float('nan'))
+
     def test_fraction_fallback(self):
         self.assertIs(fractions.Fraction, self.fallback_qutypes.TimeType._InternalType)
 
@@ -134,6 +142,42 @@ class TestTimeType(unittest.TestCase):
         with self.assertRaisesRegex(ValueError, '<= 1'):
             qutypes.time_from_float(.8, 2)
 
+    def assert_comparisons_work(self, time_type):
+        tt = time_type.from_float(1.1)
+
+        self.assertLess(tt, 4)
+        self.assertLess(tt, 4.)
+        self.assertLess(tt, time_type.from_float(4.))
+        self.assertLess(tt, float('inf'))
+
+        self.assertLessEqual(tt, 4)
+        self.assertLessEqual(tt, 4.)
+        self.assertLessEqual(tt, time_type.from_float(4.))
+        self.assertLessEqual(tt, float('inf'))
+
+        self.assertGreater(tt, 1)
+        self.assertGreater(tt, 1.)
+        self.assertGreater(tt, time_type.from_float(1.))
+        self.assertGreater(tt, float('-inf'))
+
+        self.assertGreaterEqual(tt, 1)
+        self.assertGreaterEqual(tt, 1.)
+        self.assertGreaterEqual(tt, time_type.from_float(1.))
+        self.assertGreaterEqual(tt, float('-inf'))
+
+        self.assertFalse(tt == float('nan'))
+        self.assertFalse(tt <= float('nan'))
+        self.assertFalse(tt >= float('nan'))
+        self.assertFalse(tt < float('nan'))
+        self.assertFalse(tt > float('nan'))
+
+    def test_comparisons_work(self):
+        self.assert_comparisons_work(qutypes.TimeType)
+
+    @unittest.skipIf(gmpy2 is None, "fallback already tested")
+    def test_comparisons_work_fallback(self):
+        self.assert_comparisons_work(self.fallback_qutypes.TimeType)
+
 
 def get_some_floats(seed=42, n=1000):
     rand = random.Random(seed)

pip3 install .[plotting,zurich-instruments,tektronix,Faster-fractions]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
apt-get update apt-get install -y libgmp-dev libmpfr-dev libmpc-dev
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
cached-property==1.5.2
certifi==2021.5.30
coverage==6.2
cycler==0.11.0
dataclasses==0.8
execnet==1.9.0
gmpy2==2.1.5
importlib-metadata==4.8.3
iniconfig==1.1.1
kiwisolver==1.3.1
matplotlib==3.3.4
more-itertools==8.14.0
mpmath==1.3.0
numpy==1.19.5
packaging==21.3
Pillow==8.4.0
pluggy==1.0.0
py==1.11.0
pyparsing==3.1.4
pytest==7.0.1
pytest-asyncio==0.16.0
pytest-cov==4.0.0
pytest-mock==3.6.1
pytest-xdist==3.0.2
python-dateutil==2.9.0.post0
PyVISA==1.11.3
qupulse @ file:///qupulse
six==1.17.0
sympy==1.9
tek-awg==0.2.1
tomli==1.2.3
typing_extensions==4.1.1
zhinst==22.2.29711
zipp==3.6.0

name: qupulse
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - cached-property==1.5.2
      - coverage==6.2
      - cycler==0.11.0
      - dataclasses==0.8
      - execnet==1.9.0
      - gmpy2==2.1.5
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - kiwisolver==1.3.1
      - matplotlib==3.3.4
      - more-itertools==8.14.0
      - mpmath==1.3.0
      - numpy==1.19.5
      - packaging==21.3
      - pillow==8.4.0
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-asyncio==0.16.0
      - pytest-cov==4.0.0
      - pytest-mock==3.6.1
      - pytest-xdist==3.0.2
      - python-dateutil==2.9.0.post0
      - pyvisa==1.11.3
      - qupulse==0.5.1
      - six==1.17.0
      - sympy==1.9
      - tek-awg==0.2.1
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zhinst==22.2.29711
      - zipp==3.6.0
prefix: /opt/conda/envs/qupulse

tests/utils/time_type_tests.py::TestTimeType::test_comparisons_work tests/utils/time_type_tests.py::TestTimeType::test_comparisons_work_fallback tests/utils/time_type_tests.py::TestTimeType::test_non_finite_float
tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_constrained tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_parameter_names tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSequencingTest::test_create_program_parameter_constraint_violation tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_conversion tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_deserialization tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_duplication_error tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_get_type_identifier tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_identifier tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_manual_garbage_collect tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_no_registration_before_correct_serialization tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_renamed tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_renamed_of_anonymous tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_serialization tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSerializationTests::test_serialization_and_deserialization tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateOldSerializationTests::test_deserialize tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateOldSerializationTests::test_get_serialization_data tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateRegressionTests::test_issue_451 tests/pulses/table_pulse_template_tests.py::ParameterConstrainerTest::test_constrained_parameters tests/pulses/table_pulse_template_tests.py::ParameterConstrainerTest::test_parameter_constraints tests/pulses/table_pulse_template_tests.py::ParameterConstrainerTest::test_validate_parameter_constraints tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_add_entry_multi_same_time_param tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_external_constraints tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_from_array_1D tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_from_array_multi tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_from_array_multi_one_time tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_from_array_multi_one_voltage tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_from_entry_list tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_from_entry_list_exceptions tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_entries_auto_insert tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_entries_instantiated_multiple_parameters_missing tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_entries_instantiated_two_entries_float_declaraton_declaration_declaration tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_entries_instantiated_two_equal_entries tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_instantiated_entries_multi_same_time_param tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_inconsistent_parameters tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_integral tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_internal_constraints tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_parameter_names tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_single_channel_no_parameters tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_time_not_increasing tests/pulses/table_pulse_template_tests.py::TablePulseTemplateConstraintTest::test_constrained_parameters tests/pulses/table_pulse_template_tests.py::TablePulseTemplateConstraintTest::test_parameter_constraints tests/pulses/table_pulse_template_tests.py::TablePulseTemplateConstraintTest::test_validate_parameter_constraints tests/pulses/table_pulse_template_tests.py::TablePulseTemplateMeasurementTest::test_measurement_windows tests/pulses/table_pulse_template_tests.py::TablePulseTemplateMeasurementTest::test_measurement_windows_invalid tests/pulses/table_pulse_template_tests.py::TablePulseTemplateMeasurementTest::test_measurement_windows_with_parameters tests/pulses/table_pulse_template_tests.py::TablePulseTemplateMeasurementTest::test_multiple_windows tests/pulses/table_pulse_template_tests.py::TablePulseTemplateMeasurementTest::test_no_measurement_windows tests/pulses/table_pulse_template_tests.py::TablePulseTemplateMeasurementTest::test_none_mappings tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_conversion tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_deserialization tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_duplication_error tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_get_type_identifier tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_identifier tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_manual_garbage_collect tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_no_registration_before_correct_serialization tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_renamed tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_renamed_of_anonymous tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_serialization tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSerializationTests::test_serialization_and_deserialization tests/pulses/table_pulse_template_tests.py::TablePulseTemplateOldSerializationTests::test_deserialize_old tests/pulses/table_pulse_template_tests.py::TablePulseTemplateOldSerializationTests::test_get_serialization_data_old tests/pulses/table_pulse_template_tests.py::TablePulseTemplateOldSerializationTests::test_serializer_integration_old tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSequencingTests::test_build_waveform_multi_channel tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSequencingTests::test_build_waveform_none tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSequencingTests::test_build_waveform_single_channel tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSequencingTests::test_build_waveform_time_type tests/pulses/table_pulse_template_tests.py::TablePulseConcatenationTests::test_duplication tests/pulses/table_pulse_template_tests.py::TablePulseConcatenationTests::test_simple_concatenation tests/pulses/table_pulse_template_tests.py::TablePulseConcatenationTests::test_triple_concatenation tests/pulses/table_pulse_template_tests.py::TablePulseConcatenationTests::test_wrong_channels tests/pulses/table_pulse_template_tests.py::TablePulseConcatenationTests::test_wrong_type
tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_defined_channels tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_drop_channel tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_external_params tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_from_tuple tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_from_tuple_exceptions tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_from_tuple_partial_mappings tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_get_updated_channel_mapping tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_get_updated_measurement_mapping tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_init_exceptions tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_integral tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_map_parameters tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_measurement_names tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_nested_mapping_avoidance tests/pulses/mapping_pulse_template_tests.py::MappingTemplateTests::test_partial_parameter_mapping tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSequencingTest::test_create_program tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSequencingTest::test_create_program_invalid_measurement_mapping tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSequencingTest::test_create_program_subtemplate_none tests/pulses/mapping_pulse_template_tests.py::MappingPulseTemplateSequencingTest::test_same_channel_error tests/pulses/mapping_pulse_template_tests.py::PulseTemplateParameterMappingExceptionsTests::test_missing_mapping_exception_str tests/pulses/mapping_pulse_template_tests.py::PulseTemplateParameterMappingExceptionsTests::test_unnecessary_mapping_exception_str tests/pulses/table_pulse_template_tests.py::MeasurementDefinerTest::test_measurement_windows tests/pulses/table_pulse_template_tests.py::MeasurementDefinerTest::test_measurement_windows_invalid tests/pulses/table_pulse_template_tests.py::MeasurementDefinerTest::test_measurement_windows_with_parameters tests/pulses/table_pulse_template_tests.py::MeasurementDefinerTest::test_multiple_windows tests/pulses/table_pulse_template_tests.py::MeasurementDefinerTest::test_no_measurement_windows tests/pulses/table_pulse_template_tests.py::MeasurementDefinerTest::test_none_mappings tests/pulses/table_pulse_template_tests.py::TableEntryTest::test_known_interpolation_strategies tests/pulses/table_pulse_template_tests.py::TableEntryTest::test_slots tests/pulses/table_pulse_template_tests.py::TableEntryTest::test_unknown_interpolation_strategy tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_empty_instantiated tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_from_array_exceptions tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_entries_instantiated_one_entry_float_declaration tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_entries_instantiated_one_entry_float_float tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_get_entries_instantiated_two_entries_float_float_declaration_float tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_identifier tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_measurement_names tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_time_is_0_on_construction tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_time_is_0_on_instantiation tests/pulses/table_pulse_template_tests.py::TablePulseTemplateTest::test_time_is_negative tests/pulses/table_pulse_template_tests.py::TablePulseTemplateSequencingTests::test_build_waveform_empty tests/utils/time_type_tests.py::TestTimeType::test_fraction_fallback tests/utils/time_type_tests.py::TestTimeType::test_fraction_time_from_float_exact tests/utils/time_type_tests.py::TestTimeType::test_fraction_time_from_float_exact_fallback tests/utils/time_type_tests.py::TestTimeType::test_fraction_time_from_float_with_precision tests/utils/time_type_tests.py::TestTimeType::test_fraction_time_from_float_with_precision_fallback tests/utils/time_type_tests.py::TestTimeType::test_fraction_time_from_fraction tests/utils/time_type_tests.py::TestTimeType::test_fraction_time_from_fraction_fallback tests/utils/time_type_tests.py::TestTimeType::test_from_float_exceptions tests/utils/time_type_tests.py::TestTimeType::test_from_float_no_extra_args tests/utils/time_type_tests.py::TestTimeType::test_from_float_no_extra_args_fallback
qupulse/pulses/mapping_pulse_template.py ReleaseNotes.txt qupulse/utils/types.py
qupulse/pulses/mapping_pulse_template.py ReleaseNotes.txt qupulse/utils/types.py