def test_build_waveform(self): wfs = [DummyWaveform(), DummyWaveform()] pts = [DummyPulseTemplate(waveform=wf) for wf in wfs] spt = SequencePulseTemplate(*pts, parameter_constraints=['a < 3']) with self.assertRaises(ParameterConstraintViolation): spt.build_waveform(dict(a=4), dict()) parameters = dict(a=2) channel_mapping = dict() wf = spt.build_waveform(parameters, channel_mapping=channel_mapping) for wfi, pt in zip(wfs, pts): self.assertEqual(pt.build_waveform_calls, [(parameters, dict())]) self.assertIs(pt.build_waveform_calls[0][0], parameters) self.assertIsInstance(wf, SequenceWaveform) for wfa, wfb in zip(wf.compare_key, wfs): self.assertIs(wfa, wfb)