public virtual void TestDoubleSetToStart() { InsertDefaultEntryByIndex(0); ITimeSeriesEntryCursor cursor = CreateCursor(); cursor.SetToStart(); Assert.IsNull(cursor.Current); Assert.IsTrue(cursor.MoveNext()); ITimeSeriesEntry entry = cursor.Current; cursor.SetToStart(); Assert.IsTrue(cursor.MoveNext()); Assert.IsTrue(TimeSeriesComparisons.CompareTimeSeriesEntry(entry, cursor.Current)); }
public virtual void TestCurrentForIEnumerator() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); // get an IEnumerator over a time series IEnumerator enumerator = cursor; // check that it can move and retrieve an entry Assert.IsTrue(enumerator.MoveNext()); ITimeSeriesEntry timeSeriesEntry1 = (ITimeSeriesEntry)enumerator.Current; Assert.IsNotNull(timeSeriesEntry1); // check that the IEnumerator is a correct Cursor ITimeSeriesEntryCursor timeSeriesEntryCursor = enumerator as ITimeSeriesEntryCursor; Assert.IsNotNull(timeSeriesEntryCursor); Assert.IsNotNull(timeSeriesEntryCursor.Current); // check that the corresponding cursor gets the same entry ITimeSeriesEntry timeSeriesEntry2 = timeSeriesEntryCursor.Current; Assert.IsTrue(TimeSeriesComparisons.CompareTimeSeriesEntry(timeSeriesEntry1, timeSeriesEntry2)); // and that it is the same entry as retrieving it from a native cursor cursor.SetToStart(); cursor.MoveNext(); ITimeSeriesEntry timeSeriesEntry3 = cursor.Current; Assert.IsTrue(TimeSeriesComparisons.CompareTimeSeriesEntry(timeSeriesEntry2, timeSeriesEntry3)); }
public virtual void TestSetBeforeFromBeforeStart() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); cursor.SetBefore(DefaultTimeSeries.TimeInterval.StartTime.AddTicks(-1)); Assert.IsNull(cursor.Current); Assert.IsTrue(cursor.MoveNext()); Assert.AreEqual(DefaultTimeSeries.TimeInterval.StartTime, cursor.Current.TimeStamp); cursor.SetBefore(DateTimeHelper.UtcMinValue); Assert.IsNull(cursor.Current); Assert.IsTrue(cursor.MoveNext()); Assert.AreEqual(DefaultTimeSeries.TimeInterval.StartTime, cursor.Current.TimeStamp); }
public void TestSetToStartAtMinValue() { InsertDefaultEntryByTimeStamp(MinimumTimeStamp); ITimeSeriesEntryCursor cursor = CreateCursor(); cursor.SetToStart(); Assert.IsNull(cursor.Current); Assert.IsTrue(cursor.MoveNext()); CheckEntry(cursor.Current); }
public void TestSeekTimeSpanSpecialValueAtEnd() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); // show that cursor works as expected for a time series with "normal" values cursor.Seek(TimeSpan.FromTicks(-1), SeekPosition.END); // go to second last element Assert.IsTrue(cursor.MoveNext()); // go to last element Assert.IsNotNull(cursor.Current); Assert.IsFalse(cursor.MoveNext()); InsertDefaultEntryByTimeStamp(MaximumTimeStamp); // show that cursor still works cursor.Seek(TimeSpan.FromTicks(-1), SeekPosition.END); // go to second last element Assert.IsTrue(cursor.MoveNext()); // go to last element Assert.IsNotNull(cursor.Current); Assert.IsFalse(cursor.MoveNext()); }
public virtual void TestSetBefore() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); foreach (long timeStamp in DefaultTimeStamps) { cursor.SetBefore(DateTimeHelper.ToDateTime(timeStamp)); Assert.IsTrue(cursor.MoveNext()); Assert.AreEqual(timeStamp, DateTimeHelper.ToLong(cursor.Current.TimeStamp)); cursor.SetBefore(DateTimeHelper.ToDateTime(timeStamp - 1)); Assert.IsTrue(cursor.MoveNext()); Assert.AreEqual(timeStamp, DateTimeHelper.ToLong(cursor.Current.TimeStamp)); cursor.SetBefore(DateTimeHelper.ToDateTime(timeStamp + 1)); Assert.AreEqual(timeStamp, DateTimeHelper.ToLong(cursor.Current.TimeStamp)); } }
public virtual void TestSeekTimeStampBeforeStart() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); Assert.IsTrue(cursor.MoveNext()); Assert.IsNotNull(cursor.Current); // get the first timestamp DateTime timeStamp = cursor.Current.TimeStamp; // try to seek before the start Assert.IsFalse(cursor.Seek(timeStamp - new TimeSpan(100))); Assert.IsNull(cursor.Current); }
public virtual void TestSeekingMilesAfterEnd() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); TimeSpan fullDistance = DefaultTimeSeries.TimeInterval.EndTime - DefaultTimeSeries.TimeInterval.StartTime; // go into the middle of the timeseries cursor.Seek(DefaultTimeSeries.TimeInterval.StartTime + new TimeSpan(fullDistance.Ticks / 2)); Assert.IsNotNull(cursor.Current); // seek will always step to the last valid entry cursor.Seek(fullDistance, SeekPosition.CURRENT); Assert.IsNotNull(cursor.Current); Assert.IsFalse(cursor.MoveNext()); Assert.IsNull(cursor.Current); }
public virtual void TestWalkingMilesAfterEnd() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); cursor.SetToEnd(); Assert.IsNull(cursor.Current); // you cannot reach a valid entry behind the end for (int i = 1; i < 20; ++i) { Assert.IsFalse(cursor.MoveNext()); } // one step must be enough to get to the last entry Assert.IsTrue(cursor.MovePrevious()); Assert.IsNotNull(cursor.Current); }
public virtual void TestWalkingMilesBeforeBegin() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertDefaultEntryByIndex(0); cursor.SetToStart(); Assert.IsNull(cursor.Current); // you cannot reach a valid entry before the beginning for (int i = 1; i < 20; ++i) { Assert.IsFalse(cursor.MovePrevious()); } // one step must be enough to get to the first entry Assert.IsTrue(cursor.MoveNext()); Assert.IsNotNull(cursor.Current); }
public virtual void TestSeekingMilesBeforeBegin() { ITimeSeriesEntryCursor cursor = CreateCursor(); InsertAllDefaultEntries(); TimeSpan fullDistance = DefaultTimeSeries.TimeInterval.EndTime - DefaultTimeSeries.TimeInterval.StartTime; // go into the middle of the timeseries cursor.Seek(DefaultTimeSeries.TimeInterval.StartTime + new TimeSpan(fullDistance.Ticks / 2)); Assert.IsNotNull(cursor.Current); // you cannot reach a valid entry far before the beginning cursor.Seek(-fullDistance, SeekPosition.CURRENT); Assert.IsNull(cursor.Current); // one step must be enough to get to the first entry Assert.IsTrue(cursor.MoveNext()); Assert.IsNotNull(cursor.Current); }
public virtual void TestSetToEnd() { InsertDefaultEntryByIndex(0); ITimeSeriesEntryCursor cursor = CreateCursor(); while (true) { if (!cursor.MoveNext()) { break; } } Assert.IsNull(cursor.Current); Assert.IsTrue(cursor.MovePrevious()); ITimeSeriesEntry entry = cursor.Current; cursor.SetToEnd(); Assert.IsTrue(cursor.MovePrevious()); Assert.IsTrue(TimeSeriesComparisons.CompareTimeSeriesEntry(entry, cursor.Current)); }