def test_orphaned_add_collision(self): netlist = self.gen_netlist() lib1 = sdn.Library() lib1["EDIF.identifier"] = '&1' netlist.add_library(lib1) lib2 = sdn.Library() lib2["EDIF.identifier"] = '&1' netlist.add_library(lib2)
def test_library_name(self): definition = sdn.Definition() library = sdn.Library() library.add_definition(definition) self.assertTrue('Library.name undefined' in definition.__str__()) library.name = 'library' self.assertTrue('Library.name \'library\'' in definition.__str__())
def test_get_cables_in_library(self): library = sdn.Library() definition = library.create_definition() cable = definition.create_cable() cable.name = "MY_PORT" instance = sdn.Instance() instance.reference = definition port1 = next(library.get_cables("MY_PORT")) self.assertEqual(cable, port1)
def test_get_ports_in_library(self): library = sdn.Library() definition = library.create_definition() port = definition.create_port() port.name = "MY_PORT" instance = sdn.Instance() instance.reference = definition port1 = next(library.get_ports("MY_PORT")) self.assertEqual(port, port1)
def test_parameter_checking(self): library = sdn.Library() definition = library.create_definition() definition.name = "MY_DEF" self.assertRaises(TypeError, sdn.get_wires, library, "MY_DEF") self.assertRaises(TypeError, sdn.get_wires, library, unsupported_keyword=None) self.assertRaises(TypeError, sdn.get_wires, library, selection=None) self.assertRaises(TypeError, sdn.get_wires, None) self.assertRaises(TypeError, sdn.get_wires, [None, library])
def test_naming_after_assignments(self): library = sdn.Library() definition = library.create_definition() definition2 = library.create_definition() definition.name = "Hello" definition.name = "World" definition2.name = "Hello" caught_conflict = False try: definition2.name = "World" except ValueError: caught_conflict = True self.assertTrue(caught_conflict)
def setUp(self): self.library = sdn.Library()
def test_href_valid(self): instance = sdn.Instance() href = HRef.from_parent_and_item(None, instance) self.assertFalse(href.is_valid) definition = sdn.Definition() instance.reference = definition self.assertFalse(href.is_valid) library = sdn.Library() library.add_definition(definition) self.assertFalse(href.is_valid) netlist = sdn.Netlist() netlist.add_library(library) self.assertFalse(href.is_valid) netlist.top_instance = instance self.assertTrue(href.is_valid) cable = sdn.Cable() wire = sdn.Wire() href = HRef.from_sequence([instance, cable, wire]) self.assertFalse(href.is_valid) cable.add_wire(wire) self.assertFalse(href.is_valid) definition.add_cable(cable) self.assertTrue(href.is_valid) instance.reference = None self.assertFalse(href.is_valid) port = sdn.Port() pin = sdn.InnerPin() href = HRef.from_sequence([instance, port, pin]) self.assertFalse(href.is_valid) port.add_pin(pin) self.assertFalse(href.is_valid) definition.add_port(port) self.assertFalse(href.is_valid) instance.reference = definition self.assertTrue(href.is_valid) higher_definition = library.create_definition() higher_definition.add_child(instance) self.assertTrue(href.is_valid) higher_instance = sdn.Instance() higher_instance.reference = higher_definition netlist.top_instance = higher_instance self.assertFalse(href.is_valid) href = HRef.from_sequence([higher_instance, instance, cable, wire]) self.assertTrue(href.is_valid) higher_instance.reference = None self.assertFalse(href.is_valid) higher_definition.remove_child(instance) self.assertFalse(href.is_valid) definition.remove_cable(cable) self.assertFalse(href.is_valid) cable.remove_wire(wire) self.assertFalse(href.is_valid) cable.add_wire(wire) href = HRef.from_sequence([cable, wire]) self.assertFalse(href.is_valid) cable.remove_wire(wire) new_cable = sdn.Cable() new_cable.add_wire(wire) self.assertFalse(href.is_valid) href = HRef.from_parent_and_item(None, wire) self.assertFalse(href.is_valid) port.remove_pin(pin) new_port = sdn.Port() new_port.add_pin(pin) href = HRef.from_sequence([port, pin]) self.assertFalse(href.is_valid) href = HRef.from_parent_and_item(None, pin) self.assertFalse(href.is_valid) href = HRef.from_parent_and_item(None, definition) self.assertFalse(href.is_valid)
def test_dont_track_orphaned(self): netlist = self.gen_netlist() lib1 = sdn.Library() lib2 = sdn.Library() lib1['EDIF.identifier'] = "my_lib1" lib2['EDIF.identifier'] = "my_lib1"
def test_remove_libraries_from_outside_netlist(self): library1 = self.netlist.create_library() library2 = sdn.Library() self.netlist.remove_libraries_from([library1, library2])
def test_add_library(self): library = sdn.Library() self.netlist.add_library(library, position=0) self.assertTrue(library in self.netlist.libraries) self.assertEqual(library.netlist, self.netlist) self.assertEqual(list(self.netlist.libraries).count(library), 1)
def test_assign_library(self): library = sdn.Library() self.definition.library = library
def test_collection(self): library = sdn.Library() definition = library.create_definition() definition.name = "MY_DEF" ports = list(sdn.get_definitions([library, library])) self.assertEqual(len(ports), 1)
def test_no_parent_netlist_name(self): netlist = sdn.Netlist() library = sdn.Library() netlist.add_library(library) self.assertTrue('parent netlist.name undefined' in library.__str__())
def test_no_parent_netlist(self): library = sdn.Library() self.assertTrue('parent netlist undefined' in library.__str__())