public static void TestNoComparisonIfValueUndefined(TargetComparer comparer)
        {
            comparer.PolarityId = PolarityIds.RagLowIsGood;

            Assert.AreEqual(Significance.None, comparer.CompareAgainstTarget(
                new CoreDataSet { Value = CoreDataSet.NullValue }));
        }
        public static void TestNoComparisonIfPolarityNotApplicable(TargetComparer comparer)
        {
            comparer.PolarityId = PolarityIds.NotApplicable;

            Assert.AreEqual(Significance.None, comparer.CompareAgainstTarget(
                new CoreDataSet { Value = 1 }));
        }
 /// <summary>
 /// Helper method to set the target significance. Only used to reduce duplicated code.
 /// </summary>
 public static void AddTargetSignificance(CoreDataSet data, TargetComparer targetComparer)
 {
     if (data != null && targetComparer != null)
     {
         Significance significance = targetComparer.CompareAgainstTarget(data);
         data.AddSignificance(ComparatorIds.Target, significance);
     }
 }
 private void InitComparer(PholioReader pholioReader, IArea nationalArea)
 {
     if (indicatorMetadata.HasTarget)
     {
         targetComparer = TargetComparerFactory.New(indicatorMetadata.TargetConfig);
         new TargetComparerHelper(groupDataReader, nationalArea)
             .AssignExtraDataIfRequired(nationalArea, targetComparer, grouping, indicatorMetadata);
     }
     else
     {
         comparer = new IndicatorComparerFactory {PholioReader = pholioReader}.New(grouping);
     }
 }
        public void GetPercentileData(TargetComparer targetComparer, Grouping grouping, IndicatorMetadata indicatorMetadata)
        {
            var bespokeComparer = targetComparer as BespokeTargetPercentileRangeComparer;
            if (bespokeComparer != null)
            {
                var nationalValues = groupDataReader.GetCoreDataForAllAreasOfType(grouping, TimePeriod.GetDataPoint(grouping));
                var percentileCalculator = new BespokeTargetPercentileRangeCalculator(nationalValues.Where(x => x.IsValueValid).Select(x => x.Value).ToList());

                bespokeComparer.LowerTargetPercentileBenchmarkData =
                    new CoreDataSet() { Value = percentileCalculator.GetPercentileValue(bespokeComparer.GetLowerTargetPercentile()) };

                bespokeComparer.UpperTargetPercentileBenchmarkData =
                    new CoreDataSet() { Value = percentileCalculator.GetPercentileValue(bespokeComparer.GetUpperTargetPercentile()) };
            }
        }
        public void AssignExtraDataIfRequired(IArea parentArea, TargetComparer targetComparer, Grouping grouping, IndicatorMetadata indicatorMetadata)
        {
            var bespokeComparer = targetComparer as BespokeTargetPreviousYearEnglandValueComparer;
            if (bespokeComparer != null)
            {
                // Assign the previous year's England data
                var previousYear = TimePeriod.GetDataPoint(grouping).GetTimePeriodForYearBefore();
                bespokeComparer.BenchmarkData =
                    new BenchmarkDataProvider(groupDataReader)
                        .GetBenchmarkData(grouping, previousYear,
                            null /*would need average calculator with previous year's data*/, nationalArea);
            }

            var bespokeTargetPreviousYearEnglandValueComparer = targetComparer as BespokeTargetPercentileRangeComparer;
            if (bespokeTargetPreviousYearEnglandValueComparer != null)
            {
                //Get the Upper and Lower Benchmark ranges
                new TargetComparerHelper(groupDataReader, parentArea).GetPercentileData(targetComparer, grouping, indicatorMetadata);
            }
        }
        public static void TestNoComparisonIfValueNull(TargetComparer comparer)
        {
            comparer.PolarityId = PolarityIds.RagLowIsGood;

            Assert.AreEqual(Significance.None, comparer.CompareAgainstTarget(null));
        }
 public static void TestNoComparisonIsMade(TargetComparer comparer)
 {
     TestNoComparisonIfPolarityNotApplicable(comparer);
     TestNoComparisonIfValueUndefined(comparer);
     TestNoComparisonIfValueNull(comparer);
 }
 private void Init()
 {
     comparer = NewIndicatorComparer();
     targetComparer = TargetComparerFactory.New(IndicatorMetadata.TargetConfig);
     // Note: TargetComparerHelper.AssignExtraDataIfRequired called in GroupDataProcessor
 }