public void BetterThan()
        {
            AbstractAnalysisCriterion criterion = new NumberOfBarsCriterion();

            Assert.IsTrue(criterion.BetterThan(3, 6));
            Assert.IsFalse(criterion.BetterThan(6, 2));
        }
        public void CalculateWithOneTrade()
        {
            MockTimeSeries            series       = new MockTimeSeries(100, 95, 100, 80, 85, 70);
            Trade                     t            = new Trade(Order.buyAt(2, series), Order.sellAt(5, series));
            AbstractAnalysisCriterion numberOfBars = new NumberOfBarsCriterion();

            Assert.AreEqual(4, numberOfBars.Calculate(series, t));
        }
        public void CalculateWithNoTrades()
        {
            MockTimeSeries series = new MockTimeSeries(100, 105, 110, 100, 95, 105);

            AbstractAnalysisCriterion numberOfBars = new NumberOfBarsCriterion();

            Assert.AreEqual(0, (int)numberOfBars.Calculate(series, new BaseTradingRecord()));
        }
        public void CalculateWithTwoTrades()
        {
            MockTimeSeries series        = new MockTimeSeries(100, 105, 110, 100, 95, 105);
            ITradingRecord tradingRecord = new BaseTradingRecord(
                Order.buyAt(0, series), Order.sellAt(2, series),
                Order.buyAt(3, series), Order.sellAt(5, series));

            AbstractAnalysisCriterion numberOfBars = new NumberOfBarsCriterion();

            Assert.AreEqual(6, numberOfBars.Calculate(series, tradingRecord));
        }