public void SegmentTime_Cloneable() { DateTime now = DateTime.Now; SegmentTime segment = new SegmentTime(now, now.AddDays(3.1)); Panel_Cloneable.Clone(segment); }
public void SegmentTime_CreateDay() { SegmentTime january2017_1 = SegmentTime.CreateDay(2017, 1, 1); Assert.IsTrue(january2017_1.Start == new DateTime(2017, 1, 1, 0, 0, 0)); Assert.IsTrue(january2017_1.End == new DateTime(2017, 1, 2).AddTicks(-1)); }
public void IntersectedTime_PartOf() { SegmentTime segment = new SegmentTime(_label_2, _label_3); SegmentTime segmentClone = new SegmentTime(_label_2, _label_3); Panel_InterfaceIntersected <DateTime, TimeSpan> .PartOf(segment, segmentClone); }
public void SegmentTime_CreateMax() { SegmentTime sg = SegmentTime.CreateMax(); Assert.IsTrue(sg.Start == DateTime.MinValue); Assert.IsTrue(sg.End == DateTime.MaxValue); }
public void SegmentTime_SetSpan_Negate() { SegmentTime segmentTime = new SegmentTime(); segmentTime.SetSegment(_label_1, _label_2); Panel_InterfaceSegment <DateTime, TimeSpan> .SetSpan(segmentTime, _spanTickNegate, _label_2); }
public void SegmentTime_SetSpan_EndMoreMax() { SegmentTime segmentTime = new SegmentTime(); segmentTime.SetSegment(DateTime.MaxValue, DateTime.MaxValue); Panel_InterfaceSegment <DateTime, TimeSpan> .SetSpan(segmentTime, TimeSpan.MaxValue, DateTime.MaxValue); }
public void SegmentTime_SetSpan_Max() { _label_1 = DateTime.MaxValue - _spanTick; SegmentTime segmentTime = new SegmentTime(); segmentTime.SetSegment(_label_1, _label_1); Panel_InterfaceSegment <DateTime, TimeSpan> .SetSpan(segmentTime, _spanTick, DateTime.MaxValue); }
public void IntersectedTime_LabelOn() { SegmentTime segment = new SegmentTime(_label_2, _label_3); Panel_InterfaceIntersected <DateTime, TimeSpan> .LabelOn(segment, _label_2); Panel_InterfaceIntersected <DateTime, TimeSpan> .LabelOn(segment, _label_3); }
public void IntersectedTime_NotPartOf() { SegmentTime segmentLeft = new SegmentTime(_label_1, _label_3); SegmentTime segmentRight = new SegmentTime(_label_2, _label_4); Panel_InterfaceIntersected <DateTime, TimeSpan> .NotPartOf(segmentLeft, segmentRight); Panel_InterfaceIntersected <DateTime, TimeSpan> .NotPartOf(segmentRight, segmentLeft); }
public void IntersecteTimet_SegmentIn() { SegmentTime segmentLeft = new SegmentTime(_label_1, _label_3); SegmentTime segmentRight = new SegmentTime(_label_2, _label_4); Panel_InterfaceIntersected <DateTime, TimeSpan> .SegmentIn(segmentLeft, segmentRight); Panel_InterfaceIntersected <DateTime, TimeSpan> .SegmentIn(segmentRight, segmentLeft); }
public void SegmentTime_GetSpanAfterSetSegment() { SegmentTime segment = new SegmentTime(); Panel_InterfaceSegment <DateTime, TimeSpan> .GetSpanAfterSetSegment(segment, _label_1, _label_1, TimeSpan.Zero); DateTime startDay = new DateTime(2016, 1, 1); DateTime startNextDay = new DateTime(2016, 1, 2); TimeSpan spanDay = new TimeSpan(1, 0, 0, 0); Panel_InterfaceSegment <DateTime, TimeSpan> .GetSpanAfterSetSegment(segment, startDay, startNextDay, spanDay); }
public void SegmentTime_Shift() { TimeSpan one = new TimeSpan(1); TimeSpan two = new TimeSpan(2); SegmentTime segmentMax = new SegmentTime(DateTime.MinValue, DateTime.MaxValue); Panel_InterfaceSegment <DateTime, TimeSpan> .ShiftMax(segmentMax, one); Panel_InterfaceSegment <DateTime, TimeSpan> .ShiftMax(segmentMax, one.Negate()); SegmentTime segmentLeftMin = new SegmentTime(DateTime.MinValue, DateTime.MaxValue - one); SegmentTime segmentRightMax = new SegmentTime(DateTime.MinValue + one, DateTime.MaxValue); Panel_InterfaceSegment <DateTime, TimeSpan> .Shift(segmentLeftMin, one, segmentRightMax); Panel_InterfaceSegment <DateTime, TimeSpan> .Shift(segmentRightMax, two.Negate(), segmentLeftMin); }
internal void UpdateSegmentSummary(Segment s, ErgData e) { segmentType.text = strDifficulty[(int)s.typeIntensity]; // .type.ToString(); segmentObjective.text = s.getTextObjective(); // workout.segments[i].target.spm.ToString(); segmentDuration.text = s.getTextRemaining(0); // workout.segments[i].duration.ToString(); //set background color //no se que valores arroja intensity porque es del tipo SegmentIntensity // pero para cambiar el color del fondo seria //segmentItem.intensity.color = el color // s avgPace.text = SegmentTime.timeToString((int)e.pace); distancie.text = (int)Math.Round(e.distance) + " m"; time.text = SegmentTime.timeToMSString(e.time); avgSPM.text = e.spm + "";; avgPower.text = e.avgPower + " W"; avgHR.text = e.heartrate + " BPM"; }
void SetRank(int i, RankNode rank) { if (rankLocal == null) { return; } // rank.progressDistance Debug.Log("SetRank 1" + rankLocal); Debug.Log("SetRank 2" + rank); Debug.Log("SetRank 3" + rankNameTexts); Debug.Log("SetRank 3" + rankNameTexts.Length); rankNameTexts[i].text = (i + 1) + " " + GetShortName(rank.username); ErgData e = rank.ergData; Segment s = rank.segment; rankStatsTexts[i].text = SegmentTime.timeToString((int)rank.ergData.pace) + " " + rank.ergData.spm + " " + (int)(rank.progressDistance - rankLocal.progressDistance) + " m"; // + rank.ergData.heartrate; mapController.UpdatePosition(i, rank, rankLocal); // rankStatsTexts[i].text = SegmentTime.timeToString((int)e.pace) + " " + (s.getProgressedDistance(e)*-1);// + "|" + s.getProgressedDistance(e); }
public void SegmentTime_CreateMonth() { SegmentTime january2017 = SegmentTime.CreateMonth(2017, 1, 1); Assert.IsTrue(january2017.Start == new DateTime(2017, 1, 1, 0, 0, 0)); Assert.IsTrue(january2017.End == new DateTime(2017, 2, 1).AddTicks(-1)); SegmentTime february2017 = SegmentTime.CreateMonth(2017, 2, 1); Assert.IsTrue(february2017.Start == new DateTime(2017, 2, 1, 0, 0, 0)); Assert.IsTrue(february2017.End == new DateTime(2017, 3, 1).AddTicks(-1)); SegmentTime february2016 = SegmentTime.CreateMonth(2016, 2, 1); Assert.IsTrue(february2016.Start == new DateTime(2016, 2, 1, 0, 0, 0)); Assert.IsTrue(february2016.End == new DateTime(2016, 3, 1).AddTicks(-1)); SegmentTime june2017 = SegmentTime.CreateMonth(2017, 6, 1); Assert.IsTrue(june2017.Start == new DateTime(2017, 6, 1, 0, 0, 0)); Assert.IsTrue(june2017.End == new DateTime(2017, 7, 1).AddTicks(-1)); }
// Start is called before the first frame update // Update is called once per frame public void ShowSegmentSummary(SegmentEndEvent segmentEndEvent, StatisticManager statisticManager) { ErgData e = statisticManager.GetSegmentErgDataStats(); textPace.text = SegmentTime.timeToString((int)e.pace); textSPM.text = e.spm + "/" + segmentEndEvent.currentSegment.getTextObjective(); // textObjective.text = segmentEndEvent.currentSegment.getTextObjective(); textPower.text = e.avgPower + " watts"; // ErgData[] ergs = (ErgData[]).ToArray(); string ret = ""; ErgData[] s = statisticManager.ergSegmentStack.ToArray(); for (int i = 0; i < s.Length; ++i) { e = s[i]; ret += "[" + e.pace + ", " + e.spm + ", " + e.avgPower + "] "; } print("jojo " + ret); layout.SetActive(true); Invoke("HideSegmentSummary", 5); }
public void IntersectedTime_SegmentNull() { SegmentTime segment = new SegmentTime(_label_1, _label_2); Panel_InterfaceIntersected <DateTime, TimeSpan> .SegmentNull_Intersected_PartOf(segment); }
public void SegmentTime_StartState() { SegmentTime segmentTime = new SegmentTime(); Panel_InterfaceSegment <DateTime, TimeSpan> .StartState_Empty(segmentTime); }
public void DrawGeneral(Graphics g, LiveSplitState state, float width, float height) { Timer.DrawBackground(g, InternalComponent.TimerColor, Settings.BackgroundColor, Settings.BackgroundColor2, width, height, Settings.BackgroundGradient); var lastSplitOffset = state.CurrentSplitIndex == state.Run.Count ? -1 : 0; var originalDrawSize = Math.Min(Settings.IconSize, width - 14); var icon = state.CurrentSplitIndex >= 0 ? state.Run[state.CurrentSplitIndex + lastSplitOffset].Icon : null; if (Settings.DisplayIcon && icon != null) { if (OldImage != icon) { ImageAnimator.Animate(icon, (s, o) => { }); OldImage = icon; } var drawWidth = originalDrawSize; var drawHeight = originalDrawSize; if (icon.Width > icon.Height) { var ratio = icon.Height / (float)icon.Width; drawHeight *= ratio; } else { var ratio = icon.Width / (float)icon.Height; drawWidth *= ratio; } ImageAnimator.UpdateFrames(icon); g.DrawImage( icon, 7 + (originalDrawSize - drawWidth) / 2, (height - originalDrawSize) / 2.0f + (originalDrawSize - drawHeight) / 2, drawWidth, drawHeight); IconWidth = (int)(originalDrawSize + 7.5f); } else { IconWidth = 0; } InternalComponent.Settings.ShowGradient = Settings.TimerShowGradient; InternalComponent.Settings.OverrideSplitColors = Settings.OverrideTimerColors; InternalComponent.Settings.TimerColor = Settings.TimerColor; InternalComponent.Settings.DigitsFormat = Settings.DigitsFormat; InternalComponent.Settings.Accuracy = Settings.Accuracy; InternalComponent.Settings.DecimalsSize = Settings.DecimalsSize; SegmentTimer.Settings.ShowGradient = Settings.SegmentTimerShowGradient; SegmentTimer.Settings.OverrideSplitColors = true; SegmentTimer.Settings.TimerColor = Settings.SegmentTimerColor; SegmentTimer.Settings.DigitsFormat = Settings.SegmentDigitsFormat; SegmentTimer.Settings.Accuracy = Settings.SegmentAccuracy; SegmentTimer.Settings.DecimalsSize = Settings.SegmentTimerDecimalsSize; if (state.CurrentSplitIndex >= 0) { var labelsFont = new Font(Settings.SegmentLabelsFont.FontFamily, Settings.SegmentLabelsFont.Size, Settings.SegmentLabelsFont.Style); var timesFont = new Font(Settings.SegmentTimesFont.FontFamily, Settings.SegmentTimesFont.Size, Settings.SegmentTimesFont.Style); LabelSegment.Font = labelsFont; LabelSegment.X = 5 + IconWidth; LabelSegment.Y = height * ((100f - Settings.SegmentTimerSizeRatio) / 100f); LabelSegment.Width = width - SegmentTimer.ActualWidth - 5 - IconWidth; LabelSegment.Height = height * (Settings.SegmentTimerSizeRatio / 200f) * (!HideComparison ? 1f : 2f); LabelSegment.HorizontalAlignment = StringAlignment.Near; LabelSegment.VerticalAlignment = StringAlignment.Center; LabelSegment.ForeColor = Settings.SegmentLabelsColor; LabelSegment.HasShadow = state.LayoutSettings.DropShadows; LabelSegment.ShadowColor = state.LayoutSettings.ShadowsColor; LabelSegment.OutlineColor = state.LayoutSettings.TextOutlineColor; if (Comparison != "None") { LabelSegment.Draw(g); } LabelBest.Font = labelsFont; LabelBest.X = 5 + IconWidth; LabelBest.Y = height * ((100f - Settings.SegmentTimerSizeRatio / 2f) / 100f); LabelBest.Width = width - SegmentTimer.ActualWidth - 5 - IconWidth; LabelBest.Height = height * (Settings.SegmentTimerSizeRatio / 200f); LabelBest.HorizontalAlignment = StringAlignment.Near; LabelBest.VerticalAlignment = StringAlignment.Center; LabelBest.ForeColor = Settings.SegmentLabelsColor; LabelBest.HasShadow = state.LayoutSettings.DropShadows; LabelBest.ShadowColor = state.LayoutSettings.ShadowsColor; LabelBest.OutlineColor = state.LayoutSettings.TextOutlineColor; if (!HideComparison) { LabelBest.Draw(g); } var offset = Math.Max(LabelSegment.ActualWidth, HideComparison ? 0 : LabelBest.ActualWidth) + 10; if (Comparison != "None") { SegmentTime.Font = timesFont; SegmentTime.X = offset + IconWidth; SegmentTime.Y = height * ((100f - Settings.SegmentTimerSizeRatio) / 100f); SegmentTime.Width = width - SegmentTimer.ActualWidth - offset - IconWidth; SegmentTime.Height = height * (Settings.SegmentTimerSizeRatio / 200f) * (!HideComparison ? 1f : 2f); SegmentTime.HorizontalAlignment = StringAlignment.Near; SegmentTime.VerticalAlignment = StringAlignment.Center; SegmentTime.ForeColor = Settings.SegmentTimesColor; SegmentTime.HasShadow = state.LayoutSettings.DropShadows; SegmentTime.ShadowColor = state.LayoutSettings.ShadowsColor; SegmentTime.OutlineColor = state.LayoutSettings.TextOutlineColor; SegmentTime.IsMonospaced = true; SegmentTime.Draw(g); } if (!HideComparison) { BestSegmentTime.Font = timesFont; BestSegmentTime.X = offset + IconWidth; BestSegmentTime.Y = height * ((100f - Settings.SegmentTimerSizeRatio / 2f) / 100f); BestSegmentTime.Width = width - SegmentTimer.ActualWidth - offset - IconWidth; BestSegmentTime.Height = height * (Settings.SegmentTimerSizeRatio / 200f); BestSegmentTime.HorizontalAlignment = StringAlignment.Near; BestSegmentTime.VerticalAlignment = StringAlignment.Center; BestSegmentTime.ForeColor = Settings.SegmentTimesColor; BestSegmentTime.HasShadow = state.LayoutSettings.DropShadows; BestSegmentTime.ShadowColor = state.LayoutSettings.ShadowsColor; BestSegmentTime.OutlineColor = state.LayoutSettings.TextOutlineColor; BestSegmentTime.IsMonospaced = true; BestSegmentTime.Draw(g); } SplitName.Font = Settings.SplitNameFont; SplitName.X = IconWidth + 5; SplitName.Y = 0; SplitName.Width = width - InternalComponent.ActualWidth - IconWidth - 5; SplitName.Height = height * ((100f - Settings.SegmentTimerSizeRatio) / 100f); SplitName.HorizontalAlignment = StringAlignment.Near; SplitName.VerticalAlignment = StringAlignment.Center; SplitName.ForeColor = Settings.SplitNameColor; SplitName.HasShadow = state.LayoutSettings.DropShadows; SplitName.ShadowColor = state.LayoutSettings.ShadowsColor; SplitName.OutlineColor = state.LayoutSettings.TextOutlineColor; if (Settings.ShowSplitName) { SplitName.Draw(g); } } }
public void SegmentTime_SetReverseLabel() { SegmentTime segmentInt = new SegmentTime(); Panel_InterfaceSegment <DateTime, TimeSpan> .SetSegment_ReverseLabel(segmentInt, _label_2, _label_1); }
public void SegmentTime_IsPoint() { SegmentTime segmentInt = new SegmentTime(); Panel_InterfaceSegment <DateTime, TimeSpan> .IsPoint(segmentInt, _label_1, _label_2); }