Esempio n. 1
0
        public void ReadingBeyondEntOfItemArea()
        {
            var filename = "MemoryMappedAccessTest_ReadingBeyondEntOfItemArea.tea";

            using (var f = TeaFile <Event <int> > .Create(filename))
            {
                Time t = new DateTime(2000, 1, 1);
                3.Times(() => f.Write(new Event <int> {
                    Time = t, Value = 777
                }));
            }
            using (var view = TeaFile <Event <int> > .OpenMemoryMapping(filename))
            {
                view.Read(0);
                view.Read(1);
                view.Read(2);
                Executing.This(() => view.Read(3)).Should().Throw <ArgumentOutOfRangeException>();
            }
        }
Esempio n. 2
0
        public void AccessItemsViaMemoryMapping()
        {
            var filename = "MemoryMappedAccessTest_AccessItemsViaMemoryMapping.tea";

            using (var f = TeaFile <Event <int> > .Create(filename))
            {
                var dt = new DateTime(2000, 1, 1);
                for (int i = 0; i < 27; i++)
                {
                    f.Write(new Event <int> {
                        Time = dt.AddDays(i), Value = i * 10
                    });
                }
            }
            using (var view = TeaFile <Event <int> > .OpenMemoryMapping(filename))
            {
                Event <int> e = view.Read(0);
                e.Value.Should().Be(0);
                e.Time.Should().Be(new DateTime(2000, 1, 1));

                e = view.Read(0);
                e.Value.Should().Be(0);
                e.Time.Should().Be(new DateTime(2000, 1, 1));

                e = view.Read(1);
                e.Value.Should().Be(10);
                e.Time.Should().Be(new DateTime(2000, 1, 2));

                e = view.Read(2);
                e.Value.Should().Be(20);
                e.Time.Should().Be(new DateTime(2000, 1, 3));

                var t = new DateTime(2000, 1, 1);
                for (int i = 0; i < 27; i++)
                {
                    e = view.Read(i);
                    e.Value.Should().Be(i * 10);
                    e.Time.Should().Be(t.AddDays(i));
                    e.Should().Be(view[i]);
                }
            }
        }