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

Method test_6_Layout

testdata/python/dbLayoutTest.py:239–417  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

237
238 # Instances and bboxes
239 def test_6_Layout(self):
240
241 ly = pya.Layout()
242
243 ci1 = ly.add_cell( "c1" )
244 ci2 = ly.add_cell( "c2" )
245
246 linfo = pya.LayerInfo()
247 linfo.layer = 16
248 linfo.datatype = 1
249 lindex = ly.insert_layer( linfo )
250
251 linfo = pya.LayerInfo()
252 linfo.layer = 16
253 linfo.datatype = 2
254 ldummy = ly.insert_layer( linfo )
255
256 c1 = ly.cell( ci1 )
257 c2 = ly.cell( ci2 )
258
259 c1.shapes( lindex ).insert( pya.Box( 10, -10, 50, 40 ) )
260 self.assertEqual( c1.bbox().to_s(), "(10,-10;50,40)" )
261
262 tr = pya.Trans( pya.Trans.R90, pya.Point( 100, -50 ) )
263 inst = pya.CellInstArray( c1.cell_index(), tr )
264 self.assertEqual( inst.bbox( ly ).to_s(), c1.bbox().transformed(tr).to_s() )
265 self.assertEqual( inst.bbox_per_layer( ly, lindex ).to_s(), c1.bbox().transformed(tr).to_s() )
266 self.assertEqual( inst.bbox_per_layer( ly, ldummy ).to_s(), "()" )
267 self.assertEqual( inst.size(), 1 )
268 self.assertEqual( inst.is_complex(), False )
269 c2.insert( inst )
270 self.assertEqual( c2.bbox().to_s(), c1.bbox().transformed(tr).to_s() )
271
272 c2.clear_insts()
273 tr = pya.CplxTrans( 1.5, 90.0, True, pya.DPoint( 100, -50 ) )
274 inst = pya.CellInstArray( c1.cell_index(), tr )
275 inst2 = inst.dup()
276 self.assertEqual( inst.bbox( ly ).to_s(), c1.bbox().transformed(tr).to_s() )
277 self.assertEqual( inst.size(), 1 )
278 self.assertEqual( inst.is_complex(), True )
279 self.assertEqual( inst.is_regular_array(), False )
280 c2.insert( inst )
281 self.assertEqual( c2.bbox().to_s(), c1.bbox().transformed(tr).to_s() )
282
283 c2.clear_insts()
284 self.assertEqual( c2.bbox().to_s(), "()" )
285
286 tr = pya.Trans( pya.Trans.R90, pya.Point( 100, -50 ) )
287 inst = pya.CellInstArray( c1.cell_index(), tr, pya.Point( 100, 0 ), pya.Point( 0, 100 ), 10, 20 )
288 self.assertEqual( inst == inst2, False )
289 self.assertEqual( inst != inst2, True )
290 inst2 = inst.dup()
291 self.assertEqual( inst == inst2, True )
292 self.assertEqual( inst != inst2, False )
293 self.assertEqual( inst.bbox( ly ).to_s(), "(60,-40;1010,1900)" )
294 self.assertEqual( inst.trans.to_s(), "r90 100,-50" )
295 self.assertEqual( inst.cplx_trans.to_s(), "r90 *1 100,-50" )
296 self.assertEqual( inst.size(), 200 )

Callers

nothing calls this directly

Calls 15

add_cellMethod · 0.95
insert_layerMethod · 0.95
cell_nameMethod · 0.95
LayoutMethod · 0.80
clear_instsMethod · 0.80
child_instMethod · 0.80
parent_cellsMethod · 0.80
hierarchy_levelsMethod · 0.80
cellMethod · 0.45
insertMethod · 0.45
BoxMethod · 0.45
to_sMethod · 0.45

Tested by

no test coverage detected