Esempio n. 1
0
        private static IDisposable CreateDb(out ITimeSeriesDb db)
        {
            var fpp       = new FilePathProviderExt(Guid.NewGuid().ToString("N"));
            var allocator = new DummyUnmanagedAllocator();

            db = new FileTimeSeriesDb(fpp, allocator);

            return(Disposable.Create(() =>
            {
                fpp.Dispose();
                allocator.Dispose();
            }));
        }
Esempio n. 2
0
        public void MoveNextTest()
        {
            var bid = new List <DoubleEntry>()
                      .Add("08:00:00", 12.2)
                      .Add("08:00:01", 12.3)
                      .Add("08:00:02", 12.4)
                      .Add("08:00:03", 12.5)
                      .Add("08:00:04", 12.6)
                      .ToArray();
            var bsize = new List <Int32Entry>()
                        .Add("08:00:00", 1e6)
                        .Add("08:00:02", 2e6)
                        .ToArray();

            var ask = new List <DoubleEntry>()
                      .Add("08:00:00", 13.2)
                      .Add("08:00:02", 13.3)
                      .Add("08:00:04", 13.4)
                      .ToArray();
            var asize = new List <Int32Entry>()
                        .Add("08:00:00", 2e6)
                        .Add("08:00:04", 1e6)
                        .ToArray();

            var snapshots = new SnapshotTimeSerie(1, 2, 3, 4)
                            .Snap("07:59:58", "Min", "08:00:00", double.NaN, 0, double.NaN, 0)
                            .Snap("07:59:59", "Min", "08:00:00", double.NaN, 0, double.NaN, 0)
                            .Snap("08:00:00", "08:00:00", "08:00:01", 12.2, 1e6, 13.2, 2e6)
                            .Snap("08:00:00.500", "08:00:00", "08:00:01", 12.2, 1e6, 13.2, 2e6)
                            .Snap("08:00:00.700", "08:00:00", "08:00:01", 12.2, 1e6, 13.2, 2e6)
                            .Snap("08:00:01.200", "08:00:01", "08:00:02", 12.3, 1e6, 13.2, 2e6)
                            .Snap("08:00:03.900", "08:00:03", "08:00:04", 12.5, 2e6, 13.3, 2e6)
                            .Snap("08:00:04", "08:00:04", "Max", 12.6, 2e6, 13.4, 1e6)
                            .Snap("08:00:05", "08:00:04", "Max", 12.6, 2e6, 13.4, 1e6)
                            .Snap("08:00:06", "08:00:04", "Max", 12.6, 2e6, 13.4, 1e6);

            var       allocator = new DummyUnmanagedAllocator();
            const int blockSize = 8192;

            try
            {
                #region Prepare streams

                // Create streams
                var streams = new Dictionary <int, IColumnStream>
                {
                    { 1, CreateColumnStream(new VoidCodecFullStream(), allocator, blockSize) },
                    { 2, CreateColumnStream(new VoidCodecFullStream(), allocator, blockSize) },
                    { 3, CreateColumnStream(new VoidCodecFullStream(), allocator, blockSize) },
                    { 4, CreateColumnStream(new VoidCodecFullStream(), allocator, blockSize) }
                };

                // Fill streams
                streams[1].Write(bid);
                streams[2].Write(bsize);
                streams[3].Write(ask);
                streams[4].Write(asize);

                // Reset streams
                foreach (var stream in streams.Values)
                {
                    stream.Flush();
                    stream.Reset();
                }

                #endregion

                var fieldCursors = new Dictionary <string, IColumnCursor>
                {
                    { "1", new ColumnCursor <DoubleEntry, double, IColumnStream>(allocator, streams[1]) },
                    { "2", new ColumnCursor <Int32Entry, int, IColumnStream>(allocator, streams[2]) },
                    { "3", new ColumnCursor <DoubleEntry, double, IColumnStream>(allocator, streams[3]) },
                    { "4", new ColumnCursor <Int32Entry, int, IColumnStream>(allocator, streams[4]) },
                };

                var cursor = new TimeSeriesCursor(fieldCursors);

                snapshots.RunMoveNext(cursor);
            }
            finally
            {
                allocator.Dispose();
            }
        }