public int CompareTo([CanBeNull] AffordanceDevice other) { if (other == null) { return(0); } if (TimeOffset != other.TimeOffset) { return(decimal.Compare(TimeOffset, other.TimeOffset)); } if (other.Name != Name) { return(string.CompareOrdinal(Name, other.Name)); } if (TimeProfile != other.TimeProfile && TimeProfile != null && other.TimeProfile != null) { return(TimeProfile.CompareTo(other.TimeProfile)); } if (LoadType != null && other.LoadType != null && LoadType != other.LoadType) { return(LoadType.CompareTo(other.LoadType)); } return(_probability.CompareTo(other.Probability)); }
public TimeProfileView(TimeProfile profile) { UnderlyingProfile = profile; Nodes = new List <TimeNodeView>(); foreach (var node in UnderlyingProfile.Nodes) { Nodes.Add(new TimeNodeView(node)); } }
public static string Serialize(TimeProfile profile) { var sb = new StringBuilder(); var stream = new StringWriter(sb); Serializer.Serialize(stream, profile); return(sb.ToString()); }
public override void WarmsUpProperly() { var tp = new TimeProfile(20); var time = new DateTime(2020, 8, 1); var period = ((IIndicatorWarmUpPeriodProvider)tp).WarmUpPeriod; for (var i = 0; i < period; i++) { tp.Update(time.AddDays(i), i); Assert.AreEqual(i == period - 1, tp.IsReady); } }
public static void SaveProfile(TimeProfile profile) { var profileString = TimeProfileSerializer.Serialize(profile); var directory = System.IO.Path.GetDirectoryName(_savedProfilePath); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } File.WriteAllText(_savedProfilePath, profileString, Encoding.UTF8); Log.Info("Profile saved"); }
public TimeKeeper(TimeProfile profile) { _profile = profile; var monitors = new List <ITemperatureMonitor>(); foreach (var monitor in Monitors.Create()) { var wrappedMonitor = new LerpedValuesMonitor(new CachedValuesMonitor(monitor)); monitors.Add(wrappedMonitor); wrappedMonitor.CurrentChanged += WrappedMonitor_CurrentChanged; } _allMonitors = new Monitors(monitors); }
public override void WarmsUpProperly() { var tp = new TimeProfile(20); var reference = new DateTime(2000, 1, 1); var period = ((IIndicatorWarmUpPeriodProvider)tp).WarmUpPeriod; // Check TimeProfile indicator assigns properly a WarmUpPeriod Assert.AreEqual(20, period); for (var i = 0; i < period; i++) { tp.Update(new TradeBar() { Symbol = Symbols.AAPL, Low = 1, High = 2, Volume = 100, Time = reference.AddDays(1 + i) }); Assert.AreEqual(i == period - 1, tp.IsReady); } }
public void TestItNow() { var originalProfile = new TimeProfile { Name = "Test time profile" }; var originalNode = new TimeNode(TimeSpan.FromHours(7)); originalNode.Properties.Add(new NodeProperty(NodeProperty.Brightness, 20)); originalNode.Properties.Add(new NodeProperty(NodeProperty.ColorTemperature, 3300)); originalProfile.AddNode(originalNode); var str = TimeProfileSerializer.Serialize(originalProfile); Assert.IsNotNull(str); var deserializedProfile = TimeProfileSerializer.Deserialize(str) as TimeProfile; Assert.IsNotNull(deserializedProfile); Assert.AreEqual(originalProfile.Name, deserializedProfile.Name); Assert.AreEqual(originalProfile.Nodes.Count, deserializedProfile.Nodes.Count); var deserializedNode = deserializedProfile.Nodes[0]; Assert.AreEqual(originalNode.TimeOfDay, deserializedNode.TimeOfDay); var originalBrightnessProperty = originalNode.Properties.First(_ => _.Name == NodeProperty.Brightness); var deserializedBrightnessProperty = deserializedNode.Properties.First(_ => _.Name == NodeProperty.Brightness); Assert.AreEqual(originalBrightnessProperty.Name, deserializedBrightnessProperty.Name); Assert.AreEqual(originalBrightnessProperty.Value, deserializedBrightnessProperty.Value); var originalColorTemperatureProperty = originalNode.Properties.First(_ => _.Name == NodeProperty.Brightness); var deserializedColorTemperatureProperty = deserializedNode.Properties.First(_ => _.Name == NodeProperty.Brightness); Assert.AreEqual(originalColorTemperatureProperty.Name, deserializedColorTemperatureProperty.Name); Assert.AreEqual(originalColorTemperatureProperty.Value, deserializedColorTemperatureProperty.Value); }