public void Test()
    {
      ScoreDistribution s = new ScoreDistribution();
      OptimalResultCondition or = new OptimalResultCondition(1, 1, 1, 1);

      s[or] = new List<OptimalResult>(){
        new OptimalResult(1.0, 1.0, 100,10,0.1),
        new OptimalResult(2.0, 1.0, 200,10,0.05),
        new OptimalResult(3.0, 1.0, 1000,10,0.01)
      };

      ScoreDistribution subset = new ScoreDistribution();
      subset[or] = new List<OptimalResult>(){
        new OptimalResult(2.0, 1.0, 100,0,0),
        new OptimalResult(3.0, 1.0, 900,0,0)
      };

      IFalseDiscoveryRateCalculator calc = new TargetFalseDiscoveryRateCalculator();

      double fdr = s.CalculateSubsetFdr(subset, calc);

      Assert.AreEqual(0.014, fdr);
    }
Beispiel #2
0
 public bool AreStatsValid()
 {
     return(ScoreDistribution?.Count(x => x.Amount > 0) >= 3 || AiringProgression?.Count >= 3 ||
            StatusDistribution?.Any(x => x.Amount >= 3) == true);
 }