Exemple #1
0
        public void WithAggregation()
        {
            // Test base level aggregation
            DataStatisticsAggregator aggregator1 = new DataStatisticsAggregator();
            DataStatisticsAggregator aggregator2 = new DataStatisticsAggregator();

            aggregator1.AggregateWith(aggregator2);
            Assert.True(AggregatorStateIsDefault(aggregator1), "Unexpected state after default aggregation on default state");

            aggregator2.CellSize                = 1;
            aggregator2.CellsScannedAtTarget    = 10;
            aggregator2.CellsScannedOverTarget  = 20;
            aggregator2.CellsScannedUnderTarget = 30;

            aggregator2.SummaryCellsScanned   = 60;
            aggregator2.IsTargetValueConstant = false;
            aggregator2.MissingTargetValue    = true;
            aggregator2.DetailsDataValues     = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            aggregator2.Counts = new long[aggregator2.DetailsDataValues.Length];

            aggregator1.AggregateWith(aggregator2);

            Assert.True(Math.Abs(aggregator1.CellSize - 1) < Epsilon, "Cell size incorrect");
            Assert.True(aggregator1.CellsScannedAtTarget == 10, "CellsScannedAtTarget incorrect");
            Assert.True(aggregator1.CellsScannedOverTarget == 20, "CellsScannedOverTarget incorrect");
            Assert.True(aggregator1.CellsScannedUnderTarget == 30, "CellsScannedUnderTarget incorrect");

            Assert.False(aggregator1.IsTargetValueConstant, "IsTargetValueConstant incorrect");
            Assert.True(aggregator1.MissingTargetValue, "MissingTargetValue incorrect");

            Assert.True(aggregator1.SummaryCellsScanned == 60, "SummaryCellsScanned incorrect");
            Assert.True(Math.Abs(aggregator1.SummaryProcessedArea - 60.0) < Epsilon, "SummaryCellsScanned incorrect");
            Assert.True(Math.Abs(aggregator1.ValueAtTargetPercent - (10 / 60.0) * 100) < Epsilon, "ValueAtTargetPercent  incorrect");
            Assert.True(Math.Abs(aggregator1.ValueOverTargetPercent - (20 / 60.0) * 100) < Epsilon, "ValueOverTargetPercent incorrect");
            Assert.True(Math.Abs(aggregator1.ValueUnderTargetPercent - (30 / 60.0) * 100) < Epsilon, "ValueUnderTargetPercent incorrect");

            Assert.True(aggregator2.Counts.Length == aggregator2.DetailsDataValues.Length, "Invalid value for DetailsDataValues.");
            for (int i = 0; i < aggregator2.Counts.Length; i++)
            {
                Assert.True(aggregator2.Counts[i] == 0, $"Invalid aggregated value for aggregator2.Counts[{i}].");
            }
        }
Exemple #2
0
        public void AggregateWith_DifferingPassCountTargets()
        {
            var aggregator = new DataStatisticsAggregator
            {
                IsTargetValueConstant = true,
                SummaryCellsScanned   = 1
            };

            var otheraggregator = new DataStatisticsAggregator
            {
                IsTargetValueConstant = false,
                SummaryCellsScanned   = 1
            };

            aggregator.IsTargetValueConstant.Should().BeTrue();
            otheraggregator.IsTargetValueConstant.Should().BeFalse();

            aggregator.AggregateWith(otheraggregator);
            aggregator.IsTargetValueConstant.Should().BeFalse();
        }