コード例 #1
0
        public void TestRanges()
        {
            using (var store = GetDocumentStore())
            {
                var baseline = DateTime.Today;
                var id       = "users/1-A";
                using (var session = store.OpenSession())
                {
                    session.Store(new User(), id);
                    var tsf = session.TimeSeriesFor(id, "raven");
                    for (int i = 0; i <= 10; i++)
                    {
                        tsf.Append(baseline.AddMinutes(i), new[] { (double)i }, "watches/apple");
                    }
                    for (int i = 12; i <= 13; i++)
                    {
                        tsf.Append(baseline.AddMinutes(i), new[] { (double)i }, "watches/apple");
                    }
                    for (int i = 16; i <= 20; i++)
                    {
                        tsf.Append(baseline.AddMinutes(i), new[] { (double)i }, "watches/apple");
                    }
                    session.SaveChanges();
                }

                var rangesList = new List <TimeSeriesRange>
                {
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(1), To = baseline.AddMinutes(7)
                    }
                };
                var re = store.GetRequestExecutor();
                using (re.ContextPool.AllocateOperationContext(out var context))
                {
                    var tsCommand = new GetMultipleTimeSeriesOperation.
                                    GetMultipleTimeSeriesCommand(id, rangesList, 0, int.MaxValue);
                    re.Execute(tsCommand, context);
                    var res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(1, res.Values["raven"].Count);
                }
                rangesList = new List <TimeSeriesRange>
                {
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(8), To = baseline.AddMinutes(11)
                    }
                };

                using (re.ContextPool.AllocateOperationContext(out var context))
                {
                    var tsCommand = new GetMultipleTimeSeriesOperation.
                                    GetMultipleTimeSeriesCommand(id, rangesList, 0, int.MaxValue);
                    re.Execute(tsCommand, context);
                    var res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(1, res.Values["raven"].Count);
                }
                rangesList = new List <TimeSeriesRange>
                {
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(8), To = baseline.AddMinutes(17)
                    }
                };

                using (re.ContextPool.AllocateOperationContext(out var context))
                {
                    var tsCommand = new GetMultipleTimeSeriesOperation.
                                    GetMultipleTimeSeriesCommand(id, rangesList, 0, int.MaxValue);
                    re.Execute(tsCommand, context);
                    var res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(1, res.Values["raven"].Count);
                }
                rangesList = new List <TimeSeriesRange>
                {
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(14), To = baseline.AddMinutes(15)
                    }
                };

                using (re.ContextPool.AllocateOperationContext(out var context))
                {
                    var tsCommand = new GetMultipleTimeSeriesOperation.
                                    GetMultipleTimeSeriesCommand(id, rangesList, 0, int.MaxValue);
                    re.Execute(tsCommand, context);
                    var res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(1, res.Values["raven"].Count);
                }
                rangesList = new List <TimeSeriesRange>
                {
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(23), To = baseline.AddMinutes(25)
                    }
                };

                using (re.ContextPool.AllocateOperationContext(out var context))
                {
                    var tsCommand = new GetMultipleTimeSeriesOperation.
                                    GetMultipleTimeSeriesCommand(id, rangesList, 0, int.MaxValue);
                    re.Execute(tsCommand, context);
                    var res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(1, res.Values["raven"].Count);
                }
                rangesList = new List <TimeSeriesRange>
                {
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(20), To = baseline.AddMinutes(26)
                    }
                };

                using (re.ContextPool.AllocateOperationContext(out var context))
                {
                    var tsCommand = new GetMultipleTimeSeriesOperation.
                                    GetMultipleTimeSeriesCommand(id, rangesList, 0, int.MaxValue);
                    re.Execute(tsCommand, context);
                    var res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(1, res.Values["raven"].Count);
                }
            }
        }
コード例 #2
0
        public void ResultsWithRangeAndStart()
        {
            using (var store = GetDocumentStore())
            {
                var tag      = "raven";
                var id       = "users/1";
                var baseline = DateTime.Today;
                using (var session = store.OpenSession())
                {
                    session.Store(new User(), id);
                    var tsf = session.TimeSeriesFor(id, tag);
                    for (int i = 0; i <= 15; i++)
                    {
                        tsf.Append(baseline.AddMinutes(i), new[] { (double)i }, "watches/apple");
                    }
                    session.SaveChanges();
                }

                var rangesList = new List <TimeSeriesRange>
                {
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(0), To = baseline.AddMinutes(3)
                    },
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(4), To = baseline.AddMinutes(7)
                    },
                    new TimeSeriesRange
                    {
                        Name = "raven", From = baseline.AddMinutes(8), To = baseline.AddMinutes(11)
                    }
                };

                var re = store.GetRequestExecutor();

                using (re.ContextPool.AllocateOperationContext(out var context))
                {
                    var tsCommand = new GetMultipleTimeSeriesOperation.
                                    GetMultipleTimeSeriesCommand(id, rangesList, 0, 20);
                    re.Execute(tsCommand, context);

                    var res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(3, res.Values["raven"].Count);

                    Assert.Equal(4, res.Values["raven"][0].Entries.Length);
                    Assert.Equal(4, res.Values["raven"][1].Entries.Length);
                    Assert.Equal(4, res.Values["raven"][2].Entries.Length);

                    tsCommand = new GetMultipleTimeSeriesOperation.
                                GetMultipleTimeSeriesCommand(id, rangesList, 3, 20);
                    re.Execute(tsCommand, context);

                    res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(3, res.Values["raven"].Count);

                    Assert.Equal(1, res.Values["raven"][0].Entries.Length);
                    Assert.Equal(4, res.Values["raven"][1].Entries.Length);
                    Assert.Equal(4, res.Values["raven"][2].Entries.Length);

                    tsCommand = new GetMultipleTimeSeriesOperation.
                                GetMultipleTimeSeriesCommand(id, rangesList, 9, 20);
                    re.Execute(tsCommand, context);

                    res = tsCommand.Result;

                    Assert.Equal(1, res.Values.Count);
                    Assert.Equal(1, res.Values["raven"].Count);

                    Assert.Equal(3, res.Values["raven"][0].Entries.Length);
                }
            }
        }