예제 #1
0
    def test_iter_waveform_exceptions(self) -> None:
        wf1 = DummyWaveform(duration=7)
        wf2 = DummyWaveform(duration=5)
        wf3 = DummyWaveform(duration=3)

        repeated_block = InstructionBlock()
        repeated_block.add_instruction_meas([('m', 1, 2)])
        repeated_block.add_instruction_exec(wf2)
        repeated_block.add_instruction_exec(wf1)

        main_block = InstructionBlock()
        main_block.add_instruction_exec(wf1)
        main_block.add_instruction_repj(2, repeated_block)
        main_block.add_instruction_exec(wf3)
        main_block.add_instruction_goto(repeated_block)

        with self.assertRaises(NotImplementedError):
            list(iter_waveforms(main_block))

        repeated_block.add_instruction(DummyInstruction())
        with self.assertRaises(NotImplementedError):
            list(iter_waveforms(main_block))

        main_block = InstructionBlock()
        main_block.add_instruction_stop()

        with self.assertRaises(StopIteration):
            next(iter_waveforms(main_block))
예제 #2
0
 def test_add_instruction_stop(self) -> None:
     block = InstructionBlock()
     expected_instructions = [STOPInstruction(), STOPInstruction()]
     block.add_instruction_stop()
     block.add_instruction_stop()
     expected_compiled_instructions = expected_instructions.copy()
     expected_compiled_instructions.append(STOPInstruction())
     self.__verify_block(block, expected_instructions,
                         expected_compiled_instructions, None)