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

Method test_6_Layout_props2

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

Source from the content-addressed store, hash-verified

680
681 # Properties
682 def test_6_Layout_props2(self):
683
684 ly = pya.Layout(True)
685 pv = [ [ 17, "a" ], [ "b", [ 1, 5, 7 ] ] ]
686 pid = ly.properties_id( pv )
687 # does not work?
688 # pv = { 17: "a", "b": [ 1, 5, 7 ] }
689 # pid2 = ly.properties_id( pv )
690 # self.assertEqual( pid, pid2 )
691
692 ci1 = ly.add_cell( "c1" )
693 ci2 = ly.add_cell( "c2" )
694
695 linfo = pya.LayerInfo()
696 linfo.layer = 16
697 linfo.datatype = 1
698 lindex = ly.insert_layer( linfo )
699
700 c1 = ly.cell( ci1 )
701 c2 = ly.cell( ci2 )
702 tr = pya.Trans()
703 inst = c2.insert( pya.CellInstArray( c1.cell_index(), tr ) )
704 self.assertEqual( inst.parent_cell.name, c2.name )
705 self.assertEqual( inst.cell.name, c1.name )
706 self.assertEqual( repr(inst.layout()), repr(ly) )
707
708 s1 = c1.shapes( lindex ).insert( pya.Box( 10, -10, 50, 40 ), pid )
709 s2 = c1.shapes( lindex ).insert( pya.Box( 10, -10, 50, 40 ) )
710 self.assertEqual( repr(s1.property( 17 )), "\'a\'" )
711 s1.set_property( 5, 23 )
712 s1.delete_property( 17 )
713 self.assertEqual( repr(s1.property( 17 )), "None" )
714 self.assertEqual( str(s1.property( 5 )), "23" )
715 self.assertEqual( repr(s2.property( 17 )), "None" )
716
717 self.assertEqual( repr(inst.property( "a" )), "None" )
718 inst.set_property( "a", 33 )
719 self.assertEqual( str(inst.property( "a" )), "33" )
720 inst.delete_property( "a" )
721 self.assertEqual( repr(inst.property( "a" )), "None" )
722
723 # cell properties
724 self.assertEqual( repr(c1.property( 17 )), "None" )
725 c1.prop_id = pid
726 self.assertEqual( c1.prop_id, pid )
727 self.assertEqual( repr(c1.property( 17 )), "\'a\'" )
728 c1.set_property( 5, 23 )
729 c1.delete_property( 17 )
730 self.assertEqual( repr(c1.property( 17 )), "None" )
731 self.assertEqual( str(c1.property( 5 )), "23" )
732
733
734 # Instances and bboxes (editable mode)

Callers

nothing calls this directly

Calls 12

add_cellMethod · 0.95
insert_layerMethod · 0.95
strFunction · 0.85
LayoutMethod · 0.80
set_propertyMethod · 0.80
properties_idMethod · 0.45
cellMethod · 0.45
insertMethod · 0.45
cell_indexMethod · 0.45
layoutMethod · 0.45
BoxMethod · 0.45
propertyMethod · 0.45

Tested by

no test coverage detected