def test_create_pulse_group(self) -> None: name = 'foo_group' sample_rate = 10 expected_samples_wf1 = numpy.random.rand(11) expected_samples_wf2 = numpy.random.rand(11) block = DummyInstructionBlock() wf1a = DummyWaveform(duration=1, sample_output=expected_samples_wf1) wf1b = DummyWaveform(duration=1, sample_output=expected_samples_wf1) wf2 = DummyWaveform(duration=1, sample_output=expected_samples_wf2) block.add_instruction_exec(wf1a) block.add_instruction_exec(wf1b) block.add_instruction_exec(wf2) block.add_instruction_exec(wf1a) registering_function = lambda x: x['data'] pci = PulseControlInterface(sample_rate, time_scaling=1) (result, _) = pci.create_pulse_group(block, name=name) expected_result = dict( name=name, nrep=[2, 1, 1], pulses=[0, 1, 0], #pulses=[registering_function(pci.create_waveform_struct(wf1a, name='')), # registering_function(pci.create_waveform_struct(wf2, name='')), # registering_function(pci.create_waveform_struct(wf1a, name=''))], chan=1, ctrl='notrig') self.assertEqual(expected_result, result)
def test_create_pulse_group(self) -> None: name = 'foo_group' sample_rate = 10 expected_samples_wf1 = numpy.random.rand(11) expected_samples_wf2 = numpy.random.rand(11) block = DummyInstructionBlock() wf1a = DummyWaveform(duration=1, sample_output=expected_samples_wf1) wf1b = DummyWaveform(duration=1, sample_output=expected_samples_wf1) wf2 = DummyWaveform(duration=1, sample_output=expected_samples_wf2) block.add_instruction_exec(wf1a) block.add_instruction_exec(wf1b) block.add_instruction_exec(wf2) block.add_instruction_exec(wf1a) registering_function = lambda x: x['data'] pci = PulseControlInterface(sample_rate, time_scaling=1) (result, _) = pci.create_pulse_group(block.compile_sequence(), name=name) expected_result = dict( name=name, nrep=[2, 1, 1], pulses=[0, 1, 0], #pulses=[registering_function(pci.create_waveform_struct(wf1a, name='')), # registering_function(pci.create_waveform_struct(wf2, name='')), # registering_function(pci.create_waveform_struct(wf1a, name=''))], chan=1, ctrl='notrig' ) self.assertEqual(expected_result, result)
def test_create_pulse_group_invalid_instruction(self) -> None: name = 'foo_group' sample_rate = 10 block = DummyInstructionBlock() block.add_instruction_goto(DummyInstructionBlock()) pci = PulseControlInterface(sample_rate) with self.assertRaises(Exception): pci.create_pulse_group(block.compile_sequence(), name=name)
def test_create_pulse_group_invalid_instruction(self) -> None: name = 'foo_group' sample_rate = 10 block = DummyInstructionBlock() block.add_instruction_goto(block.create_embedded_block()) pci = PulseControlInterface(sample_rate) with self.assertRaises(Exception): pci.create_pulse_group(block.compile_sequence(), name=name)
def test_create_pulse_group_empty(self) -> None: name = 'foo_group' sample_rate = 10 block = DummyInstructionBlock() pci = PulseControlInterface(sample_rate) (result, _) = pci.create_pulse_group(block, name=name) expected_result = dict(name=name, nrep=[], pulses=[], chan=1, ctrl='notrig') self.assertEqual(expected_result, result)
def test_create_pulse_group_empty(self) -> None: name = 'foo_group' sample_rate = 10 block = DummyInstructionBlock() pci = PulseControlInterface(sample_rate) (result, _) = pci.create_pulse_group(block.compile_sequence(), name=name) expected_result = dict( name=name, nrep=[], pulses=[], chan=1, ctrl='notrig' ) self.assertEqual(expected_result, result)
def test_create_waveform_struct(self) -> None: name = 'foo' sample_rate = 10 expected_samples = numpy.random.rand(11) waveform = DummyWaveform(duration=1, sample_output=expected_samples) pci = PulseControlInterface(sample_rate, time_scaling=1) result = pci.create_waveform_struct(waveform, name=name) expected_sample_times = numpy.linspace(0, 1, 11).tolist() self.assertEqual((expected_sample_times, 0), waveform.sample_calls[0]) expected_result = dict( name=name, data=dict(wf=expected_samples.tolist(), marker=numpy.zeros_like(expected_samples).tolist(), clk=sample_rate)) self.assertEqual(expected_result, result)
def test_create_waveform_struct(self) -> None: name = 'foo' sample_rate = 10 expected_samples = numpy.random.rand(11) waveform = DummyWaveform(duration=1, sample_output=expected_samples) pci = PulseControlInterface(sample_rate, time_scaling=1) result = pci.create_waveform_struct(waveform, name=name) expected_sample_times = numpy.linspace(0, 1, 11).tolist() self.assertEqual((expected_sample_times, 0), waveform.sample_calls[0]) expected_result = dict(name=name, data=dict(wf=expected_samples.tolist(), marker=numpy.zeros_like(expected_samples).tolist(), clk=sample_rate ) ) self.assertEqual(expected_result, result)