Пример #1
0
    def test_get_waveforms(self):
        prog = PlottableProgram(self.segments, self.sequencer_tables,
                                self.adv_sequencer_table)

        # omit first wave
        expected_waveforms_0 = [
            self.ch_a[idx] for idx in self.selection_order_without_repetition
        ]
        expected_waveforms_1 = [
            self.ch_b[idx] for idx in self.selection_order_without_repetition
        ]

        np.testing.assert_equal(expected_waveforms_0, prog.get_waveforms(0))
        np.testing.assert_equal(expected_waveforms_1, prog.get_waveforms(1))

        expected_waveforms_0_marker = [
            self.segments[idx].data_a
            for idx in self.selection_order_without_repetition
        ]
        expected_waveforms_1_marker = [
            self.segments[idx].data_b
            for idx in self.selection_order_without_repetition
        ]

        np.testing.assert_equal(expected_waveforms_0_marker,
                                prog.get_waveforms(0, with_marker=True))
        np.testing.assert_equal(expected_waveforms_1_marker,
                                prog.get_waveforms(1, with_marker=True))
Пример #2
0
    def test_eq(self):
        prog1 = PlottableProgram(self.segments, self.sequencer_tables,
                                 self.adv_sequencer_table)

        prog2 = PlottableProgram(self.segments, self.sequencer_tables,
                                 self.adv_sequencer_table)

        self.assertEqual(prog1, prog2)
Пример #3
0
    def test_builtint_conversion(self):
        prog = PlottableProgram(self.segments, self.sequencer_tables,
                                self.adv_sequencer_table)

        prog = PlottableProgram.from_builtin(prog.to_builtin())

        np.testing.assert_equal(self.segments, prog._segments)
        self.assertEqual(self.sequencer_tables, prog._sequence_tables)
        self.assertEqual(self.adv_sequencer_table,
                         prog._advanced_sequence_table)
Пример #4
0
    def test_get_advanced_sequence_table(self):
        adv_seq = [(1, 1, 1)] + self.adv_sequencer_table + [(1, 1, 0)]
        prog = PlottableProgram(self.segments, self.sequencer_tables, adv_seq)

        self.assertEqual(prog._get_advanced_sequence_table(),
                         self.adv_sequencer_table)
        self.assertEqual(
            prog._get_advanced_sequence_table(with_first_idle=True),
            [(1, 1, 1)] + self.adv_sequencer_table)

        self.assertEqual(
            prog._get_advanced_sequence_table(with_first_idle=True,
                                              with_last_idles=True), adv_seq)
Пример #5
0
    def test_iter(self):
        prog = PlottableProgram(self.segments, self.sequencer_tables,
                                self.adv_sequencer_table)

        ch = itertools.chain.from_iterable(self.ch_a[idx]
                                           for idx in self.selection_order)
        ch_0 = np.fromiter(ch, dtype=np.uint16)
        ch_1 = ch_0 + 1000

        for expected, found in zip(ch_0, prog.iter_samples(0, True, True)):
            self.assertEqual(expected, found)

        for expected, found in zip(ch_1, prog.iter_samples(1, True, True)):
            self.assertEqual(expected, found)
Пример #6
0
 def test_init(self):
     prog = PlottableProgram(self.segments, self.sequencer_tables,
                             self.adv_sequencer_table)
     np.testing.assert_equal(self.segments, prog._segments)
     self.assertEqual(self.sequencer_tables, prog._sequence_tables)
     self.assertEqual(self.adv_sequencer_table,
                      prog._advanced_sequence_table)
    def __init__(self, data_folder, pulse_name):
        self.data_folder = data_folder
        self.pulse_name = pulse_name

        self.parameters = self.load_json('parameters.json')
        self.window_mapping = self.load_json('measurement_mapping.json')
        self.channel_mapping = self.load_json('channel_mapping.json')
        self.preparation_commands = self.load_json('preparation_commands.json')

        expected_binary_programs = self.load_json('binary_programs.json')
        if expected_binary_programs:
            self.expected_binary_programs = [
                PlottableProgram.from_builtin(prog) if prog else None
                for prog in expected_binary_programs
            ]
        else:
            self.expected_binary_programs = None

        self.validate_programs = self.load_function_from_file(
            'binary_program_validation.py', 'validate_programs')
        self.validation_data = self.load_json('binary_program_validation.json')

        self.pulse = None
        self.program = None

        self.simulator_manager = None

        self.hardware_setup = None  # type: HardwareSetup
        self.dac = None  # type: DummyDAC
        self.awg = None  # type: TaborAWGRepresentation

        self.program_AB = None
        self.program_CD = None
Пример #8
0
 def test_from_read_data(self):
     prog = PlottableProgram.from_read_data(self.read_segments,
                                            self.read_sequencer_tables,
                                            self.read_adv_sequencer_table)
     self.assertEqual(self.segments, prog._segments)
     self.assertEqual(self.sequencer_tables, prog._sequence_tables)
     self.assertEqual(self.adv_sequencer_table,
                      prog._advanced_sequence_table)
Пример #9
0
    def test_get_as_single_waveform(self):
        prog = PlottableProgram(self.segments, self.sequencer_tables,
                                self.adv_sequencer_table)

        expected_single_waveform_0 = np.fromiter(prog.iter_samples(0),
                                                 dtype=np.uint16)
        expected_single_waveform_1 = np.fromiter(prog.iter_samples(1),
                                                 dtype=np.uint16)

        np.testing.assert_equal(prog.get_as_single_waveform(0),
                                expected_single_waveform_0)
        np.testing.assert_equal(prog.get_as_single_waveform(1),
                                expected_single_waveform_1)
    def __init__(self, data_folder, pulse_name):
        super().__init__(data_folder=data_folder, pulse_name=pulse_name)

        self.preparation_commands = self.load_json(
            'tabor_preparation_commands.json')

        expected_binary_programs = self.load_json('binary_programs.json')
        if expected_binary_programs:
            self.expected_binary_programs = [
                PlottableProgram.from_builtin(prog) if prog else None
                for prog in expected_binary_programs
            ]
        else:
            self.expected_binary_programs = None

        self.validate_programs = self.load_function_from_file(
            'binary_program_validation.py', 'validate_programs')
        self.validation_data = self.load_json('binary_program_validation.json')

        self.program_AB = None
        self.program_CD = None
Пример #11
0
    def test_get_repetitions(self):
        prog = PlottableProgram(self.segments, self.sequencer_tables,
                                self.adv_sequencer_table)

        expected_repetitions = [1, 1, 1, 2, 1, 1, 1, 1, 1]
        np.testing.assert_equal(expected_repetitions, prog.get_repetitions())