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)])
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)])
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()), )