public void Constructor1Minute() { var item = new TimeSpanItem(150, TimeSpanUnit.Minute); Assert.AreEqual(item.Span, new TimeSpan(2, 30, 0)); Assert.IsTrue(MathExtensions.AlmostEquals(item.AmountOf(TimeSpanUnit.Hour), 2.5m)); }
public void Constructor3Default() { var item = new TimeSpanItem(new DateTime(2000, 1, 1, 1, 1, 0), new DateTime(2000, 1, 1, 1, 2, 0)); Assert.IsTrue(MathExtensions.AlmostEquals(item.AmountOf(TimeSpanUnit.Second), 60)); Assert.AreEqual(item.Amount, 60); }
public void Constructor1Hour() { var item = new TimeSpanItem(12, TimeSpanUnit.Hour); Assert.AreEqual(item.Span, new TimeSpan(12, 0, 0)); Assert.IsTrue(MathExtensions.AlmostEquals(item.AmountOf(TimeSpanUnit.Day), 0.5m)); }
public void Constructor2Minute() { var item = new TimeSpanItem(new TimeSpan(0, 1, 0), null, TimeSpanUnit.Minute); Assert.IsTrue(MathExtensions.AlmostEquals(item.AmountOf(TimeSpanUnit.Second), 60)); Assert.IsTrue(MathExtensions.AlmostEquals(item.AmountOf(TimeSpanUnit.Minute), 1)); Assert.AreEqual(item.Amount, 1); }
public void RateYear2018() { var year2018 = new PeriodItem(new DateTime(2018, 1, 1), new DateTime(2018, 12, 31)); Assert.IsTrue(MathExtensions.AlmostEquals(year2018.AmountOf(PeriodUnit.Month), 12)); Assert.IsTrue(MathExtensions.AlmostEquals(year2018.AmountOf(PeriodUnit.Year), 1)); }
public void RateYear2016_183days() { var year2016_183days = new PeriodItem(new DateTime(2016, 1, 1), new DateTime(2016, 07, 1)); Assert.IsTrue(MathExtensions.AlmostEquals(year2016_183days.AmountOf(PeriodUnit.Month), 6)); Assert.IsTrue(MathExtensions.AlmostEquals(year2016_183days.AmountOf(PeriodUnit.Year), 0.5m)); }
public void RateYear2017_73days() { var year2017_73days = new PeriodItem(new DateTime(2017, 1, 1), new DateTime(2017, 03, 14)); Assert.IsTrue(MathExtensions.AlmostEquals(year2017_73days.AmountOf(PeriodUnit.Month), 2.4m)); Assert.IsTrue(MathExtensions.AlmostEquals(year2017_73days.AmountOf(PeriodUnit.Year), 0.2m)); }
/// <summary> /// Returns the index of an existing text edge using the specified x coordinate and alignment. /// </summary> /// <param name="x_coord"></param> /// <param name="align"></param> /// <returns>Returns the index of an existing text edge using the specified x coordinate and alignment. Null if not found.</returns> public int?Find(float x_coord, string align) { var edges = _textedges[align]; for (int i = 0; i < edges.Count; i++) { TextEdge te = edges[i]; if (MathExtensions.AlmostEquals(te.X, x_coord, 0.5)) { return(i); } } return(null); }
public void RateCommon() { var _12min = new TimeSpanItem(new TimeSpan(0, 0, 12, 0), null, TimeSpanUnit.Minute, Rounding.AwayFromZero); Assert.IsTrue(MathExtensions.AlmostEquals(_12min.AmountOf(TimeSpanUnit.FiveMinutes), 2)); var _12min30sec = new TimeSpanItem(new TimeSpan(0, 0, 12, 30), null, TimeSpanUnit.Minute, Rounding.AwayFromZero); Assert.IsTrue(MathExtensions.AlmostEquals(_12min30sec.AmountOf(TimeSpanUnit.FiveMinutes), 3)); var _13min = new TimeSpanItem(new TimeSpan(0, 0, 13, 0), null, TimeSpanUnit.Minute, Rounding.AwayFromZero); Assert.IsTrue(MathExtensions.AlmostEquals(_13min.AmountOf(TimeSpanUnit.FiveMinutes), 3)); }
/// <summary> /// Updates the text edge's x and bottom y coordinates and sets the is_valid attribute. /// </summary> /// <param name="x"></param> /// <param name="y0"></param> /// <param name="edge_tol"></param> public void UpdateCoords(float x, float y0, float edge_tol = 50) { if (MathExtensions.AlmostEquals(Y0, y0, edge_tol)) { X = ((Intersections * X) + x) / (Intersections + 1); Y0 = y0; Intersections++; // a textedge is valid only if it extends uninterrupted // over a required number of textlines if (Intersections > TEXTEDGE_REQUIRED_ELEMENTS) { IsValid = true; } } }
public void RateToEven() { var _12minToEven1 = new TimeSpanItem(new TimeSpan(0, 0, 12, 0), null, TimeSpanUnit.Minute, Rounding.HalfToEven); Assert.IsTrue(MathExtensions.AlmostEquals(_12minToEven1.AmountOf(TimeSpanUnit.FiveMinutes), 2)); var _12minToEven2 = new TimeSpanItem(new TimeSpan(0, 0, 12, 30), null, TimeSpanUnit.Minute, Rounding.HalfToEven); Assert.IsTrue(MathExtensions.AlmostEquals(_12minToEven2.AmountOf(TimeSpanUnit.FiveMinutes), 2)); var _12minToEven3 = new TimeSpanItem(new TimeSpan(0, 0, 13, 0), null, TimeSpanUnit.Minute, Rounding.HalfToEven); Assert.IsTrue(MathExtensions.AlmostEquals(_12minToEven3.AmountOf(TimeSpanUnit.FiveMinutes), 3)); var _12minToEven4 = new TimeSpanItem(new TimeSpan(0, 0, 17, 30), null, TimeSpanUnit.Minute, Rounding.HalfToEven); Assert.IsTrue(MathExtensions.AlmostEquals(_12minToEven4.AmountOf(TimeSpanUnit.FiveMinutes), 4)); }
public void RateExactCommon() { var _10min = new TimeSpanItem(new TimeSpan(0, 0, 10, 0), null, TimeSpanUnit.Minute, Rounding.AwayFromZero); Assert.IsTrue(MathExtensions.AlmostEquals(_10min.AmountOf(TimeSpanUnit.FiveMinutes), 2)); }
public void RateNone() { var _12min = new TimeSpanItem(new TimeSpan(0, 0, 12, 0), null, TimeSpanUnit.Minute); Assert.IsTrue(MathExtensions.AlmostEquals(_12min.AmountOf(TimeSpanUnit.FiveMinutes), 2.4m)); }