mirror of
https://github.com/KLayout/klayout.git
synced 2026-08-30 17:53:00 +02:00
Merge branch 'master' into wip
This commit is contained in:
Vendored
+6
-1
@@ -53,13 +53,18 @@ class DBShapesTest(unittest.TestCase):
|
||||
# Issue #2012 (reference count)
|
||||
def test_2(self):
|
||||
|
||||
# an empty dict provides the normal reference count
|
||||
obj = {}
|
||||
rc = sys.getrefcount(obj)
|
||||
|
||||
ly = pya.Layout()
|
||||
self.assertEqual(sys.getrefcount(ly), rc)
|
||||
top = ly.create_cell("TOP")
|
||||
l1 = ly.layer(1, 0)
|
||||
top.shapes(l1).insert(pya.Box(0, 0, 100, 200))
|
||||
|
||||
shapes = top.shapes(l1)
|
||||
self.assertEqual(sys.getrefcount(shapes), 2)
|
||||
self.assertEqual(sys.getrefcount(shapes), rc)
|
||||
|
||||
# Tests the ability to take PolygonWithProperties instead of base class
|
||||
# for setter
|
||||
|
||||
Vendored
+25
@@ -57,6 +57,31 @@ class LAYPixelBufferTests(unittest.TestCase):
|
||||
pb_copy = pya.PixelBuffer.read_png(tmp)
|
||||
self.assertEqual(compare(pb, pb_copy), True)
|
||||
|
||||
def test_2(self):
|
||||
|
||||
# to_bytes / from_bytes round-trip
|
||||
|
||||
import struct
|
||||
|
||||
pb = pya.PixelBuffer(10, 20)
|
||||
pb.transparent = True
|
||||
pb.fill(0xf0010203)
|
||||
pb.set_pixel(1, 2, 0x80102030)
|
||||
|
||||
data = bytes(pb.to_bytes())
|
||||
self.assertEqual(len(data), 8 + 10 * 20 * 4)
|
||||
self.assertEqual(struct.unpack("=II", data[0:8]), (10, 20)) # width, height header
|
||||
|
||||
self.assertEqual(pb == pya.PixelBuffer.from_bytes(data), True)
|
||||
|
||||
# a mismatched stream is rejected
|
||||
with self.assertRaises(Exception):
|
||||
pya.PixelBuffer.from_bytes(data[:-4])
|
||||
|
||||
# a header beyond the 64k x 64k limit is rejected
|
||||
with self.assertRaises(Exception):
|
||||
pya.PixelBuffer.from_bytes(struct.pack("=II", 65537, 1))
|
||||
|
||||
|
||||
# run unit tests
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user