Exemplo n.º 1
0
        public void Test()
        {
            // Collection with 1 item to make this test simple
            Items = new ContinuousCollection<NotifiableItem>
                                {
                                    new NotifiableItem { TestValue1 = 3, TestValue2 = 10 },
                                };

            // Start with TestValue1
            MaxValueCV = Items.ContinuousMax(item => item.TestValue1, value => Max = value);
            Console.WriteLine("MaxValueCV = " + MaxValueCV.CurrentValue);
            Console.WriteLine("Max = " + Max);
            Console.WriteLine();

            // Switch to TestValue2
            MaxValueCV = Items.ContinuousMax(item => item.TestValue2, value => Max = value);
            Console.WriteLine("MaxValueCV = " + MaxValueCV.CurrentValue);
            Console.WriteLine("Max = " + Max);
            Console.WriteLine();
            GC.Collect();
            WeakPropertyChangedEventManager.RemoveCollectedEntries();
            GC.Collect();
            // Now set TestValue1
            Items[0].TestValue1 = 20;
            Console.WriteLine("(BUG)");
            Console.WriteLine("MaxValueCV = " + MaxValueCV.CurrentValue);
            // BUG: Max is set to 20 when it should be 10
            Console.WriteLine("Max = " + Max);

            Assert.AreEqual(10, Max);

            Console.Write("Hit enter to continue...");
            Console.ReadLine();
        }
        public void Test()
        {
            // Collection with 1 item to make this test simple
            Items = new ContinuousCollection <NotifiableItem>
            {
                new NotifiableItem {
                    TestValue1 = 3, TestValue2 = 10
                },
            };

            // Start with TestValue1
            MaxValueCV = Items.ContinuousMax(item => item.TestValue1, value => Max = value);
            Console.WriteLine("MaxValueCV = " + MaxValueCV.CurrentValue);
            Console.WriteLine("Max = " + Max);
            Console.WriteLine();

            // Switch to TestValue2
            MaxValueCV = Items.ContinuousMax(item => item.TestValue2, value => Max = value);
            Console.WriteLine("MaxValueCV = " + MaxValueCV.CurrentValue);
            Console.WriteLine("Max = " + Max);
            Console.WriteLine();
            GC.Collect();
            WeakPropertyChangedEventManager.RemoveCollectedEntries();
            GC.Collect();
            // Now set TestValue1
            Items[0].TestValue1 = 20;
            Console.WriteLine("(BUG)");
            Console.WriteLine("MaxValueCV = " + MaxValueCV.CurrentValue);
            // BUG: Max is set to 20 when it should be 10
            Console.WriteLine("Max = " + Max);

            Assert.AreEqual(10, Max);

            Console.Write("Hit enter to continue...");
            Console.ReadLine();
        }
Exemplo n.º 3
0
        public MonitorWindowModel() : base()
        {
            _tickerData = new ContinuousCollection <StockSaleTick>();
            _vwapTicks  = new ContinuousCollection <StockSaleTick>();
            _allQuotes  = new ContinuousCollection <StockQuoteTick>();

            _bidTicks = from quote in _allQuotes
                        where quote.Side == QuoteSide.Bid
                        select quote;

            _askTicks = from quote in _allQuotes
                        where quote.Side == QuoteSide.Ask
                        select quote;

            _allTicks =
                from tick in _tickerData
                where tick.Symbol == "AAPL"
                select tick;

            _graphWindowTicks =
                from tick in _tickerData
                where tick.TimeStamp >= DateTime.Now.AddMinutes(-5) &&
                tick.Symbol == "AAPL"
                select tick; // return last 5 minutes worth of ticks for AAPL */

            _liveVwap = _allTicks.ContinuousVwap <StockSaleTick>(
                tick => tick.Price,
                tick => tick.Quantity);

            _liveHigh = _allTicks.ContinuousMax <StockSaleTick>(
                tick => tick.Price);

            _liveMin = _allTicks.ContinuousMin <StockSaleTick>(
                tick => tick.Price);

            _liveMin.PropertyChanged +=
                new PropertyChangedEventHandler(_liveMin_PropertyChanged);
            _liveHigh.PropertyChanged +=
                new PropertyChangedEventHandler(_liveHigh_PropertyChanged);
            _liveVwap.PropertyChanged +=
                new PropertyChangedEventHandler(_liveVwap_PropertyChanged);

            _simulationTimer          = new Timer();
            _simulationTimer.Elapsed += new ElapsedEventHandler(_simulationTimer_Elapsed);
            _simulationTimer.Interval = 1000;
            _simulationTimer.Start(); // create a new tick every second
        }