public void Py_Get_UsesTypeName_AsKey_And_ReturnsLastItem() { var data = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000), new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 3, 10000) }, typeof(TradeBar)); using (Py.GIL()) { dynamic test = PythonEngine.ModuleFromString("testModule", @" from clr import AddReference AddReference(""QuantConnect.Common"") from QuantConnect import * from QuantConnect.Data.Market import * def Test(dynamicData): data = dynamicData.Get(TradeBar) if data.Close != 3: raise Exception('Unexpected value')").GetAttr("Test"); Assert.DoesNotThrow(() => test(data)); } }
public void Py_Get_TradeBarArray() { var securityData = new DynamicSecurityData(RegisteredSecurityDataTypesProvider.Null); var data = new [] { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 15m, 10000) }; securityData.StoreData(typeof(TradeBar), data); using (Py.GIL()) { dynamic test = PythonEngine.ModuleFromString("testModule", @" from clr import AddReference AddReference(""QuantConnect.Common"") from QuantConnect import * from QuantConnect.Data.Market import * def Test(dynamicData): data = dynamicData.Get(TradeBar) if data.Low != 5: raise Exception('Unexpected value')").GetAttr("Test"); Assert.DoesNotThrow(() => test(securityData)); } }
public void Py_AccessPropertyThatDoesNotExists_ReturnsEmptyList_WhenTypeIsIncludedInRegisteredTypes() { var registeredTypes = new RegisteredSecurityDataTypesProvider(); registeredTypes.RegisterType(typeof(TradeBar)); dynamic securityData = new DynamicSecurityData(registeredTypes); using (Py.GIL()) { dynamic test = PythonEngine.ModuleFromString("testModule", @" from clr import AddReference AddReference(""QuantConnect.Common"") from QuantConnect import * from QuantConnect.Data.Market import * def Test(dynamicData): data = dynamicData.GetAll(TradeBar) if data is None: raise Exception('Unexpected None value') if len(data) != 0: raise Exception('Unexpected length')").GetAttr("Test"); Assert.DoesNotThrow(() => test(securityData)); } }
[Test] public void Py_StoreData_GetAll_UsesTypeName() { var data = new DynamicSecurityData(RegisteredSecurityDataTypesProvider.Null); data.StoreData(typeof(int), new[] { 1 }); using (Py.GIL()) { dynamic test = PythonEngine.ModuleFromString("testModule", @" from clr import AddReference AddReference(""QuantConnect.Common"") AddReference(""System"") from System import * from QuantConnect import * def Test(dynamicData): data = dynamicData.GetAll(Int32) if len(data) != 1: raise Exception('Unexpected length') if data[0] != 1: raise Exception('Unexpected value')").GetAttr("Test"); Assert.DoesNotThrow(() => test(data)); } }
public void Py_StoreData_GetAll_UsesTypeName() { var data = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000) }, typeof(TradeBar)); using (Py.GIL()) { dynamic test = PyModule.FromString("testModule", @" from AlgorithmImports import * def Test(dynamicData): data = dynamicData.GetAll(TradeBar) if len(data) != 1: raise Exception('Unexpected length') if data[0].Close != 1: raise Exception('Unexpected value')").GetAttr("Test"); Assert.DoesNotThrow(() => test(data)); } }
public void Py_StoreData_HasProperty() { var data = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000) }, typeof(TradeBar)); using (Py.GIL()) { dynamic test = PythonEngine.ModuleFromString("testModule", @" from clr import AddReference AddReference(""QuantConnect.Common"") from QuantConnect import * from QuantConnect.Data.Market import * def Test(dynamicData): data = dynamicData.HasProperty(""TradeBar"") if not data: raise Exception('Unexpected HasProperty result')").GetAttr("Test"); Assert.DoesNotThrow(() => test(data)); } }
public void AccessingPropertyThatDoesNotExists_ThrowsKeyNotFoundException_WhenNotIncludedInRegisteredTypes() { var registeredTypes = new RegisteredSecurityDataTypesProvider(); dynamic securityData = new DynamicSecurityData(registeredTypes, _cache); Assert.Throws <KeyNotFoundException>(() => { var _ = securityData.NotFoundProperty; }); }
public void Get_UsesTypeName_AsKey_And_ReturnsLastItem() { var data = new DynamicSecurityData(RegisteredSecurityDataTypesProvider.Null); data.StoreData(typeof(int), new[] { 1, 2, 3 }); var item = data.Get <int>(); Assert.AreEqual(3, item); }
public void GetAll_UsesTypeName_AsKey() { var data = new DynamicSecurityData(RegisteredSecurityDataTypesProvider.Null); data.SetProperty(typeof(int).Name, new[] { 1 }); var arr = data.GetAll <int>(); Assert.AreEqual(1, arr.Count); Assert.AreEqual(1, arr[0]); }
public void AccessPropertyThatDoesNotExists_ReturnsEmptyList_WhenTypeIsIncludedInRegisteredTypes() { var registeredTypes = new RegisteredSecurityDataTypesProvider(); registeredTypes.RegisterType(typeof(TradeBar)); dynamic securityData = new DynamicSecurityData(registeredTypes); var tradeBars = securityData.TradeBar; Assert.IsInstanceOf <List <TradeBar> >(tradeBars); Assert.IsEmpty(tradeBars); }
public void StoreData_UsesTypeName_AsKey() { var data = new DynamicSecurityData(RegisteredSecurityDataTypesProvider.Null); data.StoreData(typeof(int), new[] { 1 }); Assert.IsTrue(data.HasProperty(typeof(int).Name)); var arr = (IReadOnlyList <int>)data.GetProperty(typeof(int).Name); Assert.AreEqual(1, arr.Count); Assert.AreEqual(1, arr[0]); }
public void Get_UsesTypeName_AsKey_And_ReturnsLastItem() { var data = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000), new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 2, 10000), new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 3, 10000) }, typeof(TradeBar)); var item = data.Get <TradeBar>(); Assert.AreEqual(3, item.Close); }
public void DataCanNotBeSetDynamically() { var securityData = new DynamicSecurityData(_dataTypesProvider, _cache); var data = new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000) }; dynamic dynamicSecurityData = securityData; Assert.Throws <InvalidOperationException>(() => { dynamicSecurityData.TradeBar = data; }); }
public void AccessesDataDynamically() { var securityData = new DynamicSecurityData(RegisteredSecurityDataTypesProvider.Null); var data = new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 15m, 10000) }; securityData.StoreData(typeof(TradeBar), data); dynamic dynamicSecurityData = securityData; var tradeBars = dynamicSecurityData.TradeBar; Assert.IsInstanceOf <IReadOnlyList <TradeBar> >(tradeBars); }
public void AccessesDataDynamically() { var securityData = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000), new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 2, 10000), new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 3, 10000) }, typeof(TradeBar)); dynamic dynamicSecurityData = securityData; var tradeBars = dynamicSecurityData.TradeBar; Assert.IsInstanceOf <IReadOnlyList <TradeBar> >(tradeBars); }
public void GetAll_UsesTypeName_AsKey() { var data = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000), new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 2, 10000), new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 3, 10000) }, typeof(TradeBar)); var arr = data.GetAll <TradeBar>(); Assert.AreEqual(3, arr.Count); Assert.AreEqual(1, arr[0].Close); }
public void StoreData_UsesTypeName_AsKey() { var data = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 15m, 10000) }, typeof(TradeBar)); Assert.IsTrue(data.HasProperty(typeof(TradeBar).Name)); var arr = (IReadOnlyList <TradeBar>)data.GetProperty(typeof(TradeBar).Name); Assert.AreEqual(1, arr.Count); Assert.AreEqual(15, arr[0].Close); }
public void Py_GetTypeThatDoesNotExists_ThrowsKeyNotFoundException_WhenNotIncludedInRegisteredTypes() { var registeredTypes = new RegisteredSecurityDataTypesProvider(); dynamic securityData = new DynamicSecurityData(registeredTypes, _cache); using (Py.GIL()) { dynamic test = PyModule.FromString("testModule", @" from AlgorithmImports import * def Test(dynamicData): data = dynamicData.Get(TradeBar)").GetAttr("Test"); Assert.Throws <KeyNotFoundException>(() => test(securityData)); } }
public void Py_GetTypeThatDoesNotExists_ThrowsKeyNotFoundException_WhenNotIncludedInRegisteredTypes() { var registeredTypes = new RegisteredSecurityDataTypesProvider(); dynamic securityData = new DynamicSecurityData(registeredTypes); using (Py.GIL()) { dynamic test = PythonEngine.ModuleFromString("testModule", @" from clr import AddReference AddReference(""QuantConnect.Common"") AddReference(""System"") from System import * from QuantConnect import * def Test(dynamicData): data = dynamicData.Get(TradeBar)").GetAttr("Test"); Assert.Throws <PythonException>(() => test(securityData)); } }
public void Py_AccessPropertyThatDoesNotExists_ReturnsEmptyList_WhenTypeIsIncludedInRegisteredTypes() { var registeredTypes = new RegisteredSecurityDataTypesProvider(); registeredTypes.RegisterType(typeof(TradeBar)); dynamic securityData = new DynamicSecurityData(registeredTypes, _cache); using (Py.GIL()) { dynamic test = PyModule.FromString("testModule", @" from AlgorithmImports import * def Test(dynamicData): data = dynamicData.GetAll(TradeBar) if data is None: raise Exception('Unexpected None value') if len(data) != 0: raise Exception('Unexpected length')").GetAttr("Test"); Assert.DoesNotThrow(() => test(securityData)); } }
public void Py_StoreData_HasProperty() { var data = new DynamicSecurityData(_dataTypesProvider, _cache); _cache.StoreData(new List <TradeBar> { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 1, 10000) }, typeof(TradeBar)); using (Py.GIL()) { dynamic test = PyModule.FromString("testModule", @" from AlgorithmImports import * def Test(dynamicData): data = dynamicData.HasProperty(""TradeBar"") if not data: raise Exception('Unexpected HasProperty result')").GetAttr("Test"); Assert.DoesNotThrow(() => test(data)); } }
public void Py_Get_TradeBarArray() { var securityData = new DynamicSecurityData(_dataTypesProvider, _cache); var data = new[] { new TradeBar(DateTime.UtcNow, Symbols.SPY, 10m, 20m, 5m, 15m, 10000) }; _cache.StoreData(data, typeof(TradeBar)); using (Py.GIL()) { dynamic test = PyModule.FromString("testModule", @" from AlgorithmImports import * def Test(dynamicData): data = dynamicData.Get(TradeBar) if data.Low != 5: raise Exception('Unexpected value')").GetAttr("Test"); Assert.DoesNotThrow(() => test(securityData)); } }
public void Py_StoreData_HasProperty() { var data = new DynamicSecurityData(RegisteredSecurityDataTypesProvider.Null); data.StoreData(typeof(int), new[] { 1 }); using (Py.GIL()) { dynamic test = PythonEngine.ModuleFromString("testModule", @" from clr import AddReference AddReference(""QuantConnect.Common"") AddReference(""System"") from System import * from QuantConnect import * def Test(dynamicData): data = dynamicData.HasProperty(""Int32"") if not data: raise Exception('Unexpected HasProperty result')").GetAttr("Test"); Assert.DoesNotThrow(() => test(data)); } }