package org.jetbrains.mps.samples.money.runtime;
/*Generated by MPS */
import java.math.BigDecimal;
import java.util.List;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import jetbrains.mps.internal.collections.runtime.ISelector;
import jetbrains.mps.internal.collections.runtime.ILeftCombinator;
public final class StockPriceCalculator {
public static Iterable<BigDecimal> calculateMovingAverage(List<DailyStockPrice> prices) {
List<DailyStockPrice> pricesToUse = retrievePricesWithin(prices);
BigDecimal sum = ListSequence.fromList(pricesToUse).select(new ISelector<DailyStockPrice, BigDecimal>() {
public BigDecimal select(DailyStockPrice it) {
return it.getAdjustedClose();
}
}).reduceLeft(new ILeftCombinator<BigDecimal, BigDecimal>() {
public BigDecimal combine(BigDecimal a, BigDecimal b) {
return a.add(b);
}
});
BigDecimal divided = sum.divide(BigDecimal.valueOf(ListSequence.fromList(pricesToUse).count()));
return null;
}
private static List<DailyStockPrice> retrievePricesWithin(List<DailyStockPrice> prices) {
return ListSequence.fromList(prices).subListSequence(0, 10);
}
}