Example #1
0
    def test_init(self):
        template = DummyPulseTemplate(duration='t1',
                                      defined_channels={'X', 'Y'},
                                      parameter_names={'a', 'b'},
                                      measurement_names={'M'})
        overwritten_channels = {'Y': 'c', 'Z': 'a'}

        expected_overwritten_channels = {
            'Y': ExpressionScalar('c'),
            'Z': ExpressionScalar('a')
        }

        pccpt = ParallelConstantChannelPulseTemplate(template,
                                                     overwritten_channels)
        self.assertIs(template, pccpt.template)
        self.assertEqual(expected_overwritten_channels,
                         pccpt.overwritten_channels)

        self.assertEqual({'X', 'Y', 'Z'}, pccpt.defined_channels)
        self.assertEqual({'a', 'b', 'c'}, pccpt.parameter_names)
        self.assertEqual({'M'}, pccpt.measurement_names)
        self.assertEqual({'a', 'c'}, pccpt.transformation_parameters)
        self.assertIs(template.duration, pccpt.duration)

        template._is_interruptable = mock.Mock()
        self.assertIs(pccpt.is_interruptable, template.is_interruptable)

        rs_arg = object()
        return_value = object()
        template.requires_stop = mock.Mock(return_value=return_value)
        self.assertIs(return_value, pccpt.requires_stop(rs_arg))
        template.requires_stop.assert_called_once_with(rs_arg)