def test_deserialize_old(self) -> None:
        # test for deprecated version during transition period, remove after final switch
        with self.assertWarnsRegex(DeprecationWarning, "deprecated",
                                   msg="AtomicMultiChannelPT does not issue warning for old serialization routines."):
            sts = [DummyPulseTemplate(duration='t1', defined_channels={'A'}, parameter_names={'a', 'b'}),
                   DummyPulseTemplate(duration='t1', defined_channels={'B'}, parameter_names={'a', 'c'})]

            def deserialization_callback(ident: str):
                self.assertIn(ident, ('0', '1'))

                if ident == '0':
                    return 0
                else:
                    return 1

            serializer = DummySerializer(deserialize_callback=deserialization_callback)
            serializer.subelements = sts

            data = dict(subtemplates=['0', '1'], parameter_constraints=['a < d'])

            template = AtomicMultiChannelPulseTemplate.deserialize(serializer, **data)

            self.assertIs(template.subtemplates[0], sts[0])
            self.assertIs(template.subtemplates[1], sts[1])
            self.assertEqual(template.parameter_constraints, [ParameterConstraint('a < d')])
    def test_deserialize(self):
        sts = [DummyPulseTemplate(duration='t1', defined_channels={'A'}, parameter_names={'a', 'b'}),
               DummyPulseTemplate(duration='t1', defined_channels={'B'}, parameter_names={'a', 'c'})]

        def deserialization_callback(ident: str):
            self.assertIn(ident, ('0', '1'))

            if ident == '0':
                return 0
            else:
                return 1

        serializer = DummySerializer(deserialize_callback=deserialization_callback)
        serializer.subelements = sts

        data = dict(subtemplates=['0', '1'], parameter_constraints=['a < d'])

        template = AtomicMultiChannelPulseTemplate.deserialize(serializer, **data)

        self.assertIs(template.subtemplates[0], sts[0])
        self.assertIs(template.subtemplates[1], sts[1])
        self.assertEqual(template.parameter_constraints, [ParameterConstraint('a < d')])