public void TestCalculateMissingIntensityValuesInSample()
        {
            double[] expectedSampleMissingCount = new double[8];
            expectedSampleMissingCount[0] = 1;
            expectedSampleMissingCount[1] = 0;
            expectedSampleMissingCount[2] = 0;
            expectedSampleMissingCount[3] = 0;
            expectedSampleMissingCount[4] = 1;
            expectedSampleMissingCount[5] = 0;
            expectedSampleMissingCount[6] = 0;
            expectedSampleMissingCount[7] = 1;

            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");

            ProteinRowInfo sampleprotein1 = new ProteinRowInfo();

            sampleprotein1.ProteinID = "A0A023KES1";
            sampleprotein1.SamplesIntensityData["Intensity_B02_06_161103_A1_HCD_OT_4ul"] = 0;
            sampleprotein1.SamplesIntensityData["Intensity_B02_07_161103_A2_HCD_OT_4ul"] = 22.729;
            sampleprotein1.SamplesIntensityData["Intensity_B02_16_161103_A3_HCD_OT_4ul"] = 22.347;
            sampleprotein1.SamplesIntensityData["Intensity_B02_17_161103_A4_HCD_OT_4ul"] = 22.397;
            sampleprotein1.SamplesIntensityData["Intensity_B02_24_161103_C1_HCD_OT_4ul"] = 0;
            sampleprotein1.SamplesIntensityData["Intensity_B02_09_161103_C2_HCD_OT_4ul"] = 23.180;
            sampleprotein1.SamplesIntensityData["Intensity_B02_14_161103_C3_HCD_OT_4ul"] = 23.293;
            sampleprotein1.SamplesIntensityData["Intensity_B02_19_161103_C4_HCD_OT_4ul"] = 0;


            ProteinRowInfo sampleprotein2 = new ProteinRowInfo();

            sampleprotein2.ProteinID = "A0A024R4E5";
            sampleprotein2.SamplesIntensityData["Intensity_B02_06_161103_A1_HCD_OT_4ul"] = 0;
            sampleprotein2.SamplesIntensityData["Intensity_B02_07_161103_A2_HCD_OT_4ul"] = 25.535;
            sampleprotein2.SamplesIntensityData["Intensity_B02_16_161103_A3_HCD_OT_4ul"] = 0;
            sampleprotein2.SamplesIntensityData["Intensity_B02_17_161103_A4_HCD_OT_4ul"] = 0;
            sampleprotein2.SamplesIntensityData["Intensity_B02_24_161103_C1_HCD_OT_4ul"] = 25.370;
            sampleprotein2.SamplesIntensityData["Intensity_B02_09_161103_C2_HCD_OT_4ul"] = 24;
            sampleprotein2.SamplesIntensityData["Intensity_B02_14_161103_C3_HCD_OT_4ul"] = 25.359;
            sampleprotein2.SamplesIntensityData["Intensity_B02_19_161103_C4_HCD_OT_4ul"] = 0;


            double[]          outputSampleMissingCount = new double[8];
            ImputationProcess imputationProcess        = new ImputationProcess();

            imputationProcess.CalculateMissingIntensityValuesInSample(sampleprotein1,
                                                                      outputSampleMissingCount, sampleFileNames);

            CollectionAssert.AreEqual(expectedSampleMissingCount, outputSampleMissingCount);

            expectedSampleMissingCount[0] = 2;
            expectedSampleMissingCount[1] = 0;
            expectedSampleMissingCount[2] = 1;
            expectedSampleMissingCount[3] = 1;
            expectedSampleMissingCount[4] = 1;
            expectedSampleMissingCount[5] = 0;
            expectedSampleMissingCount[6] = 0;
            expectedSampleMissingCount[7] = 2;

            imputationProcess.CalculateMissingIntensityValuesInSample(sampleprotein2,
                                                                      outputSampleMissingCount, sampleFileNames);

            CollectionAssert.AreEqual(expectedSampleMissingCount, outputSampleMissingCount);
        }