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)); }
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()); }