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