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); }
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); }
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); }