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)
Beispiel #2
0
 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__())
Beispiel #3
0
 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)
Beispiel #4
0
 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)
Beispiel #5
0
 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])
Beispiel #6
0
 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)
Beispiel #7
0
 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"
Beispiel #10
0
 def test_remove_libraries_from_outside_netlist(self):
     library1 = self.netlist.create_library()
     library2 = sdn.Library()
     self.netlist.remove_libraries_from([library1, library2])
Beispiel #11
0
 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)
Beispiel #12
0
 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)
Beispiel #14
0
 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__())
Beispiel #15
0
 def test_no_parent_netlist(self):
     library = sdn.Library()
     self.assertTrue('parent netlist undefined' in library.__str__())