コード例 #1
0
        public void Union_Empty()
        {
            var timeline1 = new TimelineMask(TimeZones.Local);
            var timeline2 = new TimelineMask(TimeZones.Local, new LocalInterval(new LocalDateTime(2008, 1, 1, 0, 0), new LocalDateTime(2008, 1, 3, 0, 0)));

            var actual   = (timeline1 | timeline2).GetIntervals();
            var expected = new TimelineMask(TimeZones.Local, new[]
            {
                new LocalInterval(new LocalDateTime(2008, 1, 1, 0, 0), new LocalDateTime(2008, 1, 3, 0, 0)),
            }).GetIntervals();

            Assert.That(TimeMath.Equals(expected, actual), Is.True);
        }
コード例 #2
0
        public void Add_TouchingStart()
        {
            var timeline1 = new TimelinePayload <StringPayload>(new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)).AddPayload(new StringPayload("Craft")));
            var timeline2 = new TimelinePayload <StringPayload>(new LocalInterval(new LocalDateTime(2008, 1, 1, 0, 0), new LocalDateTime(2008, 1, 4, 0, 0)).AddPayload(new StringPayload("Craft")));

            var actual   = (timeline1 + timeline2).GetIntervals();
            var expected = new TimelineMask(TimeZones.Local, new[]
            {
                new LocalInterval(new LocalDateTime(2008, 1, 1, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)).AddPayload(new StringPayload("Craft")),
            }).GetIntervals();

            Assert.That(TimeMath.Equals(expected, actual), Is.True);
        }
コード例 #3
0
        public void Add_Before()
        {
            var timeline1 = new TimelinePayload <KeyCountPayload>(new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)).AddPayload(new KeyCountPayload("A", 1.5m)));
            var timeline2 = new TimelinePayload <KeyCountPayload>(new LocalInterval(new LocalDateTime(2008, 1, 1, 0, 0), new LocalDateTime(2008, 1, 3, 0, 0)).AddPayload(new KeyCountPayload("B", 1.5m)));

            var actual   = (timeline1 + timeline2).GetIntervals();
            var expected = new TimelineMask(TimeZones.Local, new[]
            {
                new LocalInterval(new LocalDateTime(2008, 1, 1, 0, 0), new LocalDateTime(2008, 1, 3, 0, 0)).AddPayload(new KeyCountPayload("B", 1.5m)),
                new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)).AddPayload(new KeyCountPayload("A", 1.5m)),
            }).GetIntervals();

            Assert.That(TimeMath.Equals(expected, actual), Is.True);
        }
コード例 #4
0
        public void Intersect_Inside()
        {
            var timeline1 = new TimelineMask(TimeZones.Local, new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)));
            var timeline2 = new TimelineMask(TimeZones.Local, new LocalInterval(new LocalDateTime(2008, 1, 5, 0, 0), new LocalDateTime(2008, 1, 6, 0, 0)));

            var actual   = (timeline1 & ~timeline2).GetIntervals();
            var expected = new TimelineMask(TimeZones.Local, new[]
            {
                new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 5, 0, 0)),
                new LocalInterval(new LocalDateTime(2008, 1, 6, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)),
            }).GetIntervals();

            Assert.That(TimeMath.Equals(expected, actual), Is.True);
        }
コード例 #5
0
        public void Add_Outside()
        {
            var timeline1 = new TimelinePayload <StringPayload>(new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)).AddPayload(new StringPayload("A")));
            var timeline2 = new TimelinePayload <StringPayload>(new LocalInterval(new LocalDateTime(2008, 1, 3, 0, 0), new LocalDateTime(2008, 1, 9, 0, 0)).AddPayload(new StringPayload("B")));

            var actual   = (timeline1 + timeline2).GetIntervals();
            var expected = new TimelineMask(TimeZones.Local, new[]
            {
                // TODO: Hmmm....
                new LocalInterval(new LocalDateTime(2008, 1, 3, 0, 0), new LocalDateTime(2008, 1, 4, 0, 0)).AddPayload(new StringPayload("B")),
                new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)).AddPayload(new StringPayload("A")),
                new LocalInterval(new LocalDateTime(2008, 1, 8, 0, 0), new LocalDateTime(2008, 1, 9, 0, 0)).AddPayload(new StringPayload("B")),
            }).GetIntervals();

            Assert.That(TimeMath.Equals(expected, actual), Is.True);
        }
コード例 #6
0
        public void Add_ToEmpty()
        {
            // Arrange
            var timeline1 = TimeBuilder.Empty;
            var timeline2 = TimeBuilder.From(2008, 1, 1).To(2008, 1, 3).Payload("Craft", 1.5m).Timeline;

            // Act
            var actual = (timeline1 + timeline2).GetIntervals();

            // Assert
            var expected = new []
            {
                TimeBuilder.From(2008, 1, 1).To(2008, 1, 3).Payload("Craft", 1.5m).Interval,
            };

            Assert.That(TimeMath.Equals(expected, actual), Is.True);
        }
コード例 #7
0
        public void Add_Before()
        {
            // Arrange
            var timeline1 = new TimelinePayload <KeyCountPayload>(new LocalInterval(new LocalDateTime(2008, 1, 4, 0, 0), new LocalDateTime(2008, 1, 8, 0, 0)).AddPayload(new KeyCountPayload("Craft", 1.5m)));
            var timeline2 = new TimelinePayload <KeyCountPayload>(new LocalInterval(new LocalDateTime(2008, 1, 1, 0, 0), new LocalDateTime(2008, 1, 3, 0, 0)).AddPayload(new KeyCountPayload("Craft", 1.5m)));

            // Act
            var actual = (timeline1 + timeline2).GetIntervals();

            // Assert
            var expected = new LocalInterval[]
            {
                TimeBuilder.From(2008, 1, 1).To(2008, 1, 3).Payload("Craft", 1.5m).Interval,
                TimeBuilder.From(2008, 1, 4).To(2008, 1, 8).Payload("Craft", 1.5m).Interval,
            };

            Assert.That(TimeMath.Equals(expected, actual), Is.True);
        }