def test_validate_input_duplicate_removal(self): validated = TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.1, 0.2, LinearInterpolationStrategy()), TableWaveformEntry(0.1, 0.3, JumpInterpolationStrategy()), TableWaveformEntry(0.1, 0.3, HoldInterpolationStrategy()), TableWaveformEntry(0.2, 0.3, LinearInterpolationStrategy()), TableWaveformEntry(0.3, 0.3, JumpInterpolationStrategy())]) self.assertEqual(validated, (TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.1, 0.2, LinearInterpolationStrategy()), TableWaveformEntry(0.1, 0.3, HoldInterpolationStrategy()), TableWaveformEntry(0.3, 0.3, JumpInterpolationStrategy())))
def test_validate_input_errors(self): with self.assertRaises(ValueError): TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy())]) with self.assertRaises(ValueError): TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.0, 0.3, HoldInterpolationStrategy())]) with self.assertRaises(ValueError): TableWaveform._validate_input([TableWaveformEntry(0.1, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.2, 0.2, HoldInterpolationStrategy())]) with self.assertRaisesRegex(ValueError, "not increasing"): TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.2, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.1, 0.2, HoldInterpolationStrategy())]) with self.assertRaisesRegex(ValueError, "Negative"): TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(-0.2, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.1, 0.2, HoldInterpolationStrategy())])
def test_validate_input_errors(self): with self.assertRaises(ValueError): TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy())]) with self.assertRaises(ValueError): TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.0, 0.3, HoldInterpolationStrategy())]) with self.assertRaises(ValueError): TableWaveform._validate_input([TableWaveformEntry(0.1, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.2, 0.2, HoldInterpolationStrategy())]) with self.assertRaises(ValueError): TableWaveform._validate_input([TableWaveformEntry(0.0, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.2, 0.2, HoldInterpolationStrategy()), TableWaveformEntry(0.1, 0.2, HoldInterpolationStrategy())])