diff --git a/benchmarks/test_benchmark_indicators.py b/benchmarks/test_benchmark_indicators.py index 89a6a839..e637e446 100644 --- a/benchmarks/test_benchmark_indicators.py +++ b/benchmarks/test_benchmark_indicators.py @@ -95,6 +95,9 @@ def test_benchmark_ht_trendline(benchmark, quotes): def test_benchmark_hurst(benchmark, quotes): benchmark(indicators.get_hurst, quotes) + +def test_benchmark_hurst_longlong(benchmark, longish_quotes): + benchmark(indicators.get_hurst, longish_quotes+longish_quotes) def test_benchmark_ichimoku(benchmark, quotes): benchmark(indicators.get_ichimoku, quotes) diff --git a/stock_indicators/_cstypes/list.py b/stock_indicators/_cstypes/list.py index b9be7e6a..c086e7a6 100644 --- a/stock_indicators/_cstypes/list.py +++ b/stock_indicators/_cstypes/list.py @@ -1,5 +1,8 @@ +from collections import deque + from stock_indicators._cslib import CsList + class List: """ Class for converting Python's iterator type into C#'s `System.Collections.Generic.List` class. @@ -29,8 +32,7 @@ class List: """ def __new__(cls, generic, sequence) -> CsList: - clist = CsList[generic]() - for i in sequence: - clist.Add(i) - - return clist + cs_list = CsList[generic]() + deque(map(cs_list.Add, sequence), maxlen=0) + + return cs_list