Esempio n. 1
0
        private static void RunSPRGood()
        {
            Product lProduct = new Product
            {
                Price = 150,
                Units = 15,
                Name  = "Watermelon"
            };
            DiscountProvider discountProvider = new DiscountProvider();
            ProfitCalculator profitCalculator = new ProfitCalculator(0.2, 90);

            ProductDisplayer.DisplayProduct(lProduct);
            lProduct.Price -= discountProvider.ApplyDiscount(profitCalculator.CalculateProfit(lProduct.Price));
            lProduct.SellProduct(1);
            ProductDisplayer.DisplayProduct(lProduct);
            lProduct.Price -= discountProvider.ApplyDiscount(profitCalculator.CalculateProfit(lProduct.Price));
            lProduct.SellProduct(2);
            profitCalculator.Tax = 0.1;
            ProductDisplayer.DisplayProduct(lProduct);
            lProduct.Price -= discountProvider.ApplyDiscount(profitCalculator.CalculateProfit(lProduct.Price));
            lProduct.SellProduct(3);
            ProductDisplayer.DisplayProduct(lProduct);
            lProduct.Price -= discountProvider.ApplyDiscount(profitCalculator.CalculateProfit(lProduct.Price));
            lProduct.SellProduct(2);
        }
        public void CanCalculateProfit()
        {
            double[] raw    = new double[] { 1.0, 2.2, 3.1, 6, 7, 2.3, 7.2, 8.2 };
            var      profit = ProfitCalculator.CalculateProfit(raw.Length, raw);

            Assert.IsTrue(profit.AlmostEqual(-87.8));
            profit = ProfitCalculator.CalculateProfit(2, raw);
            Assert.IsTrue(profit.AlmostEqual(-54.545454));
        }
Esempio n. 3
0
        public Indicator AnalyzeData(DataState state)
        {
            double[] closePrices = _analyseRepo.LoadClosePriceBySymbol(state.Symbol, false).ToArray();
            Profit   value       = new Profit();

            value.Symbol  = state.Symbol;
            value.Date    = state.Last.Value;
            value.R20Day  = ProfitCalculator.CalculateProfit(20, closePrices);
            value.R50Day  = ProfitCalculator.CalculateProfit(50, closePrices);
            value.R100Day = ProfitCalculator.CalculateProfit(100, closePrices);
            value.R150Day = ProfitCalculator.CalculateProfit(150, closePrices);
            value.R200Day = ProfitCalculator.CalculateProfit(200, closePrices);
            return(value.ToIndicator());
        }