public void SumAggregatorCalculate()
 {
     var numbers = new object[] {1, 2, 4};
     var aggregator = numbers.AsBindable<object, int>().Sum();
     var eventCatcher = new PropertyEventMonitor(aggregator);
     Assert.AreEqual(1 + 2 + 4, aggregator.Current);
     Assert.AreEqual(1, eventCatcher.Count);
 }
 public void CustomAggregatorAccumulateTypeCalculate()
 {
     var names = new[] {"Paul", "Jackie", "Tom"};
     var aggregator = names.AsBindable().Aggregate(0, (i, name) => i + name.Length);
     var eventCatcher = new PropertyEventMonitor(aggregator);
     Assert.AreEqual(4 + 6 + 3, aggregator.Current);
     Assert.AreEqual(1, eventCatcher.Count);
 }
        public void CustomAggregatorCalculate()
        {
            var numbers      = new object[] { 1, 2, 4 };
            var aggregator   = numbers.AsBindable <object, int>().Aggregate(0, (i, result) => result + i);
            var eventCatcher = new PropertyEventMonitor(aggregator);

            Assert.AreEqual(1 + 2 + 4, aggregator.Current);
            Assert.AreEqual(1, eventCatcher.Count);
        }
        public void CustomAggregatorAccumulateTypeCalculate()
        {
            var names        = new[] { "Paul", "Jackie", "Tom" };
            var aggregator   = names.AsBindable().Aggregate(0, (i, name) => i + name.Length);
            var eventCatcher = new PropertyEventMonitor(aggregator);

            Assert.AreEqual(4 + 6 + 3, aggregator.Current);
            Assert.AreEqual(1, eventCatcher.Count);
        }
Example #5
0
        public void MinAggregatorCalculate()
        {
            var numbers      = new object[] { 1, 2, 4 };
            var aggregator   = numbers.AsBindable <object, int>().Min();
            var eventCatcher = new PropertyEventMonitor(aggregator);

            Assert.AreEqual(1, aggregator.Current);
            Assert.AreEqual(1, eventCatcher.Count);
        }
        public void CustomAggregatorCollectionChangeCausesRefresh()
        {
            var numbers = new ObservableCollection <object>();

            numbers.AddRange(1, 2, 4);
            var aggregator   = numbers.AsBindable <object, int>().Aggregate(0, (i, result) => result + i);
            var eventCatcher = new PropertyEventMonitor(aggregator);

            Assert.AreEqual(1 + 2 + 4, aggregator.Current);
            Assert.AreEqual(1, eventCatcher.Count);

            // Test an Add
            numbers.Add(8);
            Assert.AreEqual(1 + 2 + 4 + 8, aggregator.Current);
            Assert.AreEqual(2, eventCatcher.Count);

            // Test a Remove
            numbers.RemoveAt(0);
            Assert.AreEqual(2 + 4 + 8, aggregator.Current);
            Assert.AreEqual(3, eventCatcher.Count);

            // Test a Replace
            numbers[0] = 4;
            Assert.AreEqual(4 + 4 + 8, aggregator.Current);
            Assert.AreEqual(4, eventCatcher.Count);

            // Test an AddRange
            numbers.AddRange(4, 5);
            Assert.AreEqual(4 + 4 + 8 + 4 + 5, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);

            // Test a replace with the same value - no events should be raised
            numbers[0] = numbers[0];
            Assert.AreEqual(4 + 4 + 8 + 4 + 5, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);

            // Test an add with 0
            numbers.Add(0);
            Assert.AreEqual(4 + 4 + 8 + 4 + 5, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);
        }
Example #7
0
        public void MinAggregatorCollectionChangeCausesRefresh()
        {
            var numbers = new ObservableCollection <object>();

            numbers.AddRange(1, 2, 4);
            var aggregator   = numbers.AsBindable <object, int>().Min();
            var eventCatcher = new PropertyEventMonitor(aggregator);

            Assert.AreEqual(1, aggregator.Current);
            Assert.AreEqual(1, eventCatcher.Count);

            // Test an Add
            numbers.Add(-8);
            Assert.AreEqual(-8, aggregator.Current);
            Assert.AreEqual(2, eventCatcher.Count);

            // Test a Remove
            numbers.RemoveAt(3);
            Assert.AreEqual(1, aggregator.Current);
            Assert.AreEqual(3, eventCatcher.Count);

            // Test a Replace
            numbers[0] = -12;
            Assert.AreEqual(-12, aggregator.Current);
            Assert.AreEqual(4, eventCatcher.Count);

            // Test an AddRange
            numbers.AddRange(-14, 5);
            Assert.AreEqual(-14, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);

            // Test a replace with the same value - no events should be raised
            numbers[0] = numbers[0];
            Assert.AreEqual(-14, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);

            // Test an add with 0
            numbers.Add(0);
            Assert.AreEqual(-14, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);
        }
        public void SumAggregatorCollectionChangeCausesRefresh()
        {
            var numbers = new ObservableCollection<object>();
            numbers.AddRange(1, 2, 4);
            var aggregator = numbers.AsBindable<object, int>().Sum();
            var eventCatcher = new PropertyEventMonitor(aggregator);
            Assert.AreEqual(1 + 2 + 4, aggregator.Current);
            Assert.AreEqual(1, eventCatcher.Count);

            // Test an Add
            numbers.Add(8);
            Assert.AreEqual(1 + 2 + 4 + 8, aggregator.Current);
            Assert.AreEqual(2, eventCatcher.Count);

            // Test a Remove
            numbers.RemoveAt(0);
            Assert.AreEqual(2 + 4 + 8, aggregator.Current);
            Assert.AreEqual(3, eventCatcher.Count);

            // Test a Replace
            numbers[0] = 4;
            Assert.AreEqual(4 + 4 + 8, aggregator.Current);
            Assert.AreEqual(4, eventCatcher.Count);

            // Test an AddRange
            numbers.AddRange(4, 5);
            Assert.AreEqual(4 + 4 + 8 + 4 + 5, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);

            // Test a replace with the same value - no events should be raised
            numbers[0] = numbers[0];
            Assert.AreEqual(4 + 4 + 8 + 4 + 5, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);

            // Test an add with 0
            numbers.Add(0);
            Assert.AreEqual(4 + 4 + 8 + 4 + 5, aggregator.Current);
            Assert.AreEqual(5, eventCatcher.Count);
        }