public void TestWetBasinBipolarLinearInterpolation(double observation, double benchmark, double threshold, double expectedScore) { //Act var actualScore = TreatmentBMPAssessmentObservationTypeHelper.WetBasinBipolarLinearInterpolation(observation, benchmark, threshold); //Assert Assert.That(actualScore, Is.EqualTo(expectedScore).Within(0.00001)); }
public override List <ValidationResult> ValidateObservationType(string json) { var validationErrors = new List <ValidationResult>(); var schema = JsonConvert.DeserializeObject <PercentageObservationTypeSchema>(json); var propertiesToObserve = schema.PropertiesToObserve; TreatmentBMPAssessmentObservationTypeHelper.ValidatePropertiesToObserve(propertiesToObserve, validationErrors); TreatmentBMPAssessmentObservationTypeHelper.ValidateMeasurementUnitLabel(schema.MeasurementUnitLabel, validationErrors); TreatmentBMPAssessmentObservationTypeHelper.ValidateAssessmentInstructions(schema.AssessmentDescription, validationErrors); TreatmentBMPAssessmentObservationTypeHelper.ValidateBenchmarkAndThresholdDescription(schema.BenchmarkDescription, schema.ThresholdDescription, validationErrors); return(validationErrors); }
public override List <ValidationResult> ValidateObservationType(string json) { var validationErrors = new List <ValidationResult>(); var schema = JsonConvert.DeserializeObject <PassFailObservationTypeSchema>(json); var propertiesToObserve = schema.PropertiesToObserve; TreatmentBMPAssessmentObservationTypeHelper.ValidatePropertiesToObserve(propertiesToObserve, validationErrors); TreatmentBMPAssessmentObservationTypeHelper.ValidateAssessmentInstructions(schema.AssessmentDescription, validationErrors); TreatmentBMPAssessmentObservationTypeHelper.ValidateRequiredStringField(schema.PassingScoreLabel, "Passing Score Label must have a name and cannot be blank", validationErrors); TreatmentBMPAssessmentObservationTypeHelper.ValidateRequiredStringField(schema.FailingScoreLabel, "Failing Score Label must have a name and cannot be blank", validationErrors); return(validationErrors); }
public override double?CalculateScore(TreatmentBMPObservation treatmentBMPObservation) { var observationValue = GetObservationValueFromObservationData(treatmentBMPObservation.ObservationData); var benchmarkValue = treatmentBMPObservation.TreatmentBMPAssessmentObservationType.GetBenchmarkValue(treatmentBMPObservation.TreatmentBMPAssessment.TreatmentBMP); var thresholdValue = treatmentBMPObservation.TreatmentBMPAssessmentObservationType.GetThresholdValue(treatmentBMPObservation.TreatmentBMPAssessment.TreatmentBMP); var useUpperValue = treatmentBMPObservation.TreatmentBMPAssessmentObservationType.UseUpperValueForThreshold(benchmarkValue, observationValue); var thresholdValueInBenchmarkUnits = treatmentBMPObservation.TreatmentBMPAssessmentObservationType.GetThresholdValueInBenchmarkUnits(benchmarkValue, thresholdValue, useUpperValue); if (observationValue == null || benchmarkValue == null || thresholdValueInBenchmarkUnits == null) { return(null); } return(TreatmentBMPAssessmentObservationTypeHelper.LinearInterpolation(observationValue.Value, benchmarkValue.Value, thresholdValueInBenchmarkUnits.Value)); }