mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-12-15 17:20:07 +01:00
66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
import unittest
|
|
from unittests import wtc
|
|
import wx
|
|
import random
|
|
try:
|
|
import numpy as np
|
|
haveNumpy = True
|
|
except ImportError:
|
|
haveNumpy = False
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
w = 600
|
|
h = 400
|
|
|
|
def makeRandomLines():
|
|
lines = []
|
|
|
|
for i in range(num):
|
|
x1 = random.randint(0, w)
|
|
y1 = random.randint(0, h)
|
|
x2 = random.randint(0, w)
|
|
y2 = random.randint(0, h)
|
|
lines.append( (x1,y1, x2,y2) )
|
|
|
|
return lines
|
|
|
|
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
class dcDrawLists_Tests(wtc.WidgetTestCase):
|
|
|
|
@unittest.skipIf(not haveNumpy, "Numpy required for this test")
|
|
def test_dcDrawLinesFromBuffer(self):
|
|
pnl = wx.Panel(self.frame)
|
|
self.frame.SetSize((w,h))
|
|
dc = wx.ClientDC(pnl)
|
|
dc.SetPen(wx.Pen("BLACK", 1))
|
|
|
|
xs = np.linspace(0, w, w + 1)
|
|
ys = np.sin(xs / w * 2 * np.pi)
|
|
|
|
xs.shape = xs.size, 1
|
|
ys.shape = ys.size, 1
|
|
pts = np.append(xs, ys, 1)
|
|
|
|
dc.DrawLinesFromBuffer(pts.astype('intc'))
|
|
self.assertRaises(TypeError, dc.DrawLinesFromBuffer,
|
|
pts.astype('int64') if np.intc(1).nbytes != np.int64(1).nbytes else pts.astype('int32'))
|
|
self.assertRaises(TypeError, dc.DrawLinesFromBuffer, pts.tolist())
|
|
del dc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|