public void FiboncciGeneratorInvalidArgumentsTest()
 {
     foreach (var i in FibonacciSequenceGenerator.GenerateSequence(-1))
     {
         Debug.WriteLine(i);
     }
 }
        public void getRangeOfN_FibonacciNumbers_StartingFromZero()
        {
            var expectedNumbers = new int[] { 1, 1, 2, 3, 5 };

            var actualNumbers = new FibonacciSequenceGenerator().GetRangeOfN(1, 5);

            CollectionAssert.AreEqual(expectedNumbers, actualNumbers);
        }
        public void getRangeOfN_FibonacciNumbers()
        {
            var expectedNumbers = new int[] { 5, 8, 13, 21, 34 };

            var actualNumbers = new FibonacciSequenceGenerator().GetRangeOfN(5, 5);

            CollectionAssert.AreEqual(expectedNumbers, actualNumbers);
        }
        public void FiboncciGeneratorTest()
        {
            var sequence       = FibonacciSequenceGenerator.GenerateSequence(12).ToList();
            var cachedSequence = new List <int> {
                0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
            };

            CollectionAssert.AreEqual(sequence, cachedSequence);
        }
        public void InitializeTest_IncorrectInputForOneArguments_ExpectedException
            (int boundaryValue)
        {
            //Arrange
            FibonacciSequenceGenerator fb = new FibonacciSequenceGenerator();

            //Act
            fb.Initialize(boundaryValue);
        }
        public void getFirstTenFibonacciNumbersWithGetRangeN()
        {
            var expectedNumbers = new int[] { 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 };
            var generator       = new FibonacciSequenceGenerator();

            var actualNumbers = generator.GetRange(55);

            CollectionAssert.AreEqual(expectedNumbers, actualNumbers);
        }
        public void RedisCacheTest()
        {
            var cache    = new FibonacciSequenceRedisCache();
            var sequence = FibonacciSequenceGenerator.GenerateSequence(15).ToList();

            cache.Set("key1", sequence);
            var cachedSequence = cache.Get("key1").ToList();

            CollectionAssert.AreEqual(sequence, cachedSequence);
        }
示例#8
0
        public void GeneratesFibonacciSequence()
        {
            // Act
            var response = FibonacciSequenceGenerator.GenerateFibonacciSequence(10);

            // Assert
            Assert.AreEqual(response, new List <BigInteger> {
                0, 1, 1, 2, 3, 5, 8, 13, 21, 34
            });
        }
 public ActionResult <List <BigInteger> > Get(int length)
 {
     if (length > 0 && length <= 100000)
     {
         return(FibonacciSequenceGenerator.GenerateFibonacciSequence(length));
     }
     else
     {
         return(BadRequest("Parameter should be positive integer between 1 and 100000"));
     }
 }
        public void InitializeTest_DoNotInitializeGenerator_ExpectedException()
        {
            //Arrange
            FibonacciSequenceGenerator fb = new FibonacciSequenceGenerator();

            //Act
            foreach (int element in fb)
            {
                Console.WriteLine(element);
            }
        }
        public void getFirstTenFibonacciNumbersWithGetNext()
        {
            var expectedNumbers = new int[] { 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 };
            var actualNumbers1  = new int[10];
            var generator       = new FibonacciSequenceGenerator();

            for (var i = 0; i < 10; i++)
            {
                actualNumbers1[i] = generator.GetNext();
            }

            CollectionAssert.AreEqual(expectedNumbers, actualNumbers1);
        }
        public void getNext_N_Numbers()
        {
            var expectedNumbers = new int[] { 5, 8 };
            var generator       = new FibonacciSequenceGenerator();

            for (var i = 0; i < 4; i++)
            {
                generator.GetNext();
            }

            var actualNumbers = generator.GetNext(2);

            CollectionAssert.AreEqual(expectedNumbers, actualNumbers);
        }
        public void GetEnumeratorTest_CorrectInputForOneArguments(int boundaryValue, int[] expected)
        {
            //Arrange
            FibonacciSequenceGenerator fb = new FibonacciSequenceGenerator();

            fb.Initialize(boundaryValue);
            int[] actual = new int[0];

            //Act
            int i = 0;

            foreach (int element in fb)
            {
                Console.WriteLine(element);
                Array.Resize <int>(ref actual, i + 1);
                actual[i] = element;
                i++;
            }

            //Assert
            CollectionAssert.AreEqual(expected, actual);
        }
示例#14
0
        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json", optional: false)
                         .Build();

            var host = BuildWebHost(args);

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                try
                {
                    var context = services.GetRequiredService <FibonacciDbContext>();
                    FibonacciSequenceGenerator.Initialize(context, System.Convert.ToInt32(config.GetSection("MaxStepNumber").Value));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            host.Run();
        }
示例#15
0
        public static void Parse(
            string[] args,
            out ISequenceGenerator sequenceGenerator,
            out int boundaryValue,
            out int?startValue)
        {
            if (args.Length < (int)ArgumentsCount.Minimum)
            {
                throw new ArgumentException("You do not have enough arguments! "
                                            + "Please, enter the correct number of arguments!");
            }

            if (args.Length > (int)ArgumentsCount.Maximum)
            {
                throw new ArgumentException("You have too many arguments! "
                                            + "Please, enter the correct number of arguments!");
            }

            string sequenceGeneratorType = args[0].ToLower();

            switch (sequenceGeneratorType)
            {
            case "fibonacci":
                sequenceGenerator = new FibonacciSequenceGenerator();
                break;

            case "squarelessn":
                sequenceGenerator = new SquareLessNSequenceGenerator();
                break;

            default:
                throw new ArgumentException("Please, enter correct algorithm "
                                            + "for searching the sequence");
            }

            if (!int.TryParse(args[1], out boundaryValue))
            {
                throw new ArgumentException("The second argument is not a number or is a too big number!");
            }

            startValue = null;
            if (args.Length == (int)ArgumentsCount.Maximum)
            {
                int thirdArgument;
                if (!int.TryParse(args[2], out thirdArgument))
                {
                    throw new ArgumentException("The third argument is not a number!");
                }
                else
                {
                    startValue = thirdArgument;
                    if (startValue - boundaryValue > 0)
                    {
                        throw new ArgumentException("The third argument (boundary value) can not be "
                                                    + "bigger than second (start value)! Please, check your arguments!");
                    }

                    if (startValue < 0 || boundaryValue < 0)
                    {
                        throw new ArgumentException("Arguments can not be negative!");
                    }
                }
            }
        }