示例#1
0
 def test_export_suffix_generator(self):
     m = block()
     m.s0 = suffix(direction=suffix.LOCAL)
     m.s0i = suffix(direction=suffix.LOCAL,
                   datatype=suffix.INT)
     m.s1 = suffix(direction=suffix.IMPORT_EXPORT)
     m.s1i = suffix(direction=suffix.IMPORT_EXPORT,
                    datatype=suffix.INT)
     m.s2 = suffix(direction=suffix.IMPORT)
     m.s2i = suffix(direction=suffix.IMPORT,
                   datatype=suffix.INT)
     m.s3 = suffix(direction=suffix.EXPORT)
     m.s3i = suffix(direction=suffix.EXPORT,
                    datatype=suffix.INT)
     m.b = block()
     m.b.s0 = suffix(direction=suffix.LOCAL)
     m.b.s0i = suffix(direction=suffix.LOCAL,
                      datatype=suffix.INT)
     m.b.s1 = suffix(direction=suffix.IMPORT_EXPORT)
     m.b.s1i = suffix(direction=suffix.IMPORT_EXPORT,
                      datatype=suffix.INT)
     m.b.s2 = suffix(direction=suffix.IMPORT)
     m.b.s2i = suffix(direction=suffix.IMPORT,
                      datatype=suffix.INT)
     m.b.s3 = suffix(direction=suffix.EXPORT)
     m.b.s3i = suffix(direction=suffix.EXPORT,
                      datatype=suffix.INT)
     # default
     self.assertEqual([id(c_) for c_
                       in export_suffix_generator(m)],
                      [id(m.s1), id(m.s1i),
                       id(m.s3), id(m.s3i),
                       id(m.b.s1), id(m.b.s1i),
                       id(m.b.s3), id(m.b.s3i)])
     # descend_into=False
     self.assertEqual([id(c_) for c_
                       in export_suffix_generator(m,
                                                  descend_into=False)],
                      [id(m.s1), id(m.s1i),
                       id(m.s3), id(m.s3i)])
     # datatype=INT
     self.assertEqual([id(c_) for c_
                       in export_suffix_generator(m,
                                                  datatype=suffix.INT)],
                      [id(m.s1i),
                       id(m.s3i),
                       id(m.b.s1i),
                       id(m.b.s3i)])
     # active=True
     m.s1.deactivate()
     m.b.deactivate()
     self.assertEqual([id(c_) for c_ in export_suffix_generator(m,
                                                                active=True)],
                      [id(m.s1i), id(m.s3), id(m.s3i)])
示例#2
0
 def test_export_suffix_generator(self):
     m = block()
     m.s0 = suffix(direction=suffix.LOCAL)
     m.s0i = suffix(direction=suffix.LOCAL,
                   datatype=suffix.INT)
     m.s1 = suffix(direction=suffix.IMPORT_EXPORT)
     m.s1i = suffix(direction=suffix.IMPORT_EXPORT,
                    datatype=suffix.INT)
     m.s2 = suffix(direction=suffix.IMPORT)
     m.s2i = suffix(direction=suffix.IMPORT,
                   datatype=suffix.INT)
     m.s3 = suffix(direction=suffix.EXPORT)
     m.s3i = suffix(direction=suffix.EXPORT,
                    datatype=suffix.INT)
     m.b = block()
     m.b.s0 = suffix(direction=suffix.LOCAL)
     m.b.s0i = suffix(direction=suffix.LOCAL,
                      datatype=suffix.INT)
     m.b.s1 = suffix(direction=suffix.IMPORT_EXPORT)
     m.b.s1i = suffix(direction=suffix.IMPORT_EXPORT,
                      datatype=suffix.INT)
     m.b.s2 = suffix(direction=suffix.IMPORT)
     m.b.s2i = suffix(direction=suffix.IMPORT,
                      datatype=suffix.INT)
     m.b.s3 = suffix(direction=suffix.EXPORT)
     m.b.s3i = suffix(direction=suffix.EXPORT,
                      datatype=suffix.INT)
     # default
     self.assertEqual([id(c_) for c_
                       in export_suffix_generator(m)],
                      [id(m.s1), id(m.s1i),
                       id(m.s3), id(m.s3i),
                       id(m.b.s1), id(m.b.s1i),
                       id(m.b.s3), id(m.b.s3i)])
     # descend_into=False
     self.assertEqual([id(c_) for c_
                       in export_suffix_generator(m,
                                                  descend_into=False)],
                      [id(m.s1), id(m.s1i),
                       id(m.s3), id(m.s3i)])
     # datatype=INT
     self.assertEqual([id(c_) for c_
                       in export_suffix_generator(m,
                                                  datatype=suffix.INT)],
                      [id(m.s1i),
                       id(m.s3i),
                       id(m.b.s1i),
                       id(m.b.s3i)])
     # active=True
     m.s1.deactivate()
     m.b.deactivate()
     self.assertEqual([id(c_) for c_ in export_suffix_generator(m,
                                                                active=True)],
                      [id(m.s1i), id(m.s3), id(m.s3i)])
示例#3
0
    def _get_suffixes(self, instance):
        if isinstance(instance, IBlock):
            suffixes = ((suf.name, suf) for suf in export_suffix_generator(
                instance, datatype=Suffix.INT, active=True, descend_into=False)
                        )
        else:
            suffixes = active_export_suffix_generator(instance,
                                                      datatype=Suffix.INT)
        suffixes = dict(suffixes)

        if self.SUFFIX_PRIORITY_NAME not in suffixes:
            raise ValueError(
                "Cannot write branching priorities file as `model.%s` Suffix has not been declared."
                % (self.SUFFIX_PRIORITY_NAME, ))

        return (
            suffixes[self.SUFFIX_PRIORITY_NAME],
            suffixes.get(self.SUFFIX_DIRECTION_NAME, ComponentMap()),
        )