Ejemplo n.º 1
0
        public IHttpActionResult GetFibonacciSeries([FromBody] Fibonacci req)
        {
            try
            {
                using (FibonacciContext context = new FibonacciContext())
                {
                    Fibonacci fib = context.Fibonaccis.Find(req.Position + 1);
                    if (fib == null)
                    {
                        //RabbitMQClient client = new RabbitMQClient();
                        FibonacciCalcNumAtPos fr     = new FibonacciCalcNumAtPos();
                        BigInteger            result = fr.GetNumberAtPosition(req.Position);
                        req.FibonacciNumber = result.ToString();
                        fr.SaveSeries(context);

                        //client.SendFibonacciNum(req);


                        //client.Close();
                    }
                    else
                    {
                        req.FibonacciNumber = fib.FibonacciNumber;
                    }
                }
            }
            catch (Exception)
            {
                return(StatusCode(HttpStatusCode.BadRequest));
            }

            return(Ok(req));
        }
Ejemplo n.º 2
0
        public void FibonacciCalcNumAtPosWithLargestPositionTest()
        {
            FibonacciCalcNumAtPos fr  = new FibonacciCalcNumAtPos();
            BigInteger            res = fr.GetNumberAtPosition(100000);

            res = fr.GetNumberAtPosition(100);
            Assert.AreEqual(res.ToString(), "354224848179261915075");
        }
Ejemplo n.º 3
0
        public void FibonacciCalcNumAtPosTest()
        {
            FibonacciCalcNumAtPos fr  = new FibonacciCalcNumAtPos();
            BigInteger            res = fr.GetNumberAtPosition(10);

            Assert.AreEqual(res, 55);
            res = fr.GetNumberAtPosition(30);
        }
Ejemplo n.º 4
0
        public void FibonacciCalcNumAtPosCacheTest()
        {
            FibonacciCalcNumAtPos fr  = new FibonacciCalcNumAtPos();
            BigInteger            res = fr.GetNumberAtPosition(100000);

            //see if the cache is geeting used.
            res = fr.GetNumberAtPosition(100);
            Assert.AreEqual(res.ToString(), "354224848179261915075");
        }
Ejemplo n.º 5
0
        public void FibonacciCalcNumAtPosNegativeTest()
        {
            FibonacciCalcNumAtPos fr  = new FibonacciCalcNumAtPos();
            BigInteger            res = fr.GetNumberAtPosition(0);

            Assert.AreEqual(res, 0);
            res = fr.GetNumberAtPosition(-1);
            Assert.AreEqual(res, -1);
            res = fr.GetNumberAtPosition(1);
            Assert.AreEqual(res, 1);
            res = fr.GetNumberAtPosition(2);
            Assert.AreEqual(res, 1);
        }
Ejemplo n.º 6
0
        public IHttpActionResult GenerateFibonacciSeries([FromBody] Fibonacci req)
        {
            try
            {
                RabbitMQClient        client = new RabbitMQClient();
                FibonacciCalcNumAtPos fr     = new FibonacciCalcNumAtPos();
                BigInteger            result = fr.GetNumberAtPosition(req.Position);
                req.res = result;

                client.SendFibonacciNum(req);


                client.Close();
            }
            catch (Exception)
            {
                return(StatusCode(HttpStatusCode.BadRequest));
            }

            return(Ok(req));
        }