public void Test_building_with_boundaries()
        {
            BoundedPeriodSet set1 = one + two + three + four;
            BoundedPeriodSet set2 = two + four + five;

            (set1 - set2).Should().Be(one + three);
            (set1 * set2).Should().Be(two + four);
        }
Beispiel #2
0
        public void Test_all()
        {
            OpenPeriodSet    openAll    = OpenPeriodSet.All;
            BoundedPeriodSet boundedAll = BoundedPeriodSet.All;
            OpenPeriodSet    remainder  = openAll.Minus(boundedAll);

            openAll.Should().Be(boundedAll);
            remainder.IsEmpty.Should().BeTrue();
        }
Beispiel #3
0
        public void TestEquals()
        {
            BoundedPeriodSet bounded = new OpenPeriodSet(startOne, startTwo);

            bounded.Should()
            .Be((BoundedPeriodSet)one);

            OpenPeriodSet open = new BoundedPeriodSet(startOne, startTwo);

            open.Should().Be(one);

            bounded = new OpenPeriodSet(startOne);
            NonEmptyBoundedPeriodSet nonEmptyBounded = (NonEmptyBoundedPeriodSet)bounded;

            nonEmptyBounded.End.Should().Be(DateTime.MaxValue);
            nonEmptyBounded.Should().Be(new BoundedPeriodSet(startOne));
            new BoundedPeriodSet(startOne).Should().Be(nonEmptyBounded);
        }
Beispiel #4
0
        public void Test_initialize_degenerate()
        {
            BoundedPeriodSet         degenerate;
            NonEmptyBoundedPeriodSet nonEmptyDegenerate;
            OpenPeriodSet            openDegenerate;
            NonEmptyOpenPeriodSet    nonEmptyOpenDegenerate;

            DateTime from = startOne;
            DateTime?to   = startOne;

            degenerate = new BoundedPeriodSet(from, to);
            degenerate.Boundaries.Count().Should().Be(1);

            nonEmptyDegenerate = new NonEmptyBoundedPeriodSet(startOne, startOne);
            nonEmptyDegenerate.Boundaries.Count().Should().Be(1);

            openDegenerate = new OpenPeriodSet(from, to);
            openDegenerate.Boundaries.Count().Should().Be(1);

            nonEmptyOpenDegenerate = new NonEmptyOpenPeriodSet(startOne, startOne);
            nonEmptyOpenDegenerate.Boundaries.Count().Should().Be(1);
        }
Beispiel #5
0
        public void Test_degenerate()
        {
            BoundedPeriodSet degenerate = new BoundedPeriodSet(startOne, startOne);

            degenerate.Should().NotBe(BoundedPeriodSet.Empty);
            degenerate.Should().NotBe(OpenPeriodSet.Empty);
            degenerate.IsEmpty.Should().BeFalse();
            IDefaultInterval <DateTime> nonEmptyDegenerate;

            degenerate.IsNonEmpty(out nonEmptyDegenerate).Should().BeTrue();
            nonEmptyDegenerate.Start.Should().Be(startOne);
            nonEmptyDegenerate.End.Should().Be(startOne);

            (degenerate * one).Should().Be(degenerate);
            (one - degenerate).Cross(degenerate).Should().Be(empty);
            (degenerate + two).Cross(degenerate).Should().NotBe(empty);

            degenerate = new BoundedPeriodSet(startTwo, startTwo);
            BoundedPeriodSet set        = one + two;
            BoundedPeriodSet difference = set - degenerate;

            difference.Contains(startTwo).Should().BeFalse();
            difference.Cross(degenerate).Should().Be(empty);
        }