| klayout_pex/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/common/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/common/capacitance_matrix.py |
CapacitanceMatrix.__getitem__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/common/capacitance_matrix.py |
CapacitanceMatrix.__setitem__ |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/common/capacitance_matrix.py |
CapacitanceMatrix.dimension |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/common/capacitance_matrix.py |
CapacitanceMatrix.parse_csv |
|
10 |
1 |
0 |
|
90% |
| klayout_pex/common/capacitance_matrix.py |
CapacitanceMatrix.write_csv |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/common/capacitance_matrix.py |
CapacitanceMatrix.averaged_off_diagonals |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/common/capacitance_matrix.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| klayout_pex/common/path_validation.py |
validate_files |
|
16 |
16 |
0 |
|
0% |
| klayout_pex/common/path_validation.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/env.py |
EnvVar.default_value |
|
9 |
1 |
0 |
|
89% |
| klayout_pex/env.py |
EnvVar.help_epilog_table |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/env.py |
Env.__init__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/env.py |
Env.from_os_environ |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/env.py |
Env.default_magicrc_path |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/env.py |
Env.default_pdk |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/env.py |
Env.__getitem__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/env.py |
Env.__contains__ |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/env.py |
Env.__repr__ |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/env.py |
(no function) |
|
28 |
0 |
0 |
|
100% |
| klayout_pex/extraction_engine.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/fastcap/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/fastcap/fastcap_runner.py |
run_fastcap |
|
25 |
25 |
0 |
|
0% |
| klayout_pex/fastcap/fastcap_runner.py |
fastcap_parse_capacitance_matrix |
|
27 |
2 |
0 |
|
93% |
| klayout_pex/fastcap/fastcap_runner.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/fastcap/output_interpreter.py |
FastCapOutputInterpreter.signal_name_from_conductor_name |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/fastcap/output_interpreter.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.__init__ |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.dbu |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.gds_pair |
|
7 |
2 |
0 |
|
71% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.shapes_of_net |
|
7 |
1 |
0 |
|
86% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.shapes_of_layer |
|
7 |
1 |
0 |
|
86% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.top_cell_bbox |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.build |
|
112 |
39 |
0 |
|
65% |
| klayout_pex/fastercap/fastercap_input_builder.py |
FasterCapInputBuilder.build.format_terminal |
|
3 |
3 |
0 |
|
0% |
| klayout_pex/fastercap/fastercap_input_builder.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder.__init__ |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder.add_material |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder.add_dielectric |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder.add_conductor |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder._norm2z |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder._z2norm |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder._add_layer |
|
11 |
1 |
0 |
|
91% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelBuilder.generate |
|
26 |
1 |
0 |
|
96% |
| klayout_pex/fastercap/fastercap_model_generator.py |
HDielKey.__str__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
HDielKey.topic |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
HDielKey.reversed |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
HCondKey.__str__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
HCondKey.topic |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Point.__sub__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Point.sq_length |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Point.to_fastcap |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
vector_product |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
dot_product |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Triangle.reversed |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Triangle.outside_reference_point |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Triangle.to_fastcap |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Triangle.__len__ |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Triangle.__getitem__ |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Edge.vector_of_edge |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
Edge.reversed |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.__init__ |
|
16 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.reset |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.add_in |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.add_out |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.finish_z |
|
103 |
6 |
0 |
|
94% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.next_z |
|
45 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.generate_hdiel |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.generate_v_surface |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.generate_vdiel |
|
6 |
1 |
0 |
|
83% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.generate_hcond_in |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.generate_hcond_out |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.generate_vcond |
|
6 |
1 |
0 |
|
83% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.triangulate |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.triangulate.convert_point |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.finalize |
|
24 |
1 |
0 |
|
96% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.write_fastcap |
|
49 |
10 |
0 |
|
80% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._write_fastercap_geo |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.check |
|
13 |
1 |
0 |
|
92% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._check_tris |
|
14 |
4 |
0 |
|
71% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._normed_edges |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._normed_edges.normed_dbu |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._point2s |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._edge2s |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._is_antiparallel |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._split_edges |
|
33 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator.dump_stl |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._write_as_stl |
|
14 |
1 |
0 |
|
93% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._merge_events |
|
24 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._collect_diel_tris |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
FasterCapModelGenerator._collect_cond_tris |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_model_generator.py |
(no function) |
|
120 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/fastercap_runner.py |
run_fastercap |
|
28 |
3 |
0 |
|
89% |
| klayout_pex/fastercap/fastercap_runner.py |
fastercap_parse_capacitance_matrix |
|
21 |
2 |
0 |
|
90% |
| klayout_pex/fastercap/fastercap_runner.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/output_interpreter.py |
FasterCapOutputInterpreter.signal_name_from_conductor_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/fastercap/output_interpreter.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/klayout/__init__.py |
(no function) |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/capacitance_matrix_interpreter.py |
CapacitanceMatrixInterpreter.signal_name_from_conductor_name |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/klayout/capacitance_matrix_interpreter.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/klayout/lvs_runner.py |
LVSRunner.run_klayout_lvs |
|
19 |
0 |
0 |
|
100% |
| klayout_pex/klayout/lvs_runner.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.prepare_extraction |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.build_LVS_layer_map |
|
25 |
2 |
0 |
|
92% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.nonempty_extracted_layers |
|
31 |
2 |
0 |
|
94% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.top_cell_bbox |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.shapes_of_net |
|
14 |
1 |
0 |
|
93% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.shapes_of_net.add_shapes_from_region |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.shapes_of_layer |
|
18 |
1 |
0 |
|
94% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.pins_of_layer |
|
8 |
1 |
0 |
|
88% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.labels_of_layer |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.top_circuit |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.devices_by_name |
|
46 |
10 |
0 |
|
78% |
| klayout_pex/klayout/lvsdb_extractor.py |
KLayoutExtractionContext.pins_pb2_by_layer |
|
31 |
1 |
0 |
|
97% |
| klayout_pex/klayout/lvsdb_extractor.py |
(no function) |
|
58 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_csv.py |
NetlistCSVWriter.write_csv |
|
17 |
2 |
0 |
|
88% |
| klayout_pex/klayout/netlist_csv.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_expander.py |
NetlistExpander.expand |
|
52 |
1 |
0 |
|
98% |
| klayout_pex/klayout/netlist_expander.py |
NetlistExpander.expand.add_parasitic_cap |
|
8 |
1 |
0 |
|
88% |
| klayout_pex/klayout/netlist_expander.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_printer.py |
NetlistPrinter.__init__ |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_printer.py |
NetlistPrinter.write |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_printer.py |
NetlistPrinter.write_header |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_printer.py |
NetlistPrinter.write_device |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_printer.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| klayout_pex/klayout/netlist_reducer.py |
NetlistReducer.reduce |
|
16 |
3 |
0 |
|
81% |
| klayout_pex/klayout/netlist_reducer.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.__init__ |
|
14 |
1 |
0 |
|
93% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.to_grid |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.dbu_to_grid |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.gds_pair |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.shapes_of_net |
|
4 |
1 |
0 |
|
75% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.metal_layer_by_name |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.metal_layers_by_canonical_name |
|
6 |
6 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.resolve_metal |
|
18 |
18 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.canonical_name |
|
4 |
1 |
0 |
|
75% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.claim_name |
|
5 |
2 |
0 |
|
60% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build |
|
15 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_units |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_meta |
|
7 |
1 |
0 |
|
86% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_meta.add |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_ground_plane |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_layers |
|
32 |
19 |
0 |
|
41% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.included_dielectric_names |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.outermost_profile |
|
14 |
14 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.conformal_thicknesses |
|
7 |
7 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_dielectrics |
|
32 |
11 |
0 |
|
66% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_dielectrics.next_metal_after |
|
4 |
2 |
0 |
|
50% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.add_simple_dielectric |
|
13 |
13 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.add_conformal_dielectric |
|
17 |
17 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.shape_layers |
|
8 |
1 |
0 |
|
88% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_conductors |
|
23 |
3 |
0 |
|
87% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.add_shapes |
|
19 |
1 |
0 |
|
95% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.fill_ring |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.add_terminal |
|
13 |
0 |
0 |
|
100% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_terminals |
|
60 |
9 |
0 |
|
85% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_resistance |
|
24 |
14 |
0 |
|
42% |
| klayout_pex/klayout/pex25d_builder.py |
PEX25DBuilder.build_domain |
|
7 |
5 |
0 |
|
29% |
| klayout_pex/klayout/pex25d_builder.py |
build_pex25d_file |
|
2 |
2 |
0 |
|
0% |
| klayout_pex/klayout/pex25d_builder.py |
(no function) |
|
66 |
0 |
2 |
|
100% |
| klayout_pex/klayout/repair_rdb.py |
parse_category_path |
|
29 |
29 |
0 |
|
0% |
| klayout_pex/klayout/repair_rdb.py |
repair_rdb_xml |
|
20 |
20 |
0 |
|
0% |
| klayout_pex/klayout/repair_rdb.py |
repair_rdb |
|
13 |
13 |
0 |
|
0% |
| klayout_pex/klayout/repair_rdb.py |
(no function) |
|
17 |
4 |
0 |
|
76% |
| klayout_pex/klayout/rex_core.py |
klayout_r_extractor_tech |
|
23 |
2 |
0 |
|
91% |
| klayout_pex/klayout/rex_core.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.__init__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_point |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_point_to_pb |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_box |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_box_to_pb |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_polygon |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_polygon_to_pb |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_shape |
|
7 |
3 |
0 |
|
57% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_shape_to_pb |
|
5 |
5 |
0 |
|
0% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_region |
|
10 |
4 |
0 |
|
60% |
| klayout_pex/klayout/shapes_pb2_converter.py |
ShapesConverter.klayout_region_to_pb |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/klayout/shapes_pb2_converter.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_special_options |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_pex_setup_arguments |
|
10 |
1 |
0 |
|
90% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_pex_input_arguments |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_engine_arguments |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_extraction_options |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_tech_arguments |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_fastercap_arguments |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_magic_arguments |
|
18 |
1 |
0 |
|
94% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_analytical_25d_arguments |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI._add_pex25d_output_arguments |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.parse_args |
|
39 |
4 |
0 |
|
90% |
| klayout_pex/kpex_cli.py |
KpexCLI.validate_args |
|
149 |
90 |
0 |
|
40% |
| klayout_pex/kpex_cli.py |
KpexCLI.validate_args.input_file_stem |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.create_netlist_printer |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.build_fastercap_input |
|
15 |
2 |
0 |
|
87% |
| klayout_pex/kpex_cli.py |
KpexCLI.run_fastercap_extraction |
|
36 |
2 |
0 |
|
94% |
| klayout_pex/kpex_cli.py |
KpexCLI.run_magic_extraction |
|
41 |
41 |
0 |
|
0% |
| klayout_pex/kpex_cli.py |
KpexCLI.run_fastcap_extraction |
|
24 |
24 |
0 |
|
0% |
| klayout_pex/kpex_cli.py |
KpexCLI.run_kpex_2_5d_engine |
|
36 |
6 |
0 |
|
83% |
| klayout_pex/kpex_cli.py |
KpexCLI.setup_logging |
|
17 |
5 |
0 |
|
71% |
| klayout_pex/kpex_cli.py |
KpexCLI.setup_logging.register_log_file_handler |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.setup_logging.reregister_log_file_handler |
|
13 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.modification_date |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.create_lvsdb |
|
29 |
4 |
0 |
|
86% |
| klayout_pex/kpex_cli.py |
KpexCLI.normalize_argv |
|
12 |
4 |
0 |
|
67% |
| klayout_pex/kpex_cli.py |
KpexCLI._writes_artifact_to_stdout |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.main |
|
22 |
5 |
0 |
|
77% |
| klayout_pex/kpex_cli.py |
KpexCLI.run_pex25d_generation |
|
40 |
40 |
0 |
|
0% |
| klayout_pex/kpex_cli.py |
KpexCLI.run_extraction |
|
41 |
6 |
0 |
|
85% |
| klayout_pex/kpex_cli.py |
KpexCLI.run_extraction.dump_layers |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/kpex_cli.py |
KpexCLI.rcx25_extraction_results |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/kpex_cli.py |
KpexCLI.rcx25_extracted_csv_path |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/kpex_cli.py |
KpexCLI.fastercap_extracted_csv_path |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/kpex_cli.py |
(no function) |
|
111 |
2 |
0 |
|
98% |
| klayout_pex/log/__init__.py |
(no function) |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
LogLevel.level_by_name |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/log/logger.py |
LogLevelFormatter.format |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
LogLevelFilter.__init__ |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
LogLevelFilter.filter |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
set_log_level |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
get_log_level |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
register_additional_handler |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
deregister_additional_handler |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
configure_logger |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
debug |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
subproc |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
rule |
|
0 |
0 |
9 |
|
100% |
| klayout_pex/log/logger.py |
info |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
warning |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
error |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/log/logger.py |
(no function) |
|
38 |
0 |
1 |
|
100% |
| klayout_pex/magic/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_ext_data_structures.py |
ResExtData.rnodes_by_name |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/magic/magic_ext_data_structures.py |
(no function) |
|
79 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_ext_file_parser.py |
parse_magic_pex_run |
|
22 |
3 |
0 |
|
86% |
| klayout_pex/magic/magic_ext_file_parser.py |
parse_magic_ext_file |
|
17 |
3 |
0 |
|
82% |
| klayout_pex/magic/magic_ext_file_parser.py |
parse_magic_res_ext_file |
|
11 |
11 |
0 |
|
0% |
| klayout_pex/magic/magic_ext_file_parser.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_log_analyzer.py |
is_magic_marker |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_log_analyzer.py |
MagicLogAnalyzer.__init__ |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_log_analyzer.py |
MagicLogAnalyzer.analyze |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_log_analyzer.py |
MagicLogAnalyzer.analyze_cell |
|
57 |
25 |
0 |
|
56% |
| klayout_pex/magic/magic_log_analyzer.py |
MagicLogAnalyzer.analyze_cell.scaled |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_log_analyzer.py |
MagicLogAnalyzer.analyze_cell.box_for_point_dbu |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/magic/magic_log_analyzer.py |
MagicLogAnalyzer.analyze_cell.clamped |
|
6 |
2 |
0 |
|
67% |
| klayout_pex/magic/magic_log_analyzer.py |
_parse_args |
|
11 |
11 |
0 |
|
0% |
| klayout_pex/magic/magic_log_analyzer.py |
main |
|
6 |
6 |
0 |
|
0% |
| klayout_pex/magic/magic_log_analyzer.py |
(no function) |
|
25 |
1 |
0 |
|
96% |
| klayout_pex/magic/magic_runner.py |
MagicUniqueMode.to_cmd |
|
9 |
9 |
0 |
|
0% |
| klayout_pex/magic/magic_runner.py |
prepare_magic_script |
|
13 |
13 |
0 |
|
0% |
| klayout_pex/magic/magic_runner.py |
run_magic |
|
19 |
19 |
0 |
|
0% |
| klayout_pex/magic/magic_runner.py |
(no function) |
|
31 |
0 |
0 |
|
100% |
| klayout_pex/netlistsvg/netlist_json.py |
NetlistJSONWriter.__init__ |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/netlistsvg/netlist_json.py |
NetlistJSONWriter._get_or_create_id |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/netlistsvg/netlist_json.py |
NetlistJSONWriter.dict_for_ports |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/netlistsvg/netlist_json.py |
NetlistJSONWriter.dict_for_cells |
|
44 |
1 |
0 |
|
98% |
| klayout_pex/netlistsvg/netlist_json.py |
NetlistJSONWriter.netlist_json_dict |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/netlistsvg/netlist_json.py |
NetlistJSONWriter.write_json |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/netlistsvg/netlist_json.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/pdk_config.py |
PDK.from_string |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pdk_config.py |
PDK.legacy_aliases |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pdk_config.py |
PDK.config |
|
16 |
6 |
0 |
|
62% |
| klayout_pex/pdk_config.py |
(no function) |
|
22 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/__init__.py |
_Proto._message_classes |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/__init__.py |
_Proto.__getattr__ |
|
8 |
1 |
0 |
|
88% |
| klayout_pex/pex25d/__init__.py |
_Proto.__dir__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/__init__.py |
read |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/__init__.py |
write |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/__init__.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/artifact.py |
ArtifactSpec.is_stdio |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/artifact.py |
ArtifactSpec.is_binary |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/artifact.py |
ArtifactSpec.__str__ |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/artifact.py |
infer_artifact_spec |
|
20 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/artifact.py |
open_artifact_read |
|
10 |
6 |
0 |
|
40% |
| klayout_pex/pex25d/artifact.py |
open_artifact_write |
|
13 |
7 |
0 |
|
46% |
| klayout_pex/pex25d/artifact.py |
derive_path |
|
11 |
11 |
0 |
|
0% |
| klayout_pex/pex25d/artifact.py |
(no function) |
|
39 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/codec.py |
load_artifact |
|
19 |
3 |
0 |
|
84% |
| klayout_pex/pex25d/codec.py |
save_artifact |
|
18 |
3 |
0 |
|
83% |
| klayout_pex/pex25d/codec.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/diagnostics.py |
Severity.proto_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/diagnostics.py |
Tier.proto_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/diagnostics.py |
SourceRef.__str__ |
|
6 |
6 |
0 |
|
0% |
| klayout_pex/pex25d/diagnostics.py |
source_ref |
|
9 |
4 |
0 |
|
56% |
| klayout_pex/pex25d/diagnostics.py |
Diagnostic.as_json_dict |
|
6 |
2 |
0 |
|
67% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport.add |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport.extend |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport.num_errors |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport.num_warnings |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport.exit_code |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport.render |
|
9 |
4 |
0 |
|
56% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport._render_human |
|
19 |
3 |
0 |
|
84% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport._render_json |
|
6 |
1 |
0 |
|
83% |
| klayout_pex/pex25d/diagnostics.py |
DiagnosticsReport._render_pb |
|
17 |
17 |
0 |
|
0% |
| klayout_pex/pex25d/diagnostics.py |
_fill_source_ref |
|
6 |
6 |
0 |
|
0% |
| klayout_pex/pex25d/diagnostics.py |
io_text_types |
|
2 |
2 |
0 |
|
0% |
| klayout_pex/pex25d/diagnostics.py |
diagnostics_stream |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/pex25d/diagnostics.py |
(no function) |
|
68 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/exporters.py |
export |
|
6 |
6 |
0 |
|
0% |
| klayout_pex/pex25d/exporters.py |
load_fastercap_backend |
|
5 |
5 |
0 |
|
0% |
| klayout_pex/pex25d/exporters.py |
(no function) |
|
24 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/format_version.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
_epilog |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI._add_special_options |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI._add_input_argument |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI._add_output_arguments |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI._add_diagnostics_arguments |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.parse_args |
|
40 |
3 |
0 |
|
92% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.validate_args |
|
25 |
8 |
0 |
|
68% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI._load |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.run_validate |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.run_convert |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.run_resolve |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.run_export |
|
11 |
11 |
0 |
|
0% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.run_show |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI.main |
|
11 |
1 |
0 |
|
91% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI._run |
|
28 |
10 |
0 |
|
64% |
| klayout_pex/pex25d/pex25d_cli.py |
Pex25DCLI._emit_diagnostics |
|
15 |
2 |
0 |
|
87% |
| klayout_pex/pex25d/pex25d_cli.py |
(no function) |
|
47 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
_import |
|
9 |
6 |
0 |
|
33% |
| klayout_pex/pex25d/protobuf.py |
schema_names |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
schema_module |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/pex25d/protobuf.py |
pex25d_file_pb2 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
pex25d_scene_pb2 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
pex25d_dielectric_pb2 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
pex25d_geometry_pb2 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
pex25d_terminal_pb2 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
pex25d_diagnostics_pb2 |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/pex25d/protobuf.py |
pex25d_source_ref_pb2 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
kind_for_message |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
message_class_for_kind |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/protobuf.py |
(no function) |
|
27 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Record.head |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Record.ref |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.__init__ |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.exhausted |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.peek |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.take |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.keyword |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.grid |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.number |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Cursor.end |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
split_records |
|
17 |
3 |
0 |
|
82% |
| klayout_pex/pex25d/reader.py |
strip_comment |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
tokenize |
|
17 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.__init__ |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.diagnose |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.error |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.warn |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.source_of |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.attach_source |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.to_fraction |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.to_grid |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.to_double |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read |
|
9 |
1 |
0 |
|
89% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.consume |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_include |
|
20 |
1 |
0 |
|
95% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_header |
|
21 |
5 |
0 |
|
76% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_units |
|
26 |
9 |
0 |
|
65% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_meta |
|
18 |
1 |
0 |
|
94% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_ground_plane |
|
15 |
3 |
0 |
|
80% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_metal |
|
12 |
1 |
0 |
|
92% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_via |
|
12 |
1 |
0 |
|
92% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_dielectric_simple |
|
22 |
4 |
0 |
|
82% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_dielectric_conformal |
|
29 |
4 |
0 |
|
86% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_dielectric_background |
|
14 |
4 |
0 |
|
71% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_conductor |
|
9 |
1 |
0 |
|
89% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_box |
|
23 |
5 |
0 |
|
78% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_polygon |
|
28 |
5 |
0 |
|
82% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_ring |
|
11 |
3 |
0 |
|
73% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_terminal |
|
35 |
9 |
0 |
|
74% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_resistance |
|
40 |
6 |
0 |
|
85% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_domain_margin |
|
12 |
2 |
0 |
|
83% |
| klayout_pex/pex25d/reader.py |
Pex25DTextReader.read_domain_box |
|
17 |
2 |
0 |
|
88% |
| klayout_pex/pex25d/reader.py |
fill_ring |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
read_pex25d_text |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/reader.py |
(no function) |
|
71 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.__init__ |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.diagnose |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve |
|
21 |
2 |
0 |
|
90% |
| klayout_pex/pex25d/resolver.py |
Resolver.collect_profiles |
|
27 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.declare |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve_ground_plane |
|
8 |
1 |
0 |
|
88% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve_layers |
|
32 |
2 |
0 |
|
94% |
| klayout_pex/pex25d/resolver.py |
Resolver.chain_of |
|
20 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.wrapped_extent |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.declare_dielectric_names |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve_dielectrics |
|
38 |
3 |
0 |
|
92% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve_dielectric_extent |
|
20 |
3 |
0 |
|
85% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve_conductors |
|
36 |
4 |
0 |
|
89% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve_terminal |
|
45 |
3 |
0 |
|
93% |
| klayout_pex/pex25d/resolver.py |
Resolver.geometry_bounds |
|
30 |
4 |
0 |
|
87% |
| klayout_pex/pex25d/resolver.py |
Resolver.resolve_domain |
|
22 |
1 |
0 |
|
95% |
| klayout_pex/pex25d/resolver.py |
lateral_of |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
polygon_bounds_tuple |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
polygon_bounds |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
intersect_boxes |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
same_box |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
box_contains |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
boxes_overlap |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
extend |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
fill_box3d |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
clip_manhattan_polygon |
|
25 |
1 |
0 |
|
96% |
| klayout_pex/pex25d/resolver.py |
resolve |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/resolver.py |
(no function) |
|
46 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/show.py |
show |
|
7 |
1 |
0 |
|
86% |
| klayout_pex/pex25d/show.py |
_grid_str |
|
4 |
4 |
0 |
|
0% |
| klayout_pex/pex25d/show.py |
_show_header |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/show.py |
_show_meta |
|
6 |
1 |
0 |
|
83% |
| klayout_pex/pex25d/show.py |
_show_layers |
|
14 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/show.py |
_show_dielectrics |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/show.py |
_show_conductors |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/show.py |
_show_terminals |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/show.py |
_show_resistance |
|
8 |
1 |
0 |
|
88% |
| klayout_pex/pex25d/show.py |
_show_domain |
|
11 |
3 |
0 |
|
73% |
| klayout_pex/pex25d/show.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.__init__ |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.diagnose |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.validate |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.validate_file |
|
18 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.validate_scene |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_units |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_wrap_anchoring |
|
15 |
1 |
0 |
|
93% |
| klayout_pex/pex25d/validator.py |
Validator.check_wrap_anchoring.outermost |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_conductors |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_resistance_coverage |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_depth_ties |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_names |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_resistance_records |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_scene_layers |
|
15 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_scene_references |
|
13 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_scene_order |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_scene_terminals |
|
16 |
2 |
0 |
|
88% |
| klayout_pex/pex25d/validator.py |
Validator.check_shapes |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_box |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_polygon |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Validator.check_ring |
|
18 |
2 |
0 |
|
89% |
| klayout_pex/pex25d/validator.py |
Validator.check_conductor_overlap |
|
35 |
3 |
0 |
|
91% |
| klayout_pex/pex25d/validator.py |
Validator.geometric |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Shape.__str__ |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
shapes_of_file |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
shapes_of_scene |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
cross3 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
dot3 |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
edges |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
on_segment |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
segments_meet |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
ring_is_simple |
|
13 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
ring_is_collinear |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/pex25d/validator.py |
point_in_ring |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Polygon.rings |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
Polygon.all_edges |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
point_in_polygon |
|
10 |
1 |
0 |
|
90% |
| klayout_pex/pex25d/validator.py |
ring_strictly_inside |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
rings_meet |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
crossing_x |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
polygons_overlap |
|
27 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
item_of_box |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
item_of_polygon |
|
7 |
1 |
0 |
|
86% |
| klayout_pex/pex25d/validator.py |
items_overlap |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
polygon_of |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
is_scene |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
geometric_tier |
|
7 |
7 |
0 |
|
0% |
| klayout_pex/pex25d/validator.py |
validate |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/validator.py |
(no function) |
|
80 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
format_exact |
|
19 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
format_double |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
quote |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.__init__ |
|
7 |
1 |
0 |
|
86% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.length |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.emit |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.section |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.hint |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.emit_record |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.wrap_clause |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_header |
|
22 |
4 |
0 |
|
82% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_ground_plane |
|
7 |
2 |
0 |
|
71% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_layers |
|
10 |
1 |
0 |
|
90% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_dielectrics |
|
22 |
3 |
0 |
|
86% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_resistance |
|
19 |
4 |
0 |
|
79% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_resistance.temperature_coefficients |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_conductors |
|
19 |
4 |
0 |
|
79% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_shape |
|
12 |
1 |
0 |
|
92% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_shape.ring |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_terminals |
|
13 |
1 |
0 |
|
92% |
| klayout_pex/pex25d/writer.py |
Pex25DTextWriter.write_domain |
|
10 |
2 |
0 |
|
80% |
| klayout_pex/pex25d/writer.py |
write_pex25d_text |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/pex25d/writer.py |
(no function) |
|
35 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/geometry_restorer.py |
GeometryRestorer.__init__ |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/geometry_restorer.py |
GeometryRestorer.restore_edge_interval |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/geometry_restorer.py |
GeometryRestorer.restore_edge |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/geometry_restorer.py |
GeometryRestorer.restore_polygon |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/geometry_restorer.py |
GeometryRestorer.restore_region |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/c/geometry_restorer.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/overlap_extractor.py |
OverlapExtractor.__init__ |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/overlap_extractor.py |
OverlapExtractor.extract |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/overlap_extractor.py |
OverlapExtractor.PEXPolygonNeighborhoodVisitor.__init__ |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/overlap_extractor.py |
OverlapExtractor.PEXPolygonNeighborhoodVisitor.neighbors |
|
31 |
5 |
0 |
|
84% |
| klayout_pex/rcx25/c/overlap_extractor.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/polygon_utils.py |
nearest_edge_distance |
|
7 |
2 |
0 |
|
71% |
| klayout_pex/rcx25/c/polygon_utils.py |
find_polygon_with_nearest_edge |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/polygon_utils.py |
nearest_edge |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/polygon_utils.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.__init__ |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.extract |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.__init__ |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.inside_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.begin_polygon |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.end_polygon |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.side_halo |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.on_edge |
|
47 |
4 |
0 |
|
91% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.emit_sidewall |
|
15 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.fringe_cap |
|
15 |
4 |
0 |
|
73% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
SidewallAndFringeExtractor.PEXEdgeNeighborhoodVisitor.emit_fringe |
|
51 |
7 |
0 |
|
86% |
| klayout_pex/rcx25/c/sidewall_and_fringe_extractor.py |
(no function) |
|
26 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.__init__ |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_common |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_pins |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_request |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_tech |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_request_devices |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_request_pins |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_request_network_extraction |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_result |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_result_networks |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_nodes |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_rex_elements |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_devices |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_vias |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_overlap |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_sidewall |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_fringe |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.cat_edge_neighborhood |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.save |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_shapes |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_overlap |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_sidewall |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_sideoverlap |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_edge_neighborhood |
|
10 |
10 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_devices |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_device_terminals |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_device |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_pins |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_pb_pin |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_via |
|
3 |
3 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_pin |
|
4 |
4 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_rex_tech |
|
10 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_net_extraction_request |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_rex_request |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_rex_result_network |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_rex_result |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.marker_box_for_pb_point |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.marker_box_for_node_location |
|
8 |
2 |
0 |
|
75% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.marker_arrow_between_nodes |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_node |
|
17 |
3 |
0 |
|
82% |
| klayout_pex/rcx25/extraction_reporter.py |
ExtractionReporter.output_element |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_reporter.py |
(no function) |
|
75 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
SideOverlapKey.__repr__ |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_results.py |
SideOverlapKey.__post_init__ |
|
8 |
4 |
0 |
|
50% |
| klayout_pex/rcx25/extraction_results.py |
SideOverlapCap.__str__ |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_results.py |
NetCoupleKey.__repr__ |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/rcx25/extraction_results.py |
NetCoupleKey.__lt__ |
|
3 |
1 |
0 |
|
67% |
| klayout_pex/rcx25/extraction_results.py |
NetCoupleKey.__post_init__ |
|
4 |
2 |
0 |
|
50% |
| klayout_pex/rcx25/extraction_results.py |
NetCoupleKey.normed |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
ExtractionSummary.merged |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
CellExtractionResults.add_overlap_cap |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
CellExtractionResults.add_sidewall_cap |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
CellExtractionResults.add_sideoverlap_cap |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
CellExtractionResults.summarize |
|
27 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
CellExtractionResults.summarize.node_name |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
ExtractionResults.summarize |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extraction_results.py |
(no function) |
|
83 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extractor.py |
RCX25Extractor.__init__ |
|
9 |
1 |
0 |
|
89% |
| klayout_pex/rcx25/extractor.py |
RCX25Extractor.gds_pair |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extractor.py |
RCX25Extractor.shapes_of_layer |
|
7 |
1 |
0 |
|
86% |
| klayout_pex/rcx25/extractor.py |
RCX25Extractor.extract |
|
14 |
5 |
0 |
|
64% |
| klayout_pex/rcx25/extractor.py |
RCX25Extractor.extract_cell |
|
50 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/extractor.py |
(no function) |
|
22 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/netlist_expander.py |
RCX25NetlistExpander.expand |
|
56 |
4 |
0 |
|
93% |
| klayout_pex/rcx25/netlist_expander.py |
RCX25NetlistExpander.expand.add_net_if_needed |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/netlist_expander.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/pex_mode.py |
PEXMode.need_capacitance |
|
7 |
2 |
0 |
|
71% |
| klayout_pex/rcx25/pex_mode.py |
PEXMode.need_resistance |
|
7 |
2 |
0 |
|
71% |
| klayout_pex/rcx25/pex_mode.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/r/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/r/r_extractor.py |
RExtractor.__init__ |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/r/r_extractor.py |
RExtractor.prepare_r_extractor_tech_pb |
|
86 |
16 |
0 |
|
81% |
| klayout_pex/rcx25/r/r_extractor.py |
RExtractor.prepare_request |
|
39 |
4 |
0 |
|
90% |
| klayout_pex/rcx25/r/r_extractor.py |
RExtractor.prepare_request.get_or_create_net_request |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/r/r_extractor.py |
RExtractor.extract |
|
94 |
5 |
0 |
|
95% |
| klayout_pex/rcx25/r/r_extractor.py |
(no function) |
|
21 |
0 |
0 |
|
100% |
| klayout_pex/rcx25/types.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.duplicate_names |
|
18 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.parse_tech_def |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.from_json |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.__init__ |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.gds_pair_for_computed_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.computed_layer_info_by_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.computed_layer_info_by_gds_pair |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.canonical_layer_name_by_gds_pair |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.layer_info_by_name |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/tech_info.py |
TechInfo.pin_layer_mapping_for_drw_gds_pair |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/tech_info.py |
TechInfo.gds_pair_for_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.layer_info_by_gds_pair |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.process_stack_layer_by_name |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/tech_info.py |
TechInfo.process_stack_layer_by_gds_pair |
|
1 |
1 |
0 |
|
0% |
| klayout_pex/tech_info.py |
TechInfo.process_substrate_layer |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.process_diffusion_layers |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.gate_poly_layer |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.field_oxide_layer |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.process_metal_layers |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.filtered_dielectric_layers |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.dielectric_by_name |
|
8 |
5 |
0 |
|
38% |
| klayout_pex/tech_info.py |
TechInfo.conformal_dielectric_wrapping |
|
13 |
9 |
0 |
|
31% |
| klayout_pex/tech_info.py |
TechInfo.simple_dielectric_above_metal |
|
13 |
2 |
0 |
|
85% |
| klayout_pex/tech_info.py |
TechInfo.contact_above_metal_layer_name |
|
7 |
7 |
0 |
|
0% |
| klayout_pex/tech_info.py |
TechInfo.contact_by_device_lvs_layer_name |
|
9 |
2 |
0 |
|
78% |
| klayout_pex/tech_info.py |
TechInfo.contact_by_contact_lvs_layer_name |
|
11 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.gds_pair |
|
7 |
2 |
0 |
|
71% |
| klayout_pex/tech_info.py |
TechInfo.bottom_and_top_layer_name_by_via_computed_layer_name |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.layer_resistance_by_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.contact_resistance_by_device_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.via_resistance_by_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.milliohm_to_ohm |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.milliohm_by_cnt_to_ohm_by_square_for_contact |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.milliohm_by_cnt_to_ohm_by_square_for_via |
|
2 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.substrate_cap_by_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.overlap_cap_by_layer_names |
|
9 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.overlap_cap_by_layer_names.convert_substrate_to_overlap_cap |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.sidewall_cap_by_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.internal_substrate_layer_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.side_overlap_cap_by_layer_names |
|
7 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
TechInfo.side_overlap_cap_by_layer_names.convert_substrate_to_side_overlap_cap |
|
5 |
0 |
0 |
|
100% |
| klayout_pex/tech_info.py |
(no function) |
|
89 |
0 |
0 |
|
100% |
| klayout_pex/tool_version_constraints.py |
Tool.env_var |
|
6 |
6 |
0 |
|
0% |
| klayout_pex/tool_version_constraints.py |
Tool.version_argument |
|
3 |
0 |
0 |
|
100% |
| klayout_pex/tool_version_constraints.py |
Tool.parse_version |
|
13 |
2 |
0 |
|
85% |
| klayout_pex/tool_version_constraints.py |
Tool.detect_version |
|
6 |
3 |
0 |
|
50% |
| klayout_pex/tool_version_constraints.py |
ToolVersionConstraint.specifier_set |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tool_version_constraints.py |
ToolVersionConstraint.is_satisfied_by |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tool_version_constraints.py |
ToolVersionConstraint.applies_to |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tool_version_constraints.py |
applicable_constraints |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tool_version_constraints.py |
effective_version_range |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/tool_version_constraints.py |
check_tool_versions |
|
28 |
9 |
0 |
|
68% |
| klayout_pex/tool_version_constraints.py |
(no function) |
|
53 |
0 |
0 |
|
100% |
| klayout_pex/util/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| klayout_pex/util/argparse_helpers.py |
_group_name |
|
1 |
0 |
0 |
|
100% |
| klayout_pex/util/argparse_helpers.py |
render_enum_help |
|
14 |
0 |
0 |
|
100% |
| klayout_pex/util/argparse_helpers.py |
render_enum_help.canonic_string |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/util/argparse_helpers.py |
true_or_false |
|
9 |
3 |
0 |
|
67% |
| klayout_pex/util/argparse_helpers.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| klayout_pex/util/multiple_choice.py |
MultipleChoicePattern.__init__ |
|
13 |
3 |
0 |
|
77% |
| klayout_pex/util/multiple_choice.py |
MultipleChoicePattern.filter |
|
3 |
3 |
0 |
|
0% |
| klayout_pex/util/multiple_choice.py |
MultipleChoicePattern.is_included |
|
5 |
1 |
0 |
|
80% |
| klayout_pex/util/multiple_choice.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| klayout_pex/util/unit_formatter.py |
format_spice_number |
|
30 |
7 |
0 |
|
77% |
| klayout_pex/util/unit_formatter.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| klayout_pex/version.py |
(no function) |
|
1 |
0 |
0 |
|
100% |
| klayout_pex_protobuf/__init__.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| klayout_pex_protobuf/kpex/c/capacitance_pb2.py |
(no function) |
|
28 |
13 |
0 |
|
54% |
| klayout_pex_protobuf/kpex/geometry/shapes_pb2.py |
(no function) |
|
25 |
13 |
0 |
|
48% |
| klayout_pex_protobuf/kpex/klayout/r_extractor_tech_pb2.py |
(no function) |
|
22 |
9 |
0 |
|
59% |
| klayout_pex_protobuf/kpex/layout/device_pb2.py |
(no function) |
|
21 |
7 |
0 |
|
67% |
| klayout_pex_protobuf/kpex/layout/layer_ref_pb2.py |
(no function) |
|
15 |
3 |
0 |
|
80% |
| klayout_pex_protobuf/kpex/layout/layer_region_pb2.py |
(no function) |
|
17 |
3 |
0 |
|
82% |
| klayout_pex_protobuf/kpex/layout/location_pb2.py |
(no function) |
|
18 |
5 |
0 |
|
72% |
| klayout_pex_protobuf/kpex/layout/pin_pb2.py |
(no function) |
|
17 |
3 |
0 |
|
82% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_diagnostics_pb2.py |
(no function) |
|
22 |
9 |
0 |
|
59% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_dielectric_pb2.py |
(no function) |
|
24 |
11 |
0 |
|
54% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_domain_pb2.py |
(no function) |
|
19 |
5 |
0 |
|
74% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_file_pb2.py |
(no function) |
|
35 |
15 |
0 |
|
57% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_geometry_pb2.py |
(no function) |
|
25 |
13 |
0 |
|
48% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_meta_pb2.py |
(no function) |
|
16 |
3 |
0 |
|
81% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_resistance_pb2.py |
(no function) |
|
22 |
9 |
0 |
|
59% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_scene_pb2.py |
(no function) |
|
43 |
23 |
0 |
|
47% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_source_ref_pb2.py |
(no function) |
|
15 |
3 |
0 |
|
80% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_terminal_pb2.py |
(no function) |
|
19 |
5 |
0 |
|
74% |
| klayout_pex_protobuf/kpex/pex25d/pex25d_units_pb2.py |
(no function) |
|
17 |
5 |
0 |
|
71% |
| klayout_pex_protobuf/kpex/r/r_network_pb2.py |
(no function) |
|
30 |
15 |
0 |
|
50% |
| klayout_pex_protobuf/kpex/request/pex_request_pb2.py |
(no function) |
|
23 |
7 |
0 |
|
70% |
| klayout_pex_protobuf/kpex/result/pex_result_pb2.py |
(no function) |
|
23 |
9 |
0 |
|
61% |
| klayout_pex_protobuf/kpex/tech/process_parasitics_pb2.py |
(no function) |
|
35 |
23 |
0 |
|
34% |
| klayout_pex_protobuf/kpex/tech/process_stack_pb2.py |
(no function) |
|
35 |
23 |
0 |
|
34% |
| klayout_pex_protobuf/kpex/tech/tech_pb2.py |
(no function) |
|
27 |
13 |
0 |
|
52% |
| tests/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/common/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/common/capacitance_matrix_test.py |
Test.klayout_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/common/capacitance_matrix_test.py |
Test.test_parse_csv |
|
7 |
0 |
0 |
|
100% |
| tests/common/capacitance_matrix_test.py |
Test.test_write_csv |
|
6 |
0 |
0 |
|
100% |
| tests/common/capacitance_matrix_test.py |
Test.test_averaged_off_diagonals |
|
7 |
0 |
0 |
|
100% |
| tests/common/capacitance_matrix_test.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| tests/env_test.py |
Test.test_env_has_defaults |
|
7 |
1 |
0 |
|
86% |
| tests/env_test.py |
Test.test_env_with_custom_variables |
|
7 |
0 |
0 |
|
100% |
| tests/env_test.py |
Test.test_env_with_custom_variables.value_for_var |
|
1 |
0 |
0 |
|
100% |
| tests/env_test.py |
Test.test_valid_pdk_from_env |
|
3 |
0 |
0 |
|
100% |
| tests/env_test.py |
Test.test_invalid_pdk_from_env |
|
3 |
0 |
0 |
|
100% |
| tests/env_test.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| tests/fastcap/fastcap_runner_test.py |
Test.fastcap_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/fastcap/fastcap_runner_test.py |
Test.test_fastcap_parse_capacitance_matrix |
|
11 |
0 |
0 |
|
100% |
| tests/fastcap/fastcap_runner_test.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| tests/fastercap/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_model_generator_test.py |
test_fastercap_model_generator |
|
53 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_model_generator_test.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_runner_test.py |
Test.fastercap_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_runner_test.py |
Test.test_fastercap_parse_capacitance_matrix |
|
10 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_runner_test.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
_kpex_pdk_dir |
|
1 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
_sky130a_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
_gds |
|
1 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
_save_layout_preview |
|
12 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
_extract_single_cell |
|
8 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
assert_expected_matches_obtained |
|
12 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
test_single_plate_100um_x_100um_li1_over_substrate |
|
1 |
0 |
0 |
|
100% |
| tests/fastercap/fastercap_test.py |
(no function) |
|
27 |
0 |
0 |
|
100% |
| tests/klayout/lvs_runner_test.py |
Test.testdata_dir |
|
1 |
1 |
0 |
|
0% |
| tests/klayout/lvs_runner_test.py |
Test.test_run_klayout_lvs |
|
10 |
10 |
0 |
|
0% |
| tests/klayout/lvs_runner_test.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| tests/klayout/netlist_expander_test.py |
Test.klayout_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/netlist_expander_test.py |
Test.tech_info_json_path |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/netlist_expander_test.py |
Test.test_netlist_expansion |
|
16 |
0 |
0 |
|
100% |
| tests/klayout/netlist_expander_test.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| tests/klayout/netlist_reducer_test.py |
Test.setUpClass |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/netlist_reducer_test.py |
Test.klayout_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/netlist_reducer_test.py |
Test._test_netlist_reduction |
|
10 |
0 |
0 |
|
100% |
| tests/klayout/netlist_reducer_test.py |
Test.test_netlist_reduction_1 |
|
2 |
0 |
0 |
|
100% |
| tests/klayout/netlist_reducer_test.py |
Test.test_netlist_reduction_2 |
|
2 |
0 |
0 |
|
100% |
| tests/klayout/netlist_reducer_test.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
TerminalFixture.__init__ |
|
30 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
TerminalFixture.pin |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
TerminalFixture.device |
|
3 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
TerminalFixture.build |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_pin_uses_its_label_not_the_whole_pin_polygon |
|
11 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_pin_on_a_bent_wire_resolves |
|
8 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_repeated_labels_produce_unique_stable_names |
|
6 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_a_label_outside_the_pin_marker_is_ignored |
|
3 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_a_pin_without_interconnect_reports_a_build_error |
|
5 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_a_device_terminal_keeps_all_its_disjoint_shapes_in_one_node |
|
14 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_an_abutting_device_gets_only_a_boundary_strip |
|
5 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_a_box_cannot_silently_short_interconnect_between_device_shapes |
|
6 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
Pex25DBuilderTerminalTest.test_device_terminal_names_cannot_collide_with_pin_names |
|
6 |
0 |
0 |
|
100% |
| tests/klayout/pex25d_builder_test.py |
(no function) |
|
30 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.setUpClass |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.setUp |
|
1 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_point |
|
7 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_point_to_pb |
|
6 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_box |
|
12 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_box_to_pb |
|
9 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_box_to_pb__with_properties |
|
5 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_polygon |
|
25 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_polygon_to_pb |
|
12 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
ShapesConverterTest.test_klayout_region |
|
28 |
0 |
0 |
|
100% |
| tests/klayout/shapes_pb2_converter_test.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.analyze |
|
6 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.items_by_category_path |
|
4 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.items_by_category_path.collect |
|
4 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.categories_with_items |
|
4 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.item_boxes |
|
5 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.test_ports_are_reported |
|
2 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.test_node_capacitance_may_be_fractional |
|
2 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
Test.test_substrate_node_at_magic_infinity_is_clamped_into_the_cell |
|
9 |
0 |
0 |
|
100% |
| tests/magic/magic_log_analyzer_test.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| tests/netlistsvg/netlist_json_test.py |
Test.setUpClass |
|
1 |
0 |
0 |
|
100% |
| tests/netlistsvg/netlist_json_test.py |
Test.netlistsvg_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/netlistsvg/netlist_json_test.py |
Test._test_netlistsvg |
|
11 |
0 |
0 |
|
100% |
| tests/netlistsvg/netlist_json_test.py |
Test.test_netlist_reduction_1 |
|
3 |
0 |
0 |
|
100% |
| tests/netlistsvg/netlist_json_test.py |
Test.test_netlist_reduction_2 |
|
3 |
0 |
0 |
|
100% |
| tests/netlistsvg/netlist_json_test.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| tests/pex25d/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_every_exported_name_resolves |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_the_generated_messages_are_reachable_by_name |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_every_generated_schema_is_reachable |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_the_schemas_the_format_is_made_of_are_present |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_the_kind_of_a_message_follows_its_descriptor |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_the_pipeline_needs_no_other_import |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_a_path_carries_the_kind_and_the_encoding |
|
10 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_a_path_carries_the_kind_and_the_encoding.path |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_a_message_the_path_does_not_describe_is_refused |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
Pex25DApiTest.test_a_path_without_a_conventional_suffix_is_reported_as_such |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/api_test.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_the_naming_convention |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_an_unconventional_name_has_to_be_stated |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_an_explicit_choice_beats_the_name |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_stdio_falls_back_to_the_defaults |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_binary_formats_are_flagged |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.round_trip |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_a_file_survives_every_encoding |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_a_scene_survives_the_protobuf_encodings |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
Pex25DArtifactTest.test_a_scene_has_no_text_spelling |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/artifact_test.py |
(no function) |
|
21 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
square |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_ring_is_simple |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_a_bowtie_is_not_simple |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_a_fold_back_is_not_simple |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_ring_is_collinear |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_winding_does_not_matter |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_ring_strictly_inside |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_a_hole_that_leaves_a_concave_outer_and_comes_back |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_rings_meet |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_overlapping_and_disjoint_boxes |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_touching_is_not_overlapping |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_containment_counts |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_identical_polygons_overlap |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_a_hole_is_not_part_of_the_polygon |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_a_shape_filling_a_hole_exactly |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_coincident_boundary_with_material_beyond_it |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_an_l_shape_and_its_notch |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_a_sliver_of_shared_area |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
Pex25DGeometryTest.test_overlap_is_symmetric |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/geometry_test.py |
(no function) |
|
28 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Workspace.__init__ |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Workspace.path |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Workspace.run |
|
5 |
1 |
0 |
|
80% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.workspace |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_a_valid_file_exits_zero |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_an_invalid_file_exits_one |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_a_bad_command_line_exits_two |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_an_unconventional_output_name_exits_two |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_werror_turns_a_warning_into_a_failure |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_convert_is_idempotent_through_every_encoding |
|
13 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_resolve_writes_a_scene |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_resolve_refuses_to_write_half_a_scene |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_show_reads_both_kinds |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
Pex25DCLITest.test_json_diagnostics_carry_the_codes |
|
10 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_cli_test.py |
(no function) |
|
28 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_fixtures.py |
read |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_fixtures.py |
read_codes |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_fixtures.py |
codes |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_fixtures.py |
replacing |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/pex25d_fixtures.py |
without |
|
1 |
1 |
0 |
|
0% |
| tests/pex25d/pex25d_fixtures.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_reads_the_fixture_without_diagnostics |
|
12 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_lengths_become_exact_grid_integers |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_a_polygon_ring_is_not_closed_explicitly |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_a_value_a_modulo_check_would_reject |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_source_refs_are_off_unless_asked_for |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0101_record_ends_early |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0102_wrong_clause_keyword |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0103_a_dropped_continuation |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0103_trailing_tokens |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0104_bad_literal |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0104_rejects_number_forms_python_would_accept |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0105_off_grid |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0106_a_length_before_units |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0107_wrong_header |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0107_unsupported_major_version |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_an_unknown_suffix_is_accepted |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0108_duplicate_meta_key |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_w0110_unknown_record_is_a_warning_and_is_skipped |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_read_error_is_raised_once_errors_exist |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_include_flattens_and_records_the_source_file |
|
11 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0109_include_cycle |
|
12 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
Pex25DReaderTest.test_e0109_unreadable_include |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/reader_test.py |
(no function) |
|
33 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
resolved |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
resolve_codes |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
layer |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
dielectric |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_via_takes_its_extent_from_connects |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_via_may_land_on_the_ground_plane |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_simple_band_spans_bottom_to_bottom |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_conformal_thicknesses_are_carried_in_grid_units |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_wrap_depth_and_root |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_dielectrics_come_out_in_ascending_depth |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0230_cyclic_wraps |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0201_unknown_profile |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0202_duplicate_profile_name |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_dielectric_shares_the_profile_namespace_with_the_metals |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0202_a_dielectric_declared_twice |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0202_the_background_is_in_the_namespace_too |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0211_metal_with_inverted_z |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0212_connects_endpoints_out_of_order |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0220_resistance_metal_on_a_via |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0221_resistance_via_on_a_metal |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_resistance_is_carried_onto_the_layer |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_profile_without_resistance_carries_none |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_terminal_resolves_to_its_intersection |
|
8 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0242_a_terminal_that_selects_nothing |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0240_a_terminal_that_clips_a_via_cut |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_terminal_may_take_a_whole_cut |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_e0201_terminal_on_a_dielectric |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_terminal_clipping_preserves_a_polygon_hole |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_a_terminal_in_a_polygon_hole_selects_nothing |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_clipping_can_split_a_terminal_into_disjoint_boxes |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_clipping_a_polygon_via_cut_is_rejected |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_non_manhattan_clipping_is_not_silently_rounded |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_domain_margin_expands_the_geometry_bounds |
|
7 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_geometry_bounds_ignore_laterally_unbounded_materials |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_no_domain_record_leaves_the_domain_unspecified |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_domain_box_is_copied_verbatim |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_conductors_carry_their_geometry_grouped_by_layer |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_the_reserved_net_name_marks_a_floating_body |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_resolve_error_stops_before_a_half_built_scene |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_the_background_never_competes_for_occupancy |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
Pex25DResolverTest.test_an_anchor_metal_without_shapes_is_legal |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/resolver_test.py |
(no function) |
|
52 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
check |
|
7 |
2 |
0 |
|
71% |
| tests/pex25d/validator_test.py |
check_scene |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
geometry |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_the_fixture_is_clean |
|
2 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_a_resolved_scene_is_clean |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_validating_never_raises |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0260_a_simple_dielectric_wrapping_an_inner_link |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0261_two_films_at_the_same_depth_on_one_root |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0262_a_grid_that_does_not_divide_the_source_dbu |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_a_grid_that_does_divide_the_source_dbu |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0263_a_terminal_on_a_floating_conductor |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_w0264_a_conductor_with_no_geometry |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_w0265_geometry_without_a_resistance_when_others_have_one |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_no_w0265_when_the_file_states_no_resistance_at_all |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0266_a_conductor_declared_twice |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0267_a_terminal_declared_twice |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0268_two_resistance_records_for_one_profile |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_w0269_coefficients_with_no_reference_temperature |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0270_a_layer_with_no_kind |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0271_a_metal_with_no_height |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_a_via_between_abutting_layers_is_not_an_error |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0272_a_via_without_its_resolved_endpoints |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0273_a_metal_carrying_a_via_resistance |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0274_dielectrics_out_of_depth_order |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0275_a_dielectric_naming_a_profile_the_scene_has_not_got |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0276_a_terminal_on_a_layer_the_conductor_does_not_use |
|
5 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0277_an_empty_terminal_node |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0279_geometry_on_a_layer_the_scene_has_not_got |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_the_geometric_tier_only_runs_under_strict |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0302_a_ring_closed_explicitly |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0303_a_repeated_vertex |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0304_a_collinear_ring |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0305_a_self_intersecting_ring |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0306_a_hole_touching_its_outer_ring |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0307_holes_that_touch |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_a_polygon_with_two_separate_holes_is_fine |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0308_an_empty_box |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.overlap |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_two_conductors_may_abut |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_one_conductor_may_overlap_itself |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_layers_whose_z_extents_only_touch_do_not_overlap |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0309_boxes |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0309_identical_polygons |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_e0309_a_shape_reaching_out_of_a_hole |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_a_conductor_may_sit_inside_another_ones_hole |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
Pex25DValidatorTest.test_a_box_in_the_notch_of_an_l_shape |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/validator_test.py |
(no function) |
|
58 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_format_exact |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_format_exact_refuses_what_it_cannot_render |
|
4 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_lengths_are_rendered_exactly |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_long_records_wrap_and_read_back_identically |
|
8 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_a_wrap_never_splits_a_coordinate_pair |
|
11 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_a_wrap_never_splits_a_coordinate_pair.is_number |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_round_trip_is_byte_identical |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_round_trip_preserves_the_message |
|
3 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_comments_change_nothing_but_the_comments |
|
6 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
Pex25DWriterTest.test_comments_change_nothing_but_the_comments.records |
|
1 |
0 |
0 |
|
100% |
| tests/pex25d/writer_test.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| tests/rcx25/extraction_results_test.py |
NetCoupleKeyTest.test_normed_ascending |
|
4 |
0 |
0 |
|
100% |
| tests/rcx25/extraction_results_test.py |
NetCoupleKeyTest.test_normed_descending |
|
4 |
0 |
0 |
|
100% |
| tests/rcx25/extraction_results_test.py |
CellExtractionResultsTest.test_summarize_overlap |
|
14 |
0 |
0 |
|
100% |
| tests/rcx25/extraction_results_test.py |
CellExtractionResultsTest.test_summarize_sidewall |
|
17 |
0 |
0 |
|
100% |
| tests/rcx25/extraction_results_test.py |
CellExtractionResultsTest.test_summarize_sideoverlap |
|
17 |
0 |
0 |
|
100% |
| tests/rcx25/extraction_results_test.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_single_plate_100um_x_100um_li1_over_substrate |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_overlap_plates_100um_x_100um_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_overlap_plates_100um_x_100um_li1_m1_m2_m3 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sidewall_100um_x_100um_distance_200nm_li1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sidewall_net_uturn_l1_redux |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sidewall_cap_vpp_04p4x04p6_l1_redux |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_near_body_shield_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_lateral_fringe_shield_by_same_polygon_li1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sideoverlap_simple_plates_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sideoverlap_shielding_simple_plates_li1_m1_m2 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sideoverlap_plates_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sideoverlap_fingered_li1_m1_patternA |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sideoverlap_fingered_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_sideoverlap_complex_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_mom_cap__whiteboxed |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
test_mom_cap__blackboxed |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_CC_sky130A_test.py |
(no function) |
|
73 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_R_sky130A_test.py |
test_single_wire_li1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_R_sky130A_test.py |
test_contact_1x1_minsize_mcon |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_R_sky130A_test.py |
test_wire_voltage_divider_li1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_R_sky130A_test.py |
test_via_stack_1x1_minsize_poly_to_met5 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_R_sky130A_test.py |
test_nfet_li1_redux |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_R_sky130A_test.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
_kpex_pdk_dir |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
_sky130a_testdata_dir |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
_gds |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
_save_layout_preview |
|
12 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
_run_rcx25d_single_cell |
|
11 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
assert_expected_matches_obtained |
|
13 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_single_plate_100um_x_100um_li1_over_substrate |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_overlap_plates_100um_x_100um_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_overlap_plates_100um_x_100um_li1_m1_m2_m3 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sidewall_100um_x_100um_distance_200nm_li1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sidewall_net_uturn_l1_redux |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sidewall_cap_vpp_04p4x04p6_l1_redux |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_near_body_shield_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_lateral_fringe_shield_by_same_polygon_li1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sideoverlap_simple_plates_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sideoverlap_shielding_simple_plates_li1_m1_m2 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sideoverlap_plates_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sideoverlap_fingered_li1_m1_patternA |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sideoverlap_fingered_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
test_sideoverlap_complex_li1_m1 |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test.py |
(no function) |
|
92 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
PDKTestConfig.kpex_pdk_dir |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
PDKTestConfig.test_designs_dir |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
PDKTestConfig.lyt_path |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
PDKTestConfig.load_kdb_technology |
|
4 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
PDKTestConfig.gds_path |
|
1 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
RCX25Extraction.save_layout_preview |
|
9 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
RCX25Extraction.run_rcx25d_single_cell |
|
11 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
RCX25Extraction.assert_expected_matches_obtained |
|
13 |
0 |
0 |
|
100% |
| tests/rcx25/rcx25_test_helpers.py |
(no function) |
|
37 |
0 |
0 |
|
100% |
| tests/tech_info_test.py |
tech_pbjson_paths |
|
2 |
0 |
0 |
|
100% |
| tests/tech_info_test.py |
tech_with_duplicates |
|
12 |
0 |
0 |
|
100% |
| tests/tech_info_test.py |
Test.test_shipped_tech_definitions_have_unique_names |
|
5 |
0 |
0 |
|
100% |
| tests/tech_info_test.py |
Test.test_duplicate_names_are_reported_per_namespace |
|
7 |
0 |
0 |
|
100% |
| tests/tech_info_test.py |
Test.test_the_reader_refuses_a_duplicate |
|
6 |
0 |
0 |
|
100% |
| tests/tech_info_test.py |
(no function) |
|
18 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
Test.test_magic_reports_its_patch_level_as_a_revision |
|
3 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
Test.test_a_packaging_release_is_not_part_of_the_tool_version |
|
3 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
Test.test_constraints_compile_to_one_effective_range |
|
3 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
Test.test_a_pdk_constraint_is_part_of_that_pdk_s_range |
|
3 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
Test.test_an_excluded_version_is_the_only_one_rejected |
|
4 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
Test.test_a_pdk_constraint_applies_only_to_that_pdk |
|
4 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
Test.test_every_declared_constraint_is_well_formed |
|
8 |
0 |
0 |
|
100% |
| tests/tool_version_constraints_test.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| tests/util/argparse_helpers_test.py |
Test.test_render_enum_help__nodefault__intenum |
|
6 |
0 |
0 |
|
100% |
| tests/util/argparse_helpers_test.py |
Test.test_render_enum_help__default__intenum |
|
7 |
0 |
0 |
|
100% |
| tests/util/argparse_helpers_test.py |
Test.test_render_enum_help__default__strenum |
|
7 |
0 |
0 |
|
100% |
| tests/util/argparse_helpers_test.py |
Test.test_render_enum_help__default__strenum__lowercased |
|
7 |
0 |
0 |
|
100% |
| tests/util/argparse_helpers_test.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| tests/util/unit_formatter_test.py |
UnitFormatterTest.test_auto_prefix |
|
8 |
0 |
0 |
|
100% |
| tests/util/unit_formatter_test.py |
UnitFormatterTest.test_boundary_cases |
|
5 |
0 |
0 |
|
100% |
| tests/util/unit_formatter_test.py |
UnitFormatterTest.test_forced_prefix |
|
7 |
0 |
0 |
|
100% |
| tests/util/unit_formatter_test.py |
UnitFormatterTest.test_invalid_prefix |
|
2 |
0 |
0 |
|
100% |
| tests/util/unit_formatter_test.py |
(no function) |
|
13 |
1 |
0 |
|
92% |