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

Method test_6_EditableLayout

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

Source from the content-addressed store, hash-verified

419
420 # Instances and editable mode
421 def test_6_EditableLayout(self):
422
423 ly = pya.Layout( True )
424 self.assertEqual( ly.is_editable(), True )
425
426 ci1 = ly.add_cell( "c1" )
427 ci2 = ly.add_cell( "c2" )
428
429 c1 = ly.cell( ci1 )
430 c2 = ly.cell( ci2 )
431
432 tr = pya.CplxTrans( 1.5, 90.0, True, pya.DPoint( 100, -50 ) )
433 inst = pya.CellInstArray( c1.cell_index(), tr )
434 inst_ret = c2.insert( inst )
435 self.assertEqual( inst_ret.trans.to_s(), "m45 100,-50" )
436 inst = pya.CellInstArray( c1.cell_index(), pya.CplxTrans() )
437 inst_ret.cell_inst = inst
438 self.assertEqual( inst_ret.trans.to_s(), "r0 0,0" )
439
440 manager = pya.Manager()
441
442 ly = pya.Layout( True, manager )
443 self.assertEqual( ly.is_editable(), True )
444
445 ci1 = ly.add_cell( "c1" )
446 ci2 = ly.add_cell( "c2" )
447
448 c1 = ly.cell( ci1 )
449 c2 = ly.cell( ci2 )
450
451 tr = pya.CplxTrans( 1.5, 90.0, True, pya.DPoint( 100, -50 ) )
452 inst = pya.CellInstArray( c1.cell_index(), tr )
453 inst_ret = c2.insert( inst )
454 self.assertEqual( inst_ret.trans.to_s(), "m45 100,-50" )
455 manager.transaction( "trans" )
456 inst = pya.CellInstArray( c1.cell_index(), pya.CplxTrans() )
457 inst_ret.cell_inst = inst
458 self.assertEqual( inst_ret.trans.to_s(), "r0 0,0" )
459 manager.commit()
460 manager.undo()
461 c2 = ly.cell( ci2 )
462 for i in c2.each_inst():
463 inst_ret = i
464 break
465 self.assertEqual( inst_ret.trans.to_s(), "m45 100,-50" )
466
467 manager = None
468
469 ly = pya.Layout( False )
470 self.assertEqual( ly.is_editable(), False )
471
472 ci1 = ly.add_cell( "c1" )
473 ci2 = ly.add_cell( "c2" )
474
475 c1 = ly.cell( ci1 )
476 c2 = ly.cell( ci2 )
477
478 tr = pya.CplxTrans( 1.5, 90.0, True, pya.DPoint( 100, -50 ) )

Callers

nothing calls this directly

Calls 11

add_cellMethod · 0.95
transactionMethod · 0.95
commitMethod · 0.95
undoMethod · 0.95
LayoutMethod · 0.80
ManagerMethod · 0.80
is_editableMethod · 0.45
cellMethod · 0.45
cell_indexMethod · 0.45
insertMethod · 0.45
to_sMethod · 0.45

Tested by

no test coverage detected