Exemple #1
0
        public void TestToString()
        {
            var inc = new Incrementor(0, 10);

            inc.ToString().Should().Be("0");
            for (int i = 1; i <= 10; i++)
            {
                inc = inc.IncrementValue();
                inc.ToString().Should().Be(i.ToString());
            }
        }
Exemple #2
0
        public void TestIncrementBy1()
        {
            var inc = new Incrementor(0, 10);

            inc.Value.Should().Be(0);
            for (int i = 1; i <= 10; i++)
            {
                inc = inc.IncrementValue();
                inc.Value.Should().Be(i);
            }
        }
Exemple #3
0
        public void TestIncrementBy2()
        {
            var inc = new Incrementor(10, 20, 2);

            inc.Value.Should().Be(10);
            for (int i = 1; i <= 5; i++)
            {
                inc = inc.IncrementValue();
                inc.Value.Should().Be(10 + 2 * i);
            }
        }
Exemple #4
0
        public void TestNoParentIncrementor()
        {
            var inc1 = new Incrementor(0, 3);

            inc1.CanIncrement.Should().BeTrue();
            var maxInc = inc1.IncrementValue().IncrementValue().IncrementValue();

            maxInc.CanIncrement.Should().BeFalse();
            Action act = () => maxInc.IncrementValue();

            act.ShouldThrow <InvalidOperationException>();
        }
Exemple #5
0
        public void TestLongCombined()
        {
            int incrementorCount = _random.Next(3, 10);

            Incrementor[] incrementors = Enumerable.Range(1, incrementorCount).Select(i => CreateRandomIncrementor()).ToArray();
            Incrementor   combined     = Incrementor.CreateCombined(incrementors);
            int           count        = 0;

            while (combined.CanIncrement)
            {
                count++;
                combined = combined.IncrementValue();
            }

            int expectedPossibilities = (incrementors.Select(i => i.Maximum).Aggregate(1, (a, i) => a * (i + 1)) - 1);

            count.Should().Be(expectedPossibilities);

            string expectedFinalString = string.Join("", incrementors.Select(i => i.Maximum.ToString()));

            combined.ToString().Should().Be(expectedFinalString);
        }