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

Method test_6_Layout_props

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

Source from the content-addressed store, hash-verified

491
492 # Instances and bboxes
493 def test_6_Layout_props(self):
494
495 ly = pya.Layout()
496 pv = [ [ 17, "a" ], [ "b", [ 1, 5, 7 ] ] ]
497 pid = ly.properties_id( pv )
498
499 ci1 = ly.add_cell( "c1" )
500 ci2 = ly.add_cell( "c2" )
501
502 linfo = pya.LayerInfo()
503 linfo.layer = 16
504 linfo.datatype = 1
505 lindex = ly.insert_layer( linfo )
506
507 linfo = pya.LayerInfo()
508 linfo.layer = 16
509 linfo.datatype = 2
510 ldummy = ly.insert_layer( linfo )
511
512 c1 = ly.cell( ci1 )
513 c2 = ly.cell( ci2 )
514
515 c1.shapes( lindex ).insert( pya.Box( 10, -10, 50, 40 ), pid )
516 self.assertEqual( c1.bbox().to_s(), "(10,-10;50,40)" )
517
518 tr = pya.Trans( pya.Trans.R90, pya.Point( 100, -50 ) )
519 inst = pya.CellInstArray( c1.cell_index(), tr )
520 self.assertEqual( inst.bbox( ly ).to_s(), c1.bbox().transformed(tr).to_s() )
521 self.assertEqual( inst.bbox_per_layer( ly, lindex ).to_s(), c1.bbox().transformed(tr).to_s() )
522 self.assertEqual( inst.bbox_per_layer( ly, ldummy ).to_s(), "()" )
523 self.assertEqual( inst.size(), 1 )
524 self.assertEqual( inst.is_complex(), False )
525 c2.insert( inst, pid )
526 self.assertEqual( c2.bbox().to_s(), c1.bbox().transformed(tr).to_s() )
527
528 c2.clear_insts()
529 tr = pya.CplxTrans( 1.5, 90.0, True, pya.DPoint( 100, -50 ) )
530 inst = pya.CellInstArray( c1.cell_index(), tr )
531 inst2 = inst.dup()
532 self.assertEqual( inst.bbox( ly ).to_s(), c1.bbox().transformed(tr).to_s() )
533 self.assertEqual( inst.size(), 1 )
534 self.assertEqual( inst.is_complex(), True )
535 self.assertEqual( inst.is_regular_array(), False )
536 c2.insert( inst, pid )
537 self.assertEqual( c2.bbox().to_s(), c1.bbox().transformed(tr).to_s() )
538
539 c2.clear_insts()
540 self.assertEqual( c2.bbox().to_s(), "()" )
541
542 tr = pya.Trans( pya.Trans.R90, pya.Point( 100, -50 ) )
543 inst = pya.CellInstArray( c1.cell_index(), tr, pya.Point( 100, 0 ), pya.Point( 0, 100 ), 10, 20 )
544 self.assertEqual( inst == inst2, False )
545 self.assertEqual( inst != inst2, True )
546 inst2 = inst.dup()
547 self.assertEqual( inst == inst2, True )
548 self.assertEqual( inst != inst2, False )
549 self.assertEqual( inst.bbox( ly ).to_s(), "(60,-40;1010,1900)" )
550 self.assertEqual( inst.trans.to_s(), "r90 100,-50" )

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
properties_idMethod · 0.45
cellMethod · 0.45
insertMethod · 0.45
BoxMethod · 0.45

Tested by

no test coverage detected