public void CalculateWeight_WhenTwoRequiredColumnsValid_ReturnProperWeight()
        {
            var rectificationEntity = CreateRectificationEntity("Angle");

            rectificationEntity.PixelColumn         = MeasuredData.Angle;
            rectificationEntity.MillimeterColumnOMM = OMMData.Angle;
            var expected = Weights.Angle;

            var actual = rectificationEntity.CalculateWeight();

            Assert.True(FloatingCompare.FloatingNumberAreClose(actual, expected));
        }
        public void Calculate_UsingSingleCalculationEntity_CalculateProperWeight()
        {
            var unit = CreateWeightCalculationUnit();

            unit.AddWeightCalculationEntity(new RectificationEntity("Angle")
            {
                PixelColumn = MeasuredData.Angle, MillimeterColumnOMM = OMMData.Angle
            });
            var weightExpected = Weights.Angle;

            unit.Calculate();
            var weightActual = unit.Weight;

            Assert.True(FloatingCompare.FloatingNumberAreClose(weightActual, weightExpected));
        }
        public void EstimateBiasedMillimeterDistances_WhenTwoRequiredColumnsValid_CalcBiasProperly()
        {
            var rectificationEntity = CreateRectificationEntity("X1");

            rectificationEntity.PixelColumn         = MeasuredData.X1_Pixel;
            rectificationEntity.MillimeterColumnOMM = OMMData.X1;
            rectificationEntity.Weight = Weights.X;
            var expectedBias     = Biases.X1;
            var expectedEstimate = Estimates.X1;

            rectificationEntity.EstimateBiasedMillimeterDistances();
            var actualBias     = rectificationEntity.Bias;
            var actualEstimate = rectificationEntity.MillimeterColumnEstimate;

            Assert.True(FloatingCompare.FloatingNumberAreClose(actualBias, expectedBias));
            Assert.True(FloatingCompare.FloatingEnumerablesAreVeryClose(actualEstimate, expectedEstimate));
        }
        public void Calculate_UsingMultipleCalculationEntities_CalculateProperWeight()
        {
            var unit = CreateWeightCalculationUnit();

            unit.AddWeightCalculationEntity(new RectificationEntity("X1")
            {
                PixelColumn = MeasuredData.X1_Pixel, MillimeterColumnOMM = OMMData.X1
            });
            unit.AddWeightCalculationEntity(new RectificationEntity("X2")
            {
                PixelColumn = MeasuredData.X2_Pixel, MillimeterColumnOMM = OMMData.X2
            });
            var weightExpected = Weights.X;

            unit.Calculate();
            var weightActual = unit.Weight;

            Assert.True(FloatingCompare.FloatingNumberAreClose(weightActual, weightExpected));
        }