public void AssignPValue()
        {
            var    callCount = 1;
            double pValue    = QualityCalculator.AssignPValue(callCount, 100, 20);

            Assert.Equal(0.6321, pValue, 4);

            //If observed call count is 0, return 1
            callCount = 0;
            pValue    = QualityCalculator.AssignPValue(callCount, 100, 20);
            Assert.Equal(1, pValue, 4);
        }
        public void CallSomaticVariants_AssignPValue()
        {
            List <int[]> SampleValues = new List <int[]>() //coverage,var calls}
            {
                new int[] { 100, 0 },
                new int[] { 100, 1 },
                new int[] { 100, 5 },
                new int[] { 200, 10 },
                new int[] { 500, 25 },
                new int[] { 5000, 250 },
            };

            List <double[]> ReturnedValues = new List <double[]>(); { }//p,Q

            foreach (int[] item in SampleValues)
            {
                double   pValue      = QualityCalculator.AssignPValue(item[1], item[0], 20);
                double   Qscore      = MathOperations.PtoQ(pValue);
                double   FinalQValue = QualityCalculator.AssignPoissonQScore(item[1], item[0], 20, 100);
                double[] Result      = new double[] { pValue, Qscore, FinalQValue };
                ReturnedValues.Add(Result);
            }

            Assert.Equal(ReturnedValues[0][0], 1, 4);
            Assert.Equal(ReturnedValues[0][2], 0, 4);

            Assert.Equal(ReturnedValues[1][0], 0.6321, 4);
            Assert.Equal(ReturnedValues[1][2], 2, 4);

            Assert.Equal(ReturnedValues[2][0], 0.003659, 4);
            Assert.Equal(ReturnedValues[2][2], 24, 4);

            Assert.Equal(ReturnedValues[3][0], 4.65 * Math.Pow(10, -5), 5);
            Assert.Equal(ReturnedValues[3][2], 43, 4);

            Assert.Equal(ReturnedValues[4][0], 1.599 * Math.Pow(10, -10), 10);
            Assert.Equal(ReturnedValues[4][2], 98, 4);

            Assert.Equal(ReturnedValues[5][0], 0.0, 10);
            Assert.Equal(ReturnedValues[5][2], 100, 4);
        }