MCPcopy Create free account
hub / github.com/KLayout/klayout / test_1

Method test_1

testdata/python/dbPCells.py:234–378  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

232 self.assertEqual("PCellDeclarationHelper" in pya.__all__, True)
233
234 def test_1(self):
235
236 # instantiate and register the library
237 tl = PCellTestLib()
238
239 ly = pya.Layout(True)
240 ly.dbu = 0.01
241
242 li1 = find_layer(ly, "1/0")
243 self.assertEqual(li1 == None, True)
244
245 ci1 = ly.add_cell("c1")
246 c1 = ly.cell(ci1)
247
248 lib = pya.Library.library_by_name("NoLib")
249 self.assertEqual(lib == None, True)
250 lib = pya.Library.library_by_name("PCellTestLib")
251 self.assertEqual(lib != None, True)
252 pcell_decl = lib.layout().pcell_declaration("x")
253 self.assertEqual(pcell_decl == None, True)
254 pcell_decl = lib.layout().pcell_declaration("Box")
255 self.assertEqual(pcell_decl != None, True)
256 pcell_decl_id = lib.layout().pcell_id("Box")
257 self.assertEqual(pcell_decl.id(), pcell_decl_id)
258 self.assertEqual(":".join(lib.layout().pcell_names()), "Box")
259 self.assertEqual(lib.layout().pcell_ids(), [ pcell_decl_id ])
260 self.assertEqual(lib.layout().pcell_declaration(pcell_decl_id).id(), pcell_decl_id)
261
262 param = [ pya.LayerInfo(1, 0) ] # rest is filled with defaults
263 pcell_var_id = ly.add_pcell_variant(lib, pcell_decl_id, param)
264 pcell_var = ly.cell(pcell_var_id)
265 pcell_inst = c1.insert(pya.CellInstArray(pcell_var_id, pya.Trans()))
266 self.assertEqual(pcell_var.layout().__repr__(), ly.__repr__())
267 self.assertEqual(pcell_var.library().__repr__(), lib.__repr__())
268 self.assertEqual(pcell_var.is_pcell_variant(), True)
269 self.assertEqual(pcell_var.display_title(), "PCellTestLib.Box(L=1/0,W=1.000,H=1.000)")
270 self.assertEqual(pcell_var.basic_name(), "Box")
271 self.assertEqual(pcell_var.qname(), "PCellTestLib.Box")
272 self.assertEqual(pcell_var.name, "Box_L1d0_W1p000_H1p000")
273 self.assertEqual(pcell_var.pcell_declaration().wants_lazy_evaluation(), False)
274 self.assertEqual(c1.is_pcell_variant(), False)
275 self.assertEqual(c1.is_pcell_variant(pcell_inst), True)
276 self.assertEqual(pcell_var.pcell_id(), pcell_decl_id)
277 self.assertEqual(pcell_var.pcell_library().__repr__(), lib.__repr__())
278 self.assertEqual(pcell_var.pcell_parameters().__repr__(), "[<1/0>, 1.0, 1.0]")
279 self.assertEqual(nh(pcell_var.pcell_parameters_by_name()), "{'h': 1.0, 'l': <1/0>, 'w': 1.0}")
280 self.assertEqual(pcell_var.pcell_parameter("h").__repr__(), "1.0")
281 self.assertEqual(c1.pcell_parameters(pcell_inst).__repr__(), "[<1/0>, 1.0, 1.0]")
282 self.assertEqual(nh(c1.pcell_parameters_by_name(pcell_inst)), "{'h': 1.0, 'l': <1/0>, 'w': 1.0}")
283 self.assertEqual(c1.pcell_parameter(pcell_inst, "h").__repr__(), "1.0")
284 self.assertEqual(nh(pcell_inst.pcell_parameters_by_name()), "{'h': 1.0, 'l': <1/0>, 'w': 1.0}")
285 self.assertEqual(pcell_inst["h"].__repr__(), "1.0")
286 self.assertEqual(pcell_inst["i"].__repr__(), "None")
287 self.assertEqual(pcell_inst.pcell_parameter("h").__repr__(), "1.0")
288 self.assertEqual(pcell_var.pcell_declaration().__repr__(), pcell_decl.__repr__())
289 self.assertEqual(c1.pcell_declaration(pcell_inst).__repr__(), pcell_decl.__repr__())
290 self.assertEqual(pcell_inst.pcell_declaration().__repr__(), pcell_decl.__repr__())
291

Callers

nothing calls this directly

Calls 15

add_cellMethod · 0.95
strFunction · 0.85
LayoutMethod · 0.80
pcell_idMethod · 0.80
__repr__Method · 0.80
basic_nameMethod · 0.80
set_propertyMethod · 0.80
__str__Method · 0.80
TextMethod · 0.80
PCellTestLibClass · 0.70

Tested by

no test coverage detected