Exemplo n.º 1
0
        public void TestSort_Increase()
        {
            //无数据排序?
            _quoteCapture.Sort(false, true);
            Assert.AreEqual(_quoteCapture.Count, 0);
            //只有1个数据排序
            _quoteCapture.Add(5, 15, 101.5);
            _quoteCapture.Sort(false, true);
            Assert.AreEqual(_quoteCapture.Count, 1);
            Assert.AreEqual(_quoteCapture.Time[0], 5);
            Assert.AreEqual(_quoteCapture.Price[0], 15);
            Assert.AreEqual(_quoteCapture.Volume[0], 101.5);
            //测试无重复数据的递增排序
            _quoteCapture.Clear();
            _quoteCapture.Add(0, 10, 100.1);
            _quoteCapture.Add(-1, -11, 100.2);
            _quoteCapture.Add(-2, -12, 100.3);
            _quoteCapture.Add(6, 16, 100.4);
            _quoteCapture.Add(7, 17, 100.5);
            _quoteCapture.Add(3, 13, 100.6);
            _quoteCapture.Add(9, 19, 100.7);
            _quoteCapture.Add(4, 11, 100.8);
            _quoteCapture.Sort(false, true);
            Assert.AreEqual(_quoteCapture.Count, 8);
            Assert.AreEqual(_quoteCapture.Time[0], -2);
            Assert.AreEqual(_quoteCapture.Price[0], -12);
            Assert.AreEqual(_quoteCapture.Volume[0], 100.3);
            Assert.AreEqual(_quoteCapture.Time[1], -1);
            Assert.AreEqual(_quoteCapture.Price[1], -11);
            Assert.AreEqual(_quoteCapture.Volume[1], 100.2);
            Assert.AreEqual(_quoteCapture.Time[2], 0);
            Assert.AreEqual(_quoteCapture.Price[2], 10);
            Assert.AreEqual(_quoteCapture.Volume[2], 100.1);
            Assert.AreEqual(_quoteCapture.Time[3], 3);
            Assert.AreEqual(_quoteCapture.Price[3], 13);
            Assert.AreEqual(_quoteCapture.Volume[3], 100.6);
            Assert.AreEqual(_quoteCapture.Time[4], 4);
            Assert.AreEqual(_quoteCapture.Price[4], 11);
            Assert.AreEqual(_quoteCapture.Volume[4], 100.8);
            Assert.AreEqual(_quoteCapture.Time[5], 6);
            Assert.AreEqual(_quoteCapture.Price[5], 16);
            Assert.AreEqual(_quoteCapture.Volume[5], 100.4);
            Assert.AreEqual(_quoteCapture.Time[6], 7);
            Assert.AreEqual(_quoteCapture.Price[6], 17);
            Assert.AreEqual(_quoteCapture.Volume[6], 100.5);
            Assert.AreEqual(_quoteCapture.Time[7], 9);
            Assert.AreEqual(_quoteCapture.Price[7], 19);
            Assert.AreEqual(_quoteCapture.Volume[7], 100.7);
            //测试有重复数据的递增排序
            _quoteCapture.Clear();
            _quoteCapture.Add(-1, -11);
            _quoteCapture.Add(-2, -12);
            _quoteCapture.Add(-2, -12);
            _quoteCapture.Add(6, 16);
            _quoteCapture.Add(7, 17);
            _quoteCapture.Add(3, 13);
            _quoteCapture.Add(9, 19);
            _quoteCapture.Add(7, 17);
            _quoteCapture.Add(4, 11);
            _quoteCapture.Add(7, 17);
            _quoteCapture.Sort(false, true);
            Assert.AreEqual(_quoteCapture.Count, 10);
            Assert.AreEqual(_quoteCapture.Time[0], -2);
            Assert.AreEqual(_quoteCapture.Price[0], -12);
            Assert.AreEqual(_quoteCapture.Time[1], -2);
            Assert.AreEqual(_quoteCapture.Price[1], -12);
            Assert.AreEqual(_quoteCapture.Time[2], -1);
            Assert.AreEqual(_quoteCapture.Price[2], -11);
            Assert.AreEqual(_quoteCapture.Time[3], 3);
            Assert.AreEqual(_quoteCapture.Price[3], 13);
            Assert.AreEqual(_quoteCapture.Time[4], 4);
            Assert.AreEqual(_quoteCapture.Price[4], 11);
            Assert.AreEqual(_quoteCapture.Time[5], 6);
            Assert.AreEqual(_quoteCapture.Price[5], 16);
            Assert.AreEqual(_quoteCapture.Time[6], 7);
            Assert.AreEqual(_quoteCapture.Price[6], 17);
            Assert.AreEqual(_quoteCapture.Time[7], 7);
            Assert.AreEqual(_quoteCapture.Price[7], 17);
            Assert.AreEqual(_quoteCapture.Time[8], 7);
            Assert.AreEqual(_quoteCapture.Price[8], 17);
            Assert.AreEqual(_quoteCapture.Time[9], 9);
            Assert.AreEqual(_quoteCapture.Price[9], 19);
            //测试随机数据进行排序
            _quoteCapture.Clear();
            var random = new Random();

            for (var i = 0; i < 100; i++)
            {
                var num = random.Next(1000);
                _quoteCapture.Add(num, (double)num - 10);
            }
            _quoteCapture.Sort(false, true);
            Assert.AreEqual(_quoteCapture.Count, 100);
            for (var i = 1; i < 100; i++)
            {
                Assert.IsTrue(_quoteCapture.Time[i] >= _quoteCapture.Time[i - 1]);
                Assert.AreEqual(_quoteCapture.Time[i], _quoteCapture.Price[i] + 10);
            }
        }