public void EvaluateTest() { var originalHours = CurrentHours(_config); OptimizerAppDomainManager.GetResults(AppDomain.CurrentDomain).Add("key", new Dictionary <string, decimal>() { { "SharpeRatio", 123m } }); //will not adapt on first result Assert.AreEqual(originalHours, CurrentHours(_config)); _unit.Evaluate(Mock.Of <IChromosome>()); Assert.AreEqual(originalHours, CurrentHours(_config)); var fitness = _unit.Evaluate(Mock.Of <IChromosome>()); var actualHours = CurrentHours(_config); //sharpe improved by 50%, period window should increase by 24 hours Assert.AreEqual(72, Math.Round(actualHours)); actualHours = CurrentHours(_config); fitness = _unit.Evaluate(Mock.Of <IChromosome>()); actualHours = CurrentHours(_config); //50% again Assert.AreEqual(108, Math.Round(actualHours)); }
public void SetUp() { _config = new OptimizerConfiguration { StartDate = new DateTime(2001, 1, 2), EndDate = new DateTime(2001, 1, 3) }; _unit = new Wrapper(_config, Mock.Of <IFitnessFilter>()); OptimizerAppDomainManager.Initialize(); }
private Dictionary<string, Dictionary<string, decimal>> GetResults() { if (ScenarioContext.Current.Get<OptimizerConfiguration>().UseSharedAppDomain) { return SingleAppDomainManager.GetResults(); } else { return OptimizerAppDomainManager.GetResults(); } }
public void WhenIOptimize() { if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\Optimization.Example.dll"))) { File.Copy(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Optimization.Example.dll"), Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\Optimization.Example.dll")); } SpinWait.SpinUntil(() => { try { File.Create(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "trace.txt")); return(true); } catch (Exception) { return(false); } }, TimeSpan.FromSeconds(1)); Config.Set("algorithm-location", "../Optimization.Example/bin/debug/Optimization.Example.dll"); var config = ScenarioContext.Current.Get <OptimizerConfiguration>(); if (config.UseSharedAppDomain) { SingleAppDomainManager.Initialize(); config.AlgorithmTypeName = "ParameterizedSharedAppDomainAlgorithm"; } else { OptimizerAppDomainManager.Initialize(); } var manager = new MaximizerManager(); manager.Initialize(config, new SharpeMaximizer(config, new FitnessFilter())); manager.Start(); }