def test_gc_random(): from weakref import WeakValueDictionary w = WeakValueDictionary() a = sd.Random(freq='5ms', interval='100ms') w[1] = a yield gen.sleep(0.1) a = sd.Random(freq='5ms', interval='100ms') w[2] = a yield gen.sleep(0.1) a = sd.Random(freq='5ms', interval='100ms') w[3] = a yield gen.sleep(0.1) assert len(w) == 1
def test_gc(): sdf = sd.Random(freq='5ms', interval='100ms') a = StreamingDataFrame({ 'volatility': sdf.x.rolling('100ms').var(), 'sub': sdf.x - sdf.x.rolling('100ms').mean() }) n = len(sdf.stream.downstreams) yield gen.sleep(0.1) a = StreamingDataFrame({ 'volatility': sdf.x.rolling('100ms').var(), 'sub': sdf.x - sdf.x.rolling('100ms').mean() }) yield gen.sleep(0.1) a = StreamingDataFrame({ 'volatility': sdf.x.rolling('100ms').var(), 'sub': sdf.x - sdf.x.rolling('100ms').mean() }) yield gen.sleep(0.1) a = StreamingDataFrame({ 'volatility': sdf.x.rolling('100ms').var(), 'sub': sdf.x - sdf.x.rolling('100ms').mean() }) assert len(sdf.stream.downstreams) == n del a import gc gc.collect() assert len(sdf.stream.downstreams) == 0
def test_random_source(): source = sd.Random(freq='10ms', interval='100ms') L = source.stream.sink_to_list() yield gen.sleep(0.5) assert 2 < len(L) < 8 assert all(2 < len(df) < 25 for df in L) source.x source.rolling('10s')
def test_plot(): pytest.importorskip('bokeh') sdf = sd.Random(freq='10ms', interval='50ms') result = sdf[['x', 'y']].plot() cds = result['cds'] assert set(cds.data) == {'x', 'y', 'index'} assert not len(cds.data['x']) yield gen.sleep(0.130) assert len(cds.data['x']) assert len(set(map(len, cds.data.values()))) == 1 assert set(sdf.x.plot()['cds'].data) == {'x', 'index'}
def test_repartition_interval(n): source = sd.Random(freq='10ms', interval='100ms') L = source.stream.sink_to_list() L2 = source.repartition(interval='150ms').stream.sink_to_list() yield gen.sleep(0.400) assert L2 for df in L2: assert df.index.max() - df.index.min() <= pd.Timedelta('150ms') expected = pd.concat(L).iloc[:sum(map(len, L2))] assert_eq(pd.concat(L2), expected)
def test_random_source(client): n = len(client.cluster.scheduler.tasks) source = sd.Random(freq='1ms', interval='10ms', dask=True) L = source.x.stream.gather().sink_to_list() sleep(0.20) assert len(client.cluster.scheduler.tasks) < n + 10
def test_random_source(loop): with Client(processes=False, diagnostics_port=False, loop=loop) as client: source = sd.Random(freq='1ms', interval='10ms', dask=True) L = source.x.stream.gather().sink_to_list() sleep(0.20) assert len(client.cluster.scheduler.tasks) < 10