Esempio n. 1
0
        public void PriceFormula_CalculateProductTotalCost_Should_Return_CorrectValue_When_DecimalPricePartsAreGiven(decimal basePrice, decimal vatRate, decimal priceModifier)
        {
            var priceFormulaCalculation = new PriceFormula();

            var calculatedCost = priceFormulaCalculation.CalculateProductTotalCost(basePrice, vatRate, priceModifier);

            var expectedCost = PriceFormula(basePrice, vatRate, priceModifier);

            Assert.AreEqual(expectedCost, calculatedCost);
        }
Esempio n. 2
0
		private PriceCalculator GetPriceCalculator(PriceFormula priceFormula)
		{
			switch (priceFormula)
			{
				case PriceFormula.Close: return DataUtilities.PriceUtilities.Close;
				case PriceFormula.High: return DataUtilities.PriceUtilities.High;
				case PriceFormula.Low: return DataUtilities.PriceUtilities.Low;
				case PriceFormula.Open: return DataUtilities.PriceUtilities.Open;
				case PriceFormula.TypicalPrice: return DataUtilities.PriceUtilities.TypicalPrice;
				case PriceFormula.MedianPrice: return DataUtilities.PriceUtilities.MedianPrice;
				case PriceFormula.WeightedPrice: return DataUtilities.PriceUtilities.WeightedPrice;
				default: throw new NotSupportedException();
			}
		}
Esempio n. 3
0
		public IList<double> AddMovingAverageCalculator(MovingAverageType type, int period, PriceFormula formula)
		{
			IMovingAverageCalculator ma;

			switch (type)
			{
				case MovingAverageType.Simple :
					ma = new SimpleMACalculator();
					break;

				case MovingAverageType.Exponential:
					ma = new ExponentialMACalculator();
					break;

				default: throw new NotImplementedException();
			}

			int id = _dataCollection.AddMovingAverageCollection();
			_movingAverageCalculators.Add(id, new KeyValuePair<PriceCalculator, IMovingAverageCalculator>(GetPriceCalculator(formula), ma));

			IList<double> values = _dataCollection.GetMovingAverageCollection(id);
			System.Diagnostics.Debug.Assert(values != null);
			if (values == null)
				throw new InvalidOperationException();

			ma.Initialize(period);
			return values;
		}
Esempio n. 4
0
		public MovingAverageObject()
		{
			Period = 1;
			PriceType = PriceFormula.Close;
		}
Esempio n. 5
0
		public MovingAverageDefinition(MovingAverageType type, int period, PriceFormula formula)
		{
			MovingAverageType = type;
			Period = period;
			Formula = formula;
		}