def test_lookup_library(self):
     library = self.netlist.libraries[0]
     library_name = library.name
     lib1 = next(self.netlist.get_libraries(library_name))
     self.assertEqual(library, lib1)
     lib2 = next(self.netlist.get_libraries(library_name, key='EDIF.identifier'))
     self.assertEqual(library, lib2)
     lib3 = next(sdn.get_libraries(self.netlist, library_name))
     self.assertEqual(library, lib3)
     lib4 = next(sdn.get_libraries(self.netlist, library_name, key='EDIF.identifier'))
     self.assertEqual(library, lib4)
예제 #2
0
 def test_unique_query_return(self):
     library_query = list(
         sdn.get_libraries([self.netlist, self.netlist.top_instance],
                           "work"))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[1])
예제 #3
0
 def test_get_library_from_wire(self):
     library_query = list(
         sdn.get_libraries(
             self.netlist.top_instance.reference.cables[0].wires[0]))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[1])
예제 #4
0
 def compare(self):
     # try:
     assert self.get_identifier(self.ir_orig) == self.get_identifier(self.ir_composer), \
         "Environments do not have the same identifier"
     assert self.get_original_identifier(self.ir_orig) == self.get_original_identifier(self.ir_composer), \
         "Environments do not have the same original identifier"
     # if there is no top instance in either then this test passes.
     if (self.ir_composer.top_instance != None
             or self.ir_orig.top_instance != None):
         self.compare_instances(self.ir_orig.top_instance,
                                self.ir_composer.top_instance)
     assert len(self.ir_orig.libraries) == len(self.ir_composer.libraries), \
         "Environments do not have the same number of libraries"
     # except Exception:
     #     import pdb; pdb.set_trace()
     for orig_library in self.ir_orig.libraries:
         if orig_library.name == None:
             # ports with no name are not compared
             print(
                 "WARNING: library with name == None exists and is not compared"
             )
             continue
         else:
             patterns = orig_library.name
         composer_library = next(
             sdn.get_libraries(self.ir_composer, patterns))
         self.compare_libraries(orig_library, composer_library)
예제 #5
0
 def test_get_library_of_inside_outside(self):
     library_query = list(
         sdn.get_libraries(self.netlist.libraries[0].definitions[0],
                           selection="OUTSIDE"))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[1])
예제 #6
0
 def test_get_library_of_inside_inside_recursive(self):
     library_query = list(
         sdn.get_libraries(self.netlist.top_instance.reference,
                           selection="INSIDE",
                           recursive=True))
     self.assertTrue(
         len(library_query) == 2
         and all(x in library_query for x in self.netlist.libraries))
예제 #7
0
 def test_single_object(self):
     netlist = sdn.Netlist()
     library1 = netlist.create_library()
     library1.name = "work"
     library2 = netlist.create_library()
     library2.name = "hdi_primitives"
     library = next(get_libraries(netlist, "work"))
     self.assertEqual(library1, library)
예제 #8
0
 def test_get_library_of_library_recursive_up(self):
     library_query = list(
         sdn.get_libraries(self.netlist.libraries[0],
                           selection="OUTSIDE",
                           recursive=True))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] is self.netlist.libraries[1])
예제 #9
0
 def test_get_library_of_library_recursive_down(self):
     library_query = list(
         sdn.get_libraries(self.netlist.libraries[1],
                           selection="INSIDE",
                           recursive=True))
     self.assertTrue(
         len(library_query) == 2
         and all(x in library_query for x in self.netlist.libraries))
예제 #10
0
 def test_get_library_of_instances_inside(self):
     library_query = list(
         sdn.get_libraries(
             self.netlist.libraries[0].definitions[0].references,
             selection="INSIDE"))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[0])
예제 #11
0
 def test_get_library_from_href(self):
     href = next(sdn.get_hinstances(self.netlist.top_instance))
     library_query = list(sdn.get_libraries(href))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[1])
예제 #12
0
 def test_get_library_from_inner_pins(self):
     library_query = list(
         sdn.get_libraries(self.leaf_inst.reference.ports[0].pins[0]))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[0])
예제 #13
0
 def test_get_library_from_outer_pins(self):
     library_query = list(sdn.get_libraries(self.leaf_inst.pins))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[0])
예제 #14
0
 def test_get_library_of_instances_recursive_down(self):
     library_query = list(
         sdn.get_libraries(self.netlist.top_instance, recursive=True))
     self.assertTrue(
         len(library_query) == 2
         and all(x in library_query for x in self.netlist.libraries))
예제 #15
0
 def test_absolute_pattern_from_relative_query(self):
     library_query = list(
         sdn.get_libraries(self.netlist.top_instance, "work"))
     self.assertTrue(
         len(library_query) == 1
         and library_query[0] == self.netlist.libraries[1])
예제 #16
0
 def test_collection(self):
     netlist = sdn.Netlist()
     library = netlist.create_library()
     library.name = "MY_LIB"
     ports = list(sdn.get_libraries([netlist, netlist]))
     self.assertEqual(len(ports), 1)
예제 #17
0
 def test_multiple_objects(self):
     netlist1 = sdn.Netlist()
     library1 = netlist1.create_library()
     netlist2 = sdn.Netlist()
     library2 = netlist2.create_library()
     get_libraries([netlist1, netlist2])