public void TestImputeData()
        {
            ProteinRowInfo expectedSampleprotein = new ProteinRowInfo();

            expectedSampleprotein.ProteinID = "A0A087WTI9";
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_06_161103_A1_HCD_OT_4ul"] = 24.607;
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_07_161103_A2_HCD_OT_4ul"] = 23.763;
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_16_161103_A3_HCD_OT_4ul"] = 20.783;
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_17_161103_A4_HCD_OT_4ul"] = 20.165;
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_24_161103_C1_HCD_OT_4ul"] = 20.639;
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_09_161103_C2_HCD_OT_4ul"] = 17.223;
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_14_161103_C3_HCD_OT_4ul"] = 21.564;
            expectedSampleprotein.SamplesIntensityData["Intensity_B02_19_161103_C4_HCD_OT_4ul"] = 20.469;


            List <string> sampleFileNames = new List <string>();

            sampleFileNames.Add("Intensity_B02_06_161103_A1_HCD_OT_4ul");
            sampleFileNames.Add("Intensity_B02_07_161103_A2_HCD_OT_4ul");
            sampleFileNames.Add("Intensity_B02_16_161103_A3_HCD_OT_4ul");
            sampleFileNames.Add("Intensity_B02_17_161103_A4_HCD_OT_4ul");
            sampleFileNames.Add("Intensity_B02_24_161103_C1_HCD_OT_4ul");
            sampleFileNames.Add("Intensity_B02_09_161103_C2_HCD_OT_4ul");
            sampleFileNames.Add("Intensity_B02_14_161103_C3_HCD_OT_4ul");
            sampleFileNames.Add("Intensity_B02_19_161103_C4_HCD_OT_4ul");

            double[] sampleMissingCount = new double[8];
            sampleMissingCount[0] = 20;
            sampleMissingCount[1] = 7;
            sampleMissingCount[2] = 11;
            sampleMissingCount[3] = 0;
            sampleMissingCount[4] = 32;
            sampleMissingCount[5] = 2;
            sampleMissingCount[6] = 0;
            sampleMissingCount[7] = 5;

            int[] numberOfValidIntensityValuesInSample = new int[8];
            numberOfValidIntensityValuesInSample[0] = 120;
            numberOfValidIntensityValuesInSample[1] = 135;
            numberOfValidIntensityValuesInSample[2] = 100;
            numberOfValidIntensityValuesInSample[3] = 87;
            numberOfValidIntensityValuesInSample[4] = 189;
            numberOfValidIntensityValuesInSample[5] = 50;
            numberOfValidIntensityValuesInSample[6] = 79;
            numberOfValidIntensityValuesInSample[7] = 30;

            double[] samplesMeanIntensityValue = new double[8];
            samplesMeanIntensityValue[0] = 24.4;
            samplesMeanIntensityValue[1] = 23.5;
            samplesMeanIntensityValue[2] = 22;
            samplesMeanIntensityValue[3] = 19.7;
            samplesMeanIntensityValue[4] = 21.75;
            samplesMeanIntensityValue[5] = 18.2;
            samplesMeanIntensityValue[6] = 23.21;
            samplesMeanIntensityValue[7] = 21.09;

            double[] samplesStandardDeviation = new double[8];
            samplesStandardDeviation[0] = 0.2;
            samplesStandardDeviation[1] = 1.1;
            samplesStandardDeviation[2] = 0.02;
            samplesStandardDeviation[3] = 0.7;
            samplesStandardDeviation[4] = 1.7;
            samplesStandardDeviation[5] = 0.8;
            samplesStandardDeviation[6] = 2.4;
            samplesStandardDeviation[7] = 0.15;

            ProteinRowInfo outputSampleprotein = new ProteinRowInfo();

            outputSampleprotein.ProteinID = "A0A087WTI9";
            outputSampleprotein.SamplesIntensityData["Intensity_B02_06_161103_A1_HCD_OT_4ul"] = 0;
            outputSampleprotein.SamplesIntensityData["Intensity_B02_07_161103_A2_HCD_OT_4ul"] = 23.763;
            outputSampleprotein.SamplesIntensityData["Intensity_B02_16_161103_A3_HCD_OT_4ul"] = 20.783;
            outputSampleprotein.SamplesIntensityData["Intensity_B02_17_161103_A4_HCD_OT_4ul"] = 20.165;
            outputSampleprotein.SamplesIntensityData["Intensity_B02_24_161103_C1_HCD_OT_4ul"] = 0;
            outputSampleprotein.SamplesIntensityData["Intensity_B02_09_161103_C2_HCD_OT_4ul"] = 0;
            outputSampleprotein.SamplesIntensityData["Intensity_B02_14_161103_C3_HCD_OT_4ul"] = 21.564;
            outputSampleprotein.SamplesIntensityData["Intensity_B02_19_161103_C4_HCD_OT_4ul"] = 20.469;
            double meanFraction = 0.2;

            ImputationProcess imputationProcess = new ImputationProcess();

            imputationProcess.ImputeData(outputSampleprotein, samplesMeanIntensityValue, samplesStandardDeviation,
                                         sampleFileNames, sampleMissingCount, numberOfValidIntensityValuesInSample, meanFraction, true);

            Assert.That(expectedSampleprotein.SamplesIntensityData,
                        Is.EqualTo(outputSampleprotein.SamplesIntensityData).Within(0.001));
        }