(self)
| 733 | |
| 734 | # Instances and bboxes (editable mode) |
| 735 | def test_6_Layout_new(self): |
| 736 | |
| 737 | ly = pya.Layout() |
| 738 | if ly.is_editable(): |
| 739 | |
| 740 | pv = { 17: "a", "b": [ 1, 5, 7 ] } |
| 741 | pid1 = ly.properties_id( pv ) |
| 742 | pv = { 100: "x" } |
| 743 | pid2 = ly.properties_id( pv ) |
| 744 | |
| 745 | ci1 = ly.add_cell( "c1" ) |
| 746 | ci2 = ly.add_cell( "c2" ) |
| 747 | ci3 = ly.add_cell( "c3" ) |
| 748 | c1 = ly.cell( ci1 ) |
| 749 | c2 = ly.cell( ci2 ) |
| 750 | c3 = ly.cell( ci3 ) |
| 751 | |
| 752 | tr = pya.Trans( pya.Trans.R90, pya.Point( 100, -50 ) ) |
| 753 | inst_1 = pya.CellInstArray( c1.cell_index(), tr ) |
| 754 | new_inst_1 = c2.insert( inst_1, pid1 ) |
| 755 | new_inst_2 = c2.insert( inst_1, pid2 ) |
| 756 | inst_2 = pya.CellInstArray( c3.cell_index(), tr*tr ) |
| 757 | new_inst_3 = c1.insert( inst_2 ) |
| 758 | |
| 759 | self.assertEqual( new_inst_1.cell_index, c1.cell_index() ) |
| 760 | self.assertEqual( str(new_inst_1.trans), str(tr) ) |
| 761 | self.assertEqual( new_inst_1.prop_id, pid1 ) |
| 762 | self.assertEqual( new_inst_2.cell_index, c1.cell_index() ) |
| 763 | self.assertEqual( str(new_inst_2.trans), str(tr) ) |
| 764 | self.assertEqual( new_inst_2.prop_id, pid2 ) |
| 765 | self.assertEqual( new_inst_3.cell_index, c3.cell_index() ) |
| 766 | self.assertEqual( new_inst_3.prop_id, 0 ) |
| 767 | self.assertEqual( str(new_inst_3.trans), str(tr*tr) ) |
| 768 | |
| 769 | new_inst_3 = c1.replace_prop_id( new_inst_3, pid2 ) |
| 770 | |
| 771 | self.assertEqual( new_inst_1.cell_index, c1.cell_index() ) |
| 772 | self.assertEqual( str(new_inst_1.trans), str(tr) ) |
| 773 | self.assertEqual( new_inst_1.prop_id, pid1 ) |
| 774 | self.assertEqual( new_inst_2.cell_index, c1.cell_index() ) |
| 775 | self.assertEqual( str(new_inst_2.trans), str(tr) ) |
| 776 | self.assertEqual( new_inst_2.prop_id, pid2 ) |
| 777 | self.assertEqual( new_inst_3.cell_index, c3.cell_index() ) |
| 778 | self.assertEqual( new_inst_3.prop_id, pid2 ) |
| 779 | self.assertEqual( str(new_inst_3.trans), str(tr*tr) ) |
| 780 | |
| 781 | try: |
| 782 | new_inst_1 = c1.replace( new_inst_1, inst_2 ) |
| 783 | self.assertEqual( True, False ) |
| 784 | except: |
| 785 | # OK: gives an error since we are trying to erase an object from a list that is does not belong to |
| 786 | pass |
| 787 | |
| 788 | new_inst_1 = c2.replace( new_inst_1, inst_2 ) |
| 789 | |
| 790 | self.assertEqual( new_inst_1.cell_index, c3.cell_index() ) |
| 791 | self.assertEqual( str(new_inst_1.trans), str(tr*tr) ) |
| 792 | self.assertEqual( new_inst_1.prop_id, pid1 ) |
nothing calls this directly
no test coverage detected