def test_analyses_instantiate_lomanalysis(self): """Test instantiation of LOManalysis.""" try: design = designs.DesignPlanar() LOManalysis(design) except Exception: self.fail("LOManalysis failed.")
def test_component_rectangle_hollow_options(self): """Test that default options of rectangle_hollow in rectangle_hollow.py were not accidentally changed.""" # Setup expected test results _design = designs.DesignPlanar() _rectangle_hollow = rectangle_hollow.RectangleHollow(_design, 'my_name') _options = _rectangle_hollow.default_options # Test all elements of the result data against expected data self.assertEqual(len(_options), 10) self.assertEqual(_options['width'], '500um') self.assertEqual(_options['height'], '300um') self.assertEqual(_options['pos_x'], '0um') self.assertEqual(_options['pos_y'], '0um') self.assertEqual(_options['rotation'], '0') self.assertEqual(_options['subtract'], 'False') self.assertEqual(_options['helper'], 'False') self.assertEqual(_options['chip'], 'main') self.assertEqual(_options['layer'], '1') self.assertEqual(len(_options['inner']), 5) self.assertEqual(_options['inner']['width'], '250um') self.assertEqual(_options['inner']['height'], '100um') self.assertEqual(_options['inner']['offset_x'], '40um') self.assertEqual(_options['inner']['offset_y'], '-20um') self.assertEqual(_options['inner']['rotation'], '15')
def test_component_transmon_cross_options(self): """Test that default options of transmon_cross in transmon_cross.py were not accidentally changed.""" # Setup expected test results _design = designs.DesignPlanar() _transmon_cross = transmon_cross.TransmonCross(_design, 'my_name') _options = _transmon_cross.default_options # Test all elements of the result data against expected data self.assertEqual(len(_options), 8) self.assertEqual(_options['pos_x'], '0um') self.assertEqual(_options['pos_y'], '0um') self.assertEqual(_options['cross_width'], '20um') self.assertEqual(_options['cross_length'], '200um') self.assertEqual(_options['cross_gap'], '20um') self.assertEqual(_options['orientation'], '0') self.assertEqual(_options['layer'], '1') self.assertEqual(len(_options['_default_connection_pads']), 6) self.assertEqual(_options['_default_connection_pads']['connector_type'], '0') self.assertEqual(_options['_default_connection_pads']['claw_length'], '30um') self.assertEqual(_options['_default_connection_pads']['ground_spacing'], '5um') self.assertEqual(_options['_default_connection_pads']['claw_width'], '10um') self.assertEqual(_options['_default_connection_pads']['claw_gap'], '6um') self.assertEqual( _options['_default_connection_pads']['connector_location'], '0')
def test_renderer_instantiate_gdsrender(self): """Test instantiation of QGDSRenderer in gds_renderer.py.""" design = designs.DesignPlanar() try: QGDSRenderer(design) except Exception: self.fail("QGDSRenderer(design) failed") try: QGDSRenderer(design, initiate=False) except Exception: self.fail("QGDSRenderer(design, initiate=False) failed") try: QGDSRenderer(design, initiate=False, render_template={}) except Exception: self.fail( "QGDSRenderer(design, initiate=False, render_template={}) failed" ) try: QGDSRenderer(design, initiate=False, render_options={}) except Exception: self.fail( "QGDSRenderer(design, initiate=False, render_options={}) failed" )
def test_qlibrary_cpw_finger_cap_options(self): """Test that default options of CapNInterdigital in cap_n_interdigital.py were not accidentally changed.""" # Setup expected test results design = designs.DesignPlanar() finger_cap = CapNInterdigital(design, 'my_name') options = finger_cap.default_options # Test all elements of the result data against expected data self.assertEqual(len(options), 15) self.assertEqual(options['north_width'], '10um') self.assertEqual(options['north_gap'], '6um') self.assertEqual(options['south_width'], '10um') self.assertEqual(options['south_gap'], '6um') self.assertEqual(options['cap_width'], '10um') self.assertEqual(options['cap_gap'], '6um') self.assertEqual(options['cap_gap_ground'], '6um') self.assertEqual(options['finger_length'], '20um') self.assertEqual(options['finger_count'], '5') self.assertEqual(options['cap_distance'], '50um') self.assertEqual(options['pos_x'], '0um') self.assertEqual(options['pos_y'], '0um') self.assertEqual(options['orientation'], '0') self.assertEqual(options['chip'], 'main') self.assertEqual(options['layer'], '1')
def test_renderer_qq3d_render_options(self): """Test that defaults in QQ3DRenderer were not accidentally changed.""" design = designs.DesignPlanar() renderer = QQ3DRenderer(design, initiate=False) options = renderer.q3d_options self.assertEqual(renderer.name, 'q3d') self.assertEqual(len(options), 4) self.assertEqual(len(options['add_setup']), 12) self.assertEqual(len(options['get_capacitance_matrix']), 3) self.assertEqual(options['material_type'], 'pec') self.assertEqual(options['material_thickness'], '200nm') self.assertEqual(options['add_setup']['freq_ghz'], '5.0') self.assertEqual(options['add_setup']['name'], 'Setup') self.assertEqual(options['add_setup']['save_fields'], 'False') self.assertEqual(options['add_setup']['enabled'], 'True') self.assertEqual(options['add_setup']['max_passes'], '15') self.assertEqual(options['add_setup']['min_passes'], '2') self.assertEqual(options['add_setup']['min_converged_passes'], '2') self.assertEqual(options['add_setup']['percent_error'], '0.5') self.assertEqual(options['add_setup']['percent_refinement'], '30') self.assertEqual(options['add_setup']['auto_increase_solution_order'], 'True') self.assertEqual(options['add_setup']['solution_order'], 'High') self.assertEqual(options['add_setup']['solver_type'], 'Iterative') self.assertEqual(options['get_capacitance_matrix']['variation'], '') self.assertEqual(options['get_capacitance_matrix']['solution_kind'], 'AdaptivePass') self.assertEqual(options['get_capacitance_matrix']['pass_number'], '3')
def test_renderer_renderer_base_element_table_data(self): """Test element_table_data in QRenderer.""" design = designs.DesignPlanar() renderer = QRenderer(design) etd = renderer.element_table_data self.assertEqual(len(etd), 0)
def test_qlibrary_qubits_transmon_cross_fl(self): """Test the instantiation of TransmonCrossFL.""" design = designs.DesignPlanar() try: TransmonCrossFL except Exception: self.fail("TransmonCrossFL failed") try: TransmonCrossFL(design, "my_name") except Exception: self.fail("TransmonCrossFL(design, \"my_name\") failed") try: TransmonCrossFL(design, "my_name2", options={}) except Exception: self.fail( "TransmonCrossFL(design, \"my_name2\", options={}) failed") try: TransmonCrossFL(design, "my_name3", options={}, make=False) except Exception: self.fail( "TransmonCrossFL(design, \"my_name3\", options={}, make=False)" )
def test_qlibrary_instantiate_qcomponent(self): """Test the instantiaion of QComponent.""" design = designs.DesignPlanar() try: QComponent except Exception: self.fail("QComponent failed") with self.assertRaises(NotImplementedError): QComponent(design, "my_name") with self.assertRaises(NotImplementedError): QComponent(design, "my_name2", options={}) try: QComponent(design, "my_name3", options={}, make=False) except Exception: self.fail( "QComponent(design, \"my_name3\", options={}, make=False)") try: QComponent(design, "my_name4", options={}, make=False, component_template={}) except Exception: msg = "QComponent(design, \"my_name4\", options={}, make=False, component_template={})" self.fail(msg)
def test_qlibrary_instantiate_q_route(self): """Test the instantiation of QRoute.""" design = designs.DesignPlanar() try: QRoute(design, name='test_qroute', options={}) except Exception: self.fail("QRoute failed")
def test_qlibrary_instantiate_launch_v2(self): """Test the instantiation of LaunchpadWirebondCoupled.""" design = designs.DesignPlanar() try: LaunchpadWirebondCoupled except Exception: self.fail("LaunchpadWirebondCoupled failed") try: LaunchpadWirebondCoupled(design, "my_name") except Exception: self.fail("LaunchpadWirebondCoupled(design, \"my_name\")") try: LaunchpadWirebondCoupled(design, "my_name2", options={}) except Exception: self.fail( "LaunchpadWirebondCoupled(design, \"my_name2\", options={})") try: LaunchpadWirebondCoupled(design, "my_name3", options={}, make=False) except Exception: self.fail( "LaunchpadWirebondCoupled(design, \"my_name3\", options={}, make=False)" )
def test_qlibrary_star_qubit_options(self): """Test that default options of transmon_concentric in star_qubit.py were not accidentally changed.""" # Setup expected test results design = designs.DesignPlanar() my_star_qubit = star_qubit.StarQubit(design, 'my_name') options = my_star_qubit.default_options self.assertEqual(len(options), 18) self.assertEqual(options['radius'], '300um') self.assertEqual(options['center_radius'], '100um') self.assertEqual(options['gap_couplers'], '25um') self.assertEqual(options['gap_readout'], '10um') self.assertEqual(options['connector_length'], '75um') self.assertEqual(options['trap_offset'], '20um') self.assertEqual(options['junc_h'], '100um') self.assertEqual(options['cpw_width'], '0.01') self.assertEqual(options['rotation_cpl1'], '0.0') self.assertEqual(options['rotation_cpl2'], '72.0') self.assertEqual(options['rotation_rdout'], '144.0') self.assertEqual(options['rotation_cpl3'], '216.0') self.assertEqual(options['rotation_cpl4'], '288.0') self.assertEqual(options['number_of_connectors'], '4') self.assertEqual(options['resolution'], '16') self.assertEqual(options['cap_style'], 'round') self.assertEqual(options['subtract'], 'False') self.assertEqual(options['helper'], 'False')
def test_analyses_instantiate_sweeping(self): """Test instantiation of Sweeping in analytic_transmon.py.""" try: design = designs.DesignPlanar() Sweeping(design) except Exception: self.fail("Sweeping failed")
def test_analyses_instantiate_epranalysis(self): """Test instantiation of EPRanalysis.""" try: design = designs.DesignPlanar() EPRanalysis(design) except Exception: self.fail("EPRanalysis failed.")
def test_qlibrary_delete_component(self): """ Test delete_component in element_handler.py. """ design = designs.DesignPlanar() transmon_pocket.TransmonPocket(design, 'Q1') transmon_pocket.TransmonPocket(design, 'Q2') transmon_pocket.TransmonPocket(design, 'Q3') before_junction_list = design.qgeometry.tables['junction'][ 'component'].tolist() before_poly_list = design.qgeometry.tables['poly']['component'].tolist( ) component_id = design.components['Q2'].id design.qgeometry.delete_component_id(component_id) after_junction_list = design.qgeometry.tables['junction'][ 'component'].tolist() after_poly_list = design.qgeometry.tables['poly']['component'].tolist() self.assertTrue(component_id in before_junction_list) self.assertTrue(component_id in before_poly_list) self.assertFalse(component_id in after_junction_list) self.assertFalse(component_id in after_poly_list)
def test_qlibrary_qubits_transmon_pocket_teeth(self): """Test the instantiation of TransmonPocketTeeth.""" design = designs.DesignPlanar() try: TransmonPocketTeeth except Exception: self.fail("TransmonPocketTeeth failed") try: TransmonPocketTeeth(design, "my_name") except Exception: self.fail("TransmonPocketTeeth(design, \"my_name\") failed") try: TransmonPocketTeeth(design, "my_name2", options={}) except Exception: self.fail( "TransmonPocketTeeth(design, \"my_name2\", options={}) failed") try: TransmonPocketTeeth(design, "my_name3", options={}, make=False) except Exception: self.fail( "TransmonPocketTeeth(design, \"my_name3\", options={}, make=False)" )
def test_renderer_instantiate_qhfss_renderer(self): """Test instantiation of QHFSSRenderer in q3d_render.py.""" design = designs.DesignPlanar() try: QHFSSRenderer(design, initiate=False) except Exception: self.fail("QHFSSRenderer failed")
def test_qlibrary_qubits_tunable_coupler_01(self): """Test the instantiation of TunableCoupler01.""" design = designs.DesignPlanar() try: TunableCoupler01 except Exception: self.fail("TunableCoupler01 failed") try: TunableCoupler01(design, "my_name") except Exception: self.fail("TunableCoupler01(design, \"my_name\") failed") try: TunableCoupler01(design, "my_name2", options={}) except Exception: self.fail( "TunableCoupler01(design, \"my_name2\", options={}) failed") try: TunableCoupler01(design, "my_name3", options={}, make=False) except Exception: self.fail( "TunableCoupler01(design, \"my_name3\", options={}, make=False)" )
def test_renderer_hfss_render_options(self): """Test that defaults in QHFSSRender were not accidentally changed.""" design = designs.DesignPlanar() renderer = QHFSSRenderer(design, initiate=False) options = renderer.hfss_options self.assertEqual(renderer.name, 'hfss') self.assertEqual(len(options), 3) self.assertEqual(len(options['drivenmodal_setup']), 8) self.assertEqual(len(options['eigenmode_setup']), 9) self.assertEqual(options['port_inductor_gap'], '10um') self.assertEqual(options['drivenmodal_setup']['freq_ghz'], '5') self.assertEqual(options['drivenmodal_setup']['name'], "Setup") self.assertEqual(options['drivenmodal_setup']['max_delta_s'], '0.1') self.assertEqual(options['drivenmodal_setup']['max_passes'], '10') self.assertEqual(options['drivenmodal_setup']['min_passes'], '1') self.assertEqual(options['drivenmodal_setup']['min_converged'], '1') self.assertEqual(options['drivenmodal_setup']['pct_refinement'], '30') self.assertEqual(options['drivenmodal_setup']['basis_order'], '1') self.assertEqual(options['eigenmode_setup']['name'], "Setup") self.assertEqual(options['eigenmode_setup']['min_freq_ghz'], '1') self.assertEqual(options['eigenmode_setup']['n_modes'], '1') self.assertEqual(options['eigenmode_setup']['max_delta_f'], '0.5') self.assertEqual(options['eigenmode_setup']['max_passes'], '10') self.assertEqual(options['eigenmode_setup']['min_passes'], '1') self.assertEqual(options['eigenmode_setup']['min_converged'], '1') self.assertEqual(options['eigenmode_setup']['pct_refinement'], '30') self.assertEqual(options['eigenmode_setup']['basis_order'], '-1')
def test_qgeometry_q_element_add_renderer_extension(self): """Test add_renderer_extension in QGeometryTables class in element_handler.py.""" design = designs.DesignPlanar() qgt = QGeometryTables(design) qgt.add_renderer_extension( 'new_name', dict(base=dict(color=str, klayer=int), path=dict(thickness=float), poly=dict(material=str))) e_c = qgt.ELEMENT_COLUMNS self.assertTrue('color' in e_c['base']['__renderers__']['new_name']) self.assertTrue('klayer' in e_c['base']['__renderers__']['new_name']) self.assertTrue('thickness' in e_c['path']['__renderers__']['new_name']) self.assertTrue('material' in e_c['poly']['__renderers__']['new_name']) self.assertEqual(e_c['base']['__renderers__']['new_name']['color'], str) self.assertEqual(e_c['base']['__renderers__']['new_name']['klayer'], int) self.assertEqual(e_c['path']['__renderers__']['new_name']['thickness'], float) self.assertEqual(e_c['poly']['__renderers__']['new_name']['material'], str)
def test_renderer_instanitate_qansys_renderer(self): """Test instantiation of QAnsysRenderer in ansys_renderer.py""" design = designs.DesignPlanar() try: QAnsysRenderer(design) except Exception: self.fail("QAnsysRenderer() failed")
def test_qgeometry_q_element_create_tables(self): """Test create_tables in QGeometryTables class in element_handler.py.""" design = designs.DesignPlanar() qgt = QGeometryTables(design) qgt.create_tables() actual = qgt.tables self.assertEqual(len(actual), 3) self.assertTrue('path' in actual) self.assertTrue('poly' in actual) self.assertTrue('junction' in actual) self.assertEqual(actual['path'].dtypes['component'], object) self.assertEqual(actual['path'].dtypes['name'], object) self.assertEqual(actual['path'].dtypes['subtract'], bool) self.assertEqual(actual['path'].dtypes['helper'], bool) self.assertEqual(actual['path'].dtypes['chip'], object) self.assertEqual(actual['path'].dtypes['fillet'], object) self.assertEqual(actual['poly'].dtypes['component'], object) self.assertEqual(actual['poly'].dtypes['name'], object) self.assertEqual(actual['poly'].dtypes['subtract'], bool) self.assertEqual(actual['poly'].dtypes['helper'], bool) self.assertEqual(actual['poly'].dtypes['chip'], object) self.assertEqual(actual['poly'].dtypes['fillet'], object) self.assertEqual(actual['junction'].dtypes['component'], object) self.assertEqual(actual['junction'].dtypes['name'], object) self.assertEqual(actual['junction'].dtypes['subtract'], bool) self.assertEqual(actual['junction'].dtypes['helper'], bool) self.assertEqual(actual['junction'].dtypes['chip'], object) self.assertEqual(actual['junction'].dtypes['width'], float)
def test_qlibrary_tunable_coupler_01_options(self): """Test that default_options of tunable_coupler_01 were not accidentally changed.""" # Setup expected test results design = designs.DesignPlanar() tunable_coupler = TunableCoupler01(design, 'my_name') options = tunable_coupler.default_options self.assertEqual(len(options), 17) self.assertEqual(options['pos_x'], '0um') self.assertEqual(options['pos_y'], '0um') self.assertEqual(options['orientation'], '0') self.assertEqual(options['layer'], '1') self.assertEqual(options['c_width'], '400um') self.assertEqual(options['l_width'], '20um') self.assertEqual(options['l_gap'], '10um') self.assertEqual(options['a_height'], '60um') self.assertEqual(options['cp_height'], '15um') self.assertEqual(options['cp_arm_length'], '30um') self.assertEqual(options['cp_arm_width'], '6um') self.assertEqual(options['cp_gap'], '6um') self.assertEqual(options['cp_gspace'], '3um') self.assertEqual(options['fl_width'], '5um') self.assertEqual(options['fl_gap'], '3um') self.assertEqual(options['fl_length'], '10um') self.assertEqual(options['fl_ground'], '2um')
def test_qgeometry_q_element_delete_component_id(self): """Test delete_component_id in QGeometryTables class in element_handler.py.""" design = designs.DesignPlanar() qgt = QGeometryTables(design) qgt.clear_all_tables() transmon_pocket = TransmonPocket(design, 'my_id') transmon_pocket.make() transmon_pocket.get_template_options(design) a_linestring = draw.LineString([[0, 0], [0, 1]]) a_poly = draw.rectangle(2, 2, 0, 0) qgt.add_qgeometry('path', 'my_id', {'n_sprial': a_linestring}, width=4000) qgt.add_qgeometry('poly', 'my_id', {'n_spira_etch': a_poly}, subtract=True) self.assertEqual(len(qgt.tables['path']), 1) self.assertEqual(len(qgt.tables['poly']), 1) qgt.delete_component_id('my_id') self.assertEqual(len(qgt.tables['path']), 0) self.assertEqual(len(qgt.tables['poly']), 0)
def test_qlibrary_qroute_options(self): """Test that default options of QRoute were not accidentally changed.""" design = designs.DesignPlanar() my_qroute = qroute.QRoute(design, name='test_qroute', options={}) options = my_qroute.default_options self.assertEqual(len(options), 7) self.assertEqual(options['fillet'], '0') self.assertEqual(options['total_length'], '7mm') self.assertEqual(options['chip'], 'main') self.assertEqual(options['layer'], '1') self.assertEqual(options['trace_width'], 'cpw_width') self.assertEqual(len(options['pin_inputs']), 2) self.assertEqual(len(options['pin_inputs']['start_pin']), 2) self.assertEqual(len(options['pin_inputs']['end_pin']), 2) self.assertEqual(options['pin_inputs']['start_pin']['component'], '') self.assertEqual(options['pin_inputs']['start_pin']['pin'], '') self.assertEqual(options['pin_inputs']['end_pin']['component'], '') self.assertEqual(options['pin_inputs']['end_pin']['pin'], '') self.assertEqual(len(options['lead']), 4) self.assertEqual(options['lead']['start_straight'], '0mm') self.assertEqual(options['lead']['end_straight'], '0mm') self.assertEqual(options['lead']['start_jogged_extension'], '') self.assertEqual(options['lead']['end_jogged_extension'], '')
def test_qgeometry_q_element_get_component(self): """Test get_component in QGeometryTables class in element_handler.py.""" design = designs.DesignPlanar() qgt = QGeometryTables(design) qgt.clear_all_tables() TransmonPocket(design, 'Q1') rect = draw.rectangle(500, 300, 0, 0) geom = {'my_polygon': rect} qgt.add_qgeometry('poly', 'Q1', geom) # success results actual = qgt.get_component('Q1') self.assertEqual(len(actual), 3) self.assertTrue(isinstance(actual['path'], GeoDataFrame)) self.assertTrue(isinstance(actual['poly'], GeoDataFrame)) self.assertTrue(isinstance(actual['junction'], GeoDataFrame)) # failure results actual = qgt.get_component('not-real') self.assertEqual(len(actual), 3) self.assertEqual(actual['path'], None) self.assertEqual(actual['poly'], None) self.assertEqual(actual['junction'], None)
def test_component_transmon_concentric_options(self): """Test that default options of transmon_concentric in transmon_concentric.py were not accidentally changed.""" # Setup expected test results design = designs.DesignPlanar() my_transmon_concentric = transmon_concentric.TransmonConcentric( design, 'my_name') options = my_transmon_concentric.default_options self.assertEqual(len(options), 19) self.assertEqual(options['width'], '1000um') self.assertEqual(options['height'], '1000um') self.assertEqual(options['layer'], '1') self.assertEqual(options['rad_o'], '170um') self.assertEqual(options['rad_i'], '115um') self.assertEqual(options['gap'], '35um') self.assertEqual(options['jj_w'], '10um') self.assertEqual(options['res_s'], '100um') self.assertEqual(options['res_ext'], '100um') self.assertEqual(options['fbl_rad'], '100um') self.assertEqual(options['fbl_sp'], '100um') self.assertEqual(options['fbl_gap'], '80um') self.assertEqual(options['fbl_ext'], '300um') self.assertEqual(options['pocket_w'], '1500um') self.assertEqual(options['pocket_h'], '1000um') self.assertEqual(options['position_x'], '2.0mm') self.assertEqual(options['position_y'], '2.0mm') self.assertEqual(options['rotation'], '0.0') self.assertEqual(options['cpw_width'], '10.0um')
def test_qgeometry_instantiate_q_geometry_tables(self): """Test instantiation of QGeometryTables.""" try: design = designs.DesignPlanar() QGeometryTables(design) except Exception: self.fail("QGeometryTables failed")
def test_component_cpw_hanger_t_options(self): """Test that default options of CPWHangerT in cpw_hanger_t.py were not accidentally changed.""" # Setup expected test results design = designs.DesignPlanar() hanger_t = CPWHangerT(design, 'my_name') options = hanger_t.default_options # Test all elements of the result data against expected data self.assertEqual(len(options), 15) self.assertEqual(options['prime_width'], '10um') self.assertEqual(options['prime_gap'], '6um') self.assertEqual(options['second_width'], '10um') self.assertEqual(options['second_gap'], '6um') self.assertEqual(options['coupling_space'], '3um') self.assertEqual(options['coupling_length'], '100um') self.assertEqual(options['down_length'], '100um') self.assertEqual(options['fillet'], '25um') self.assertEqual(options['pos_x'], '0um') self.assertEqual(options['pos_y'], '0um') self.assertEqual(options['rotation'], '0') self.assertEqual(options['mirror'], False) self.assertEqual(options['open_termination'], True) self.assertEqual(options['chip'], 'main') self.assertEqual(options['layer'], '1')
def test_component_instantiate_resonator_rectangle_spiral(self): """Test the instantiation of ResonatorRectangleSpiral.""" design = designs.DesignPlanar() try: ResonatorRectangleSpiral except Exception: self.fail("ResonatorRectangleSpiral failed") try: ResonatorRectangleSpiral(design, "my_name") except Exception: self.fail("ResonatorRectangleSpiral(design, \"my_name\")") try: ResonatorRectangleSpiral(design, "my_name2", options={}) except Exception: self.fail( "ResonatorRectangleSpiral(design, \"my_name2\", options={})") try: ResonatorRectangleSpiral(design, "my_name3", options={}, make=False) except Exception: self.fail( "ResonatorRectangleSpiral(design, \"my_name3\", options={}, make=False)" )