コード例 #1
0
    def test_deserialize(self) -> None:
        data = dict(
            external_parameters={'ilse', 'albert', 'voltage'},
            is_interruptable=True,
            subtemplates = [
                dict(template=str(id(self.table_foo)), mappings=self.foo_mappings),
                dict(template=str(id(self.table)), mappings=dict())
            ],
            identifier='foo'
        )

        # prepare dependencies for deserialization
        self.serializer.subelements[str(id(self.table_foo))] = self.table_foo
        self.serializer.subelements[str(id(self.table))] = self.table

        # deserialize
        sequence = SequencePulseTemplate.deserialize(self.serializer, **data)

        # compare!
        self.assertEqual(data['external_parameters'], sequence.parameter_names)
        self.assertEqual({ParameterDeclaration('ilse'), ParameterDeclaration('albert'), ParameterDeclaration('voltage')},
                         sequence.parameter_declarations)
        self.assertIs(self.table_foo, sequence.subtemplates[0][0])
        self.assertIs(self.table, sequence.subtemplates[1][0])
        self.assertEqual(self.foo_mappings, {k: m.string for k,m in sequence.subtemplates[0][1].items()})
        self.assertEqual(dict(), sequence.subtemplates[1][1])
        self.assertEqual(data['identifier'], sequence.identifier)
コード例 #2
0
    def test_deserialize(self) -> None:
        dummy1 = DummyPulseTemplate()
        dummy2 = DummyPulseTemplate()

        serializer = DummySerializer(serialize_callback=lambda x: str(id(x)))

        data = dict(subtemplates=[
            serializer.dictify(dummy1),
            serializer.dictify(dummy2)
        ],
                    identifier='foo',
                    parameter_constraints=['a<b'])

        template = SequencePulseTemplate.deserialize(serializer, **data)
        self.assertEqual(template.subtemplates, [dummy1, dummy2])
        self.assertEqual(template.parameter_constraints,
                         [ParameterConstraint('a<b')])
コード例 #3
0
    def test_deserialize(self) -> None:
        foo_mappings = {k: Expression(v) for k, v in self.foo_mappings.items()}
        data = dict(
            external_parameters={'ilse', 'albert', 'voltage'},
            is_interruptable=True,
            subtemplates=[
                dict(template=str(id(self.table_foo)),
                     mappings={k: str(id(v))
                               for k, v in foo_mappings.items()}),
                dict(template=str(id(self.table)), mappings=dict())
            ],
            identifier='foo')

        # prepare dependencies for deserialization
        self.serializer.subelements[str(id(self.table_foo))] = self.table_foo
        self.serializer.subelements[str(id(self.table))] = self.table
        for v in foo_mappings.values():
            self.serializer.subelements[str(id(v))] = v

        # deserialize
        sequence = SequencePulseTemplate.deserialize(self.serializer, **data)

        # compare!
        self.assertEqual(data['external_parameters'], sequence.parameter_names)
        self.assertEqual(
            {
                ParameterDeclaration('ilse'),
                ParameterDeclaration('albert'),
                ParameterDeclaration('voltage')
            }, sequence.parameter_declarations)
        self.assertIs(self.table_foo, sequence.subtemplates[0][0])
        self.assertIs(self.table, sequence.subtemplates[1][0])
        #self.assertEqual(self.foo_mappings, {k: m.string for k,m in sequence.subtemplates[0][1].items()})
        self.assertEqual(foo_mappings, sequence.subtemplates[0][1])
        self.assertEqual(dict(), sequence.subtemplates[1][1])
        self.assertEqual(data['identifier'], sequence.identifier)