def test_depth_0_single_waveform(self): program = Loop(waveform=DummyWaveform(defined_channels={'A'}), repetition_count=3) t_program = TaborProgram(program, channels=(None, 'A'), markers=(None, None), device_properties=self.instr_props) self.assertEqual(t_program.waveform_mode, TaborSequencing.SINGLE) self.assertEqual(t_program.get_sequencer_tables(), [[(3, 0, 0)]]) self.assertEqual(t_program.get_advanced_sequencer_table(), [(1, 1, 0)])
def test_depth_1_advanced_sequence_unroll(self): wf_1 = DummyWaveform(defined_channels={'A'}) wf_2 = DummyWaveform(defined_channels={'A'}) program = Loop(children=[ Loop(waveform=wf_1, repetition_count=3), Loop(waveform=wf_2, repetition_count=4) ], repetition_count=5) t_program = TaborProgram(program, channels=(None, 'A'), markers=(None, None), device_properties=self.instr_props) self.assertEqual(t_program.waveform_mode, TaborSequencing.ADVANCED) # partial unroll of the last segment self.assertEqual(t_program.get_sequencer_tables(), [[(3, 0, 0), (3, 1, 0), (1, 1, 0)]]) self.assertEqual(t_program.get_advanced_sequencer_table(), [(5, 1, 0)])
def test_depth_1_single_sequence_2(self): """Use the same wf twice""" wf_1 = DummyWaveform(defined_channels={'A'}) wf_2 = DummyWaveform(defined_channels={'A'}) program = Loop(children=[ Loop(waveform=wf_1, repetition_count=3), Loop(waveform=wf_2, repetition_count=4), Loop(waveform=wf_1, repetition_count=1) ], repetition_count=1) t_program = TaborProgram(program, channels=(None, 'A'), markers=(None, None), device_properties=self.instr_props) self.assertEqual(t_program.waveform_mode, TaborSequencing.SINGLE) self.assertEqual(t_program.get_sequencer_tables(), [[(3, 0, 0), (4, 1, 0), (1, 0, 0)]]) self.assertEqual(t_program.get_advanced_sequencer_table(), [(1, 1, 0)])