2017-02-06 07:13:00 +00:00
|
|
|
import numpy as np
|
|
|
|
import pyqtgraph as pg
|
|
|
|
|
|
|
|
pg.mkQApp()
|
|
|
|
|
|
|
|
|
|
|
|
def test_fft():
|
|
|
|
f = 20.
|
|
|
|
x = np.linspace(0, 1, 1000)
|
|
|
|
y = np.sin(2 * np.pi * f * x)
|
|
|
|
pd = pg.PlotDataItem(x, y)
|
2016-12-15 14:26:19 +00:00
|
|
|
pd.setFftMode(True)
|
2017-02-06 07:13:00 +00:00
|
|
|
x, y = pd.getData()
|
|
|
|
assert abs(x[np.argmax(y)] - f) < 0.03
|
2016-12-15 14:26:19 +00:00
|
|
|
|
2017-02-06 07:13:00 +00:00
|
|
|
x = np.linspace(0, 1, 1001)
|
|
|
|
y = np.sin(2 * np.pi * f * x)
|
|
|
|
pd.setData(x, y)
|
|
|
|
x, y = pd.getData()
|
|
|
|
assert abs(x[np.argmax(y)]- f) < 0.03
|
2016-12-15 14:26:19 +00:00
|
|
|
|
2017-02-06 07:13:00 +00:00
|
|
|
pd.setLogMode(True, False)
|
|
|
|
x, y = pd.getData()
|
|
|
|
assert abs(x[np.argmax(y)] - np.log10(f)) < 0.01
|
2018-04-05 03:13:09 +00:00
|
|
|
|
|
|
|
def test_setData():
|
|
|
|
pdi = pg.PlotDataItem()
|
|
|
|
|
|
|
|
#test empty data
|
|
|
|
pdi.setData([])
|
|
|
|
|
|
|
|
#test y data
|
|
|
|
y = list(np.random.normal(size=100))
|
|
|
|
pdi.setData(y)
|
|
|
|
assert len(pdi.xData) == 100
|
|
|
|
assert len(pdi.yData) == 100
|
|
|
|
|
|
|
|
#test x, y data
|
|
|
|
y += list(np.random.normal(size=50))
|
|
|
|
x = np.linspace(5, 10, 150)
|
|
|
|
|
|
|
|
pdi.setData(x, y)
|
|
|
|
assert len(pdi.xData) == 150
|
|
|
|
assert len(pdi.yData) == 150
|
|
|
|
|
|
|
|
#test dict of x, y list
|
|
|
|
y += list(np.random.normal(size=50))
|
|
|
|
x = list(np.linspace(5, 10, 200))
|
|
|
|
pdi.setData({'x': x, 'y': y})
|
|
|
|
assert len(pdi.xData) == 200
|
|
|
|
assert len(pdi.yData) == 200
|
2018-04-05 03:13:58 +00:00
|
|
|
|
|
|
|
def test_clear():
|
|
|
|
y = list(np.random.normal(size=100))
|
|
|
|
x = np.linspace(5, 10, 100)
|
|
|
|
pdi = pg.PlotDataItem(x, y)
|
|
|
|
pdi.clear()
|
|
|
|
|
|
|
|
assert pdi.xData == None
|
|
|
|
assert pdi.yData == None
|
2016-12-15 14:26:19 +00:00
|
|
|
|
|
|
|
def test_clear_in_step_mode():
|
|
|
|
w = pg.PlotWidget()
|
|
|
|
c = pg.PlotDataItem([1,4,2,3], [5,7,6], stepMode=True)
|
|
|
|
w.addItem(c)
|
|
|
|
c.clear()
|