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)
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])
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])
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)
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])
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))
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)
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])
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))
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])
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])
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])
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])
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))
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])
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)
def test_multiple_objects(self): netlist1 = sdn.Netlist() library1 = netlist1.create_library() netlist2 = sdn.Netlist() library2 = netlist2.create_library() get_libraries([netlist1, netlist2])