Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        [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));
            }
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 6
0
        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));
            }
        }
Ejemplo n.º 7
0
        public void AccessingPropertyThatDoesNotExists_ThrowsKeyNotFoundException_WhenNotIncludedInRegisteredTypes()
        {
            var     registeredTypes = new RegisteredSecurityDataTypesProvider();
            dynamic securityData    = new DynamicSecurityData(registeredTypes, _cache);

            Assert.Throws <KeyNotFoundException>(() =>
            {
                var _ = securityData.NotFoundProperty;
            });
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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]);
        }
Ejemplo n.º 10
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);
        }
Ejemplo n.º 11
0
        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]);
        }
Ejemplo n.º 12
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);
        }
Ejemplo n.º 13
0
        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;
            });
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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));
            }
        }
Ejemplo n.º 19
0
        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));
            }
        }
Ejemplo n.º 20
0
        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));
            }
        }
Ejemplo n.º 21
0
        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));
            }
        }
Ejemplo n.º 22
0
        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));
            }
        }
Ejemplo n.º 23
0
        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));
            }
        }