public void WinMarginProbabilityTest() { var res = ProbabilityCalculator.WinMarginProbability(); Assert.AreEqual(res.Home, 0.33); Assert.AreEqual(res.Away, 1.0); }
public void Calculate_MultipleTrees_DiffProbabilites_ShouldBeDistributedInCorrectRatio_1() { var trees = new List <Tree>() { new Tree() { Name = "tree1", Probability = 50 }, new Tree() { Name = "tree2", Probability = 50 }, new Tree() { Name = "tree3", Probability = 100 }, }; var expected = new List <TreeProbability>() { new TreeProbability("tree1", 0.25f, 25), new TreeProbability("tree2", 0.25f, 25), new TreeProbability("tree3", 0.50f, 50), }; var sut = new ProbabilityCalculator(); var result = sut.Calculate(trees); result.Should().BeEquivalentTo(expected); }
public void Calculate_MultipleTrees_DiffProbabilites_ShouldBeDistributedInCorrectRatio_2() { var trees = new List <Tree>() { new Tree() { Name = "tree1", Probability = 100 }, new Tree() { Name = "tree2", Probability = 10 }, }; var sum = trees.Sum(x => x.Probability); var expected = new List <TreeProbability>() { new TreeProbability("tree1", 100 / sum, 91), new TreeProbability("tree2", 10 / sum, 9), }; var sut = new ProbabilityCalculator(); var result = sut.Calculate(trees); result.Should().BeEquivalentTo(expected); }
public void Calculate_NoTree_SouldReturnEmptyList() { var trees = new List <Tree>(); var expected = new List <TreeProbability>(); var sut = new ProbabilityCalculator(); var result = sut.Calculate(trees); result.Should().BeEquivalentTo(expected); }
public void initTest() { var inp = new List <GameResult>() { new GameResult(true, false, 100, 75), new GameResult(true, false, 125, 75), new GameResult(true, false, 75, 70), new GameResult(false, true, 70, 75) }; ProbabilityCalculator.results = inp; ProbabilityCalculator.init(); }
public void Calculate_101Trees_ShouldThrowException() { var trees = Enumerable.Range(0, 101) .Select(x => new Tree() { Name = "tree", Probability = 1 }) .ToList(); var sut = new ProbabilityCalculator(); Action calculateAction = () => sut.Calculate(trees); calculateAction.Should() .Throw <Exception>() .WithMessage("Tree count must be lower or equal to 100."); }
public void Calculate_OneTree_SouldBe100Percent() { var trees = new List <Tree>() { new Tree() { Name = "tree1", Probability = 50 }, }; var expected = new List <TreeProbability>() { new TreeProbability("tree1", 1f, 100), }; var sut = new ProbabilityCalculator(); var result = sut.Calculate(trees); result.Should().BeEquivalentTo(expected); }
public void WinMarginProbabilityWithUpto10PointsTest() { var inp = new List <GameResult>() { new GameResult(true, false, 100, 90), new GameResult(true, false, 125, 120), new GameResult(true, false, 75, 25), new GameResult(false, true, 25, 30), new GameResult(false, true, 25, 35) }; ProbabilityCalculator.results = inp; ProbabilityCalculator.init(); var res = ProbabilityCalculator.WinMarginProbability(); Assert.AreEqual(res.Home, 0.67); Assert.AreEqual(res.Away, 1.0); }
public void Calculate_MultipleTrees_SameProbability_ShouldBeDistributedEvenly() { var trees = new List <Tree>() { new Tree() { Name = "tree1", Probability = 30 }, new Tree() { Name = "tree2", Probability = 30 }, new Tree() { Name = "tree3", Probability = 30 }, new Tree() { Name = "tree4", Probability = 30 }, new Tree() { Name = "tree5", Probability = 30 }, }; var expected = new List <TreeProbability>() { new TreeProbability("tree1", 0.2f, 20), new TreeProbability("tree2", 0.2f, 20), new TreeProbability("tree3", 0.2f, 20), new TreeProbability("tree4", 0.2f, 20), new TreeProbability("tree5", 0.2f, 20), }; var sut = new ProbabilityCalculator(); var result = sut.Calculate(trees); result.Should().BeEquivalentTo(expected); }
public void OnGet() { //todo should this happen every time? ProbabilityCalculator.Initialize(); if (string.IsNullOrEmpty(Card0)) { Card0 = ""; } if (string.IsNullOrEmpty(Card1)) { Card1 = ""; } if (string.IsNullOrEmpty(Flop0)) { Flop0 = ""; } if (string.IsNullOrEmpty(Flop1)) { Flop1 = ""; } if (string.IsNullOrEmpty(Flop2)) { Flop2 = ""; } if (string.IsNullOrEmpty(Turn)) { Turn = ""; } if (string.IsNullOrEmpty(River)) { River = ""; } }
public double ProbabilityOfSppf(SppfNode sppf) { return(ProbabilityCalculator.GetProbFromSppf(Grammar, sppf)); }
public void Calculate_100Trees_DiffProbabilites_ShouldBeSameRatioToAllowMaxNumberOfTrees() { var trees = new List <Tree>() { new Tree() { Name = "tree1", Probability = 1 }, new Tree() { Name = "tree2", Probability = 1 }, new Tree() { Name = "tree3", Probability = 1 }, new Tree() { Name = "tree4", Probability = 1 }, new Tree() { Name = "tree5", Probability = 1 }, new Tree() { Name = "tree6", Probability = 1 }, new Tree() { Name = "tree7", Probability = 1 }, new Tree() { Name = "tree8", Probability = 1 }, new Tree() { Name = "tree9", Probability = 1 }, new Tree() { Name = "tree10", Probability = 1 }, new Tree() { Name = "tree11", Probability = 1 }, new Tree() { Name = "tree12", Probability = 1 }, new Tree() { Name = "tree13", Probability = 1 }, new Tree() { Name = "tree14", Probability = 1 }, new Tree() { Name = "tree15", Probability = 1 }, new Tree() { Name = "tree16", Probability = 1 }, new Tree() { Name = "tree17", Probability = 1 }, new Tree() { Name = "tree18", Probability = 1 }, new Tree() { Name = "tree19", Probability = 1 }, new Tree() { Name = "tree20", Probability = 1 }, new Tree() { Name = "tree21", Probability = 1 }, new Tree() { Name = "tree22", Probability = 1 }, new Tree() { Name = "tree23", Probability = 1 }, new Tree() { Name = "tree24", Probability = 1 }, new Tree() { Name = "tree25", Probability = 1 }, new Tree() { Name = "tree26", Probability = 1 }, new Tree() { Name = "tree27", Probability = 1 }, new Tree() { Name = "tree28", Probability = 1 }, new Tree() { Name = "tree29", Probability = 1 }, new Tree() { Name = "tree30", Probability = 1 }, new Tree() { Name = "tree31", Probability = 1 }, new Tree() { Name = "tree32", Probability = 1 }, new Tree() { Name = "tree33", Probability = 1 }, new Tree() { Name = "tree34", Probability = 1 }, new Tree() { Name = "tree35", Probability = 1 }, new Tree() { Name = "tree36", Probability = 1 }, new Tree() { Name = "tree37", Probability = 1 }, new Tree() { Name = "tree38", Probability = 1 }, new Tree() { Name = "tree39", Probability = 1 }, new Tree() { Name = "tree40", Probability = 1 }, new Tree() { Name = "tree41", Probability = 1 }, new Tree() { Name = "tree42", Probability = 1 }, new Tree() { Name = "tree43", Probability = 1 }, new Tree() { Name = "tree44", Probability = 1 }, new Tree() { Name = "tree45", Probability = 1 }, new Tree() { Name = "tree46", Probability = 1 }, new Tree() { Name = "tree47", Probability = 1 }, new Tree() { Name = "tree48", Probability = 1 }, new Tree() { Name = "tree49", Probability = 1 }, new Tree() { Name = "tree50", Probability = 1 }, new Tree() { Name = "tree51", Probability = 1 }, new Tree() { Name = "tree52", Probability = 1 }, new Tree() { Name = "tree53", Probability = 1 }, new Tree() { Name = "tree54", Probability = 1 }, new Tree() { Name = "tree55", Probability = 1 }, new Tree() { Name = "tree56", Probability = 1 }, new Tree() { Name = "tree57", Probability = 1 }, new Tree() { Name = "tree58", Probability = 1 }, new Tree() { Name = "tree59", Probability = 1 }, new Tree() { Name = "tree60", Probability = 1 }, new Tree() { Name = "tree61", Probability = 1 }, new Tree() { Name = "tree62", Probability = 1 }, new Tree() { Name = "tree63", Probability = 1 }, new Tree() { Name = "tree64", Probability = 1 }, new Tree() { Name = "tree65", Probability = 1 }, new Tree() { Name = "tree66", Probability = 1 }, new Tree() { Name = "tree67", Probability = 1 }, new Tree() { Name = "tree68", Probability = 1 }, new Tree() { Name = "tree69", Probability = 1 }, new Tree() { Name = "tree70", Probability = 1 }, new Tree() { Name = "tree71", Probability = 1 }, new Tree() { Name = "tree72", Probability = 1 }, new Tree() { Name = "tree73", Probability = 1 }, new Tree() { Name = "tree74", Probability = 1 }, new Tree() { Name = "tree75", Probability = 1 }, new Tree() { Name = "tree76", Probability = 1 }, new Tree() { Name = "tree77", Probability = 1 }, new Tree() { Name = "tree78", Probability = 1 }, new Tree() { Name = "tree79", Probability = 1 }, new Tree() { Name = "tree80", Probability = 1 }, new Tree() { Name = "tree81", Probability = 1 }, new Tree() { Name = "tree82", Probability = 1 }, new Tree() { Name = "tree83", Probability = 1 }, new Tree() { Name = "tree84", Probability = 1 }, new Tree() { Name = "tree85", Probability = 1 }, new Tree() { Name = "tree86", Probability = 1 }, new Tree() { Name = "tree87", Probability = 1 }, new Tree() { Name = "tree88", Probability = 1 }, new Tree() { Name = "tree89", Probability = 1 }, new Tree() { Name = "tree90", Probability = 1 }, new Tree() { Name = "tree91", Probability = 1 }, new Tree() { Name = "tree92", Probability = 1 }, new Tree() { Name = "tree93", Probability = 1 }, new Tree() { Name = "tree94", Probability = 50 }, new Tree() { Name = "tree95", Probability = 50 }, new Tree() { Name = "tree96", Probability = 100 }, new Tree() { Name = "tree97", Probability = 100 }, new Tree() { Name = "tree98", Probability = 100 }, new Tree() { Name = "tree99", Probability = 100 }, new Tree() { Name = "tree100", Probability = 100 }, }; var sum = trees.Sum(x => x.Probability); var expected = new List <TreeProbability>() { new TreeProbability("tree1", 1 / sum, 1), new TreeProbability("tree2", 1 / sum, 1), new TreeProbability("tree3", 1 / sum, 1), new TreeProbability("tree4", 1 / sum, 1), new TreeProbability("tree5", 1 / sum, 1), new TreeProbability("tree6", 1 / sum, 1), new TreeProbability("tree7", 1 / sum, 1), new TreeProbability("tree8", 1 / sum, 1), new TreeProbability("tree9", 1 / sum, 1), new TreeProbability("tree10", 1 / sum, 1), new TreeProbability("tree11", 1 / sum, 1), new TreeProbability("tree12", 1 / sum, 1), new TreeProbability("tree13", 1 / sum, 1), new TreeProbability("tree14", 1 / sum, 1), new TreeProbability("tree15", 1 / sum, 1), new TreeProbability("tree16", 1 / sum, 1), new TreeProbability("tree17", 1 / sum, 1), new TreeProbability("tree18", 1 / sum, 1), new TreeProbability("tree19", 1 / sum, 1), new TreeProbability("tree20", 1 / sum, 1), new TreeProbability("tree21", 1 / sum, 1), new TreeProbability("tree22", 1 / sum, 1), new TreeProbability("tree23", 1 / sum, 1), new TreeProbability("tree24", 1 / sum, 1), new TreeProbability("tree25", 1 / sum, 1), new TreeProbability("tree26", 1 / sum, 1), new TreeProbability("tree27", 1 / sum, 1), new TreeProbability("tree28", 1 / sum, 1), new TreeProbability("tree29", 1 / sum, 1), new TreeProbability("tree30", 1 / sum, 1), new TreeProbability("tree31", 1 / sum, 1), new TreeProbability("tree32", 1 / sum, 1), new TreeProbability("tree33", 1 / sum, 1), new TreeProbability("tree34", 1 / sum, 1), new TreeProbability("tree35", 1 / sum, 1), new TreeProbability("tree36", 1 / sum, 1), new TreeProbability("tree37", 1 / sum, 1), new TreeProbability("tree38", 1 / sum, 1), new TreeProbability("tree39", 1 / sum, 1), new TreeProbability("tree40", 1 / sum, 1), new TreeProbability("tree41", 1 / sum, 1), new TreeProbability("tree42", 1 / sum, 1), new TreeProbability("tree43", 1 / sum, 1), new TreeProbability("tree44", 1 / sum, 1), new TreeProbability("tree45", 1 / sum, 1), new TreeProbability("tree46", 1 / sum, 1), new TreeProbability("tree47", 1 / sum, 1), new TreeProbability("tree48", 1 / sum, 1), new TreeProbability("tree49", 1 / sum, 1), new TreeProbability("tree50", 1 / sum, 1), new TreeProbability("tree51", 1 / sum, 1), new TreeProbability("tree52", 1 / sum, 1), new TreeProbability("tree53", 1 / sum, 1), new TreeProbability("tree54", 1 / sum, 1), new TreeProbability("tree55", 1 / sum, 1), new TreeProbability("tree56", 1 / sum, 1), new TreeProbability("tree57", 1 / sum, 1), new TreeProbability("tree58", 1 / sum, 1), new TreeProbability("tree59", 1 / sum, 1), new TreeProbability("tree60", 1 / sum, 1), new TreeProbability("tree61", 1 / sum, 1), new TreeProbability("tree62", 1 / sum, 1), new TreeProbability("tree63", 1 / sum, 1), new TreeProbability("tree64", 1 / sum, 1), new TreeProbability("tree65", 1 / sum, 1), new TreeProbability("tree66", 1 / sum, 1), new TreeProbability("tree67", 1 / sum, 1), new TreeProbability("tree68", 1 / sum, 1), new TreeProbability("tree69", 1 / sum, 1), new TreeProbability("tree70", 1 / sum, 1), new TreeProbability("tree71", 1 / sum, 1), new TreeProbability("tree72", 1 / sum, 1), new TreeProbability("tree73", 1 / sum, 1), new TreeProbability("tree74", 1 / sum, 1), new TreeProbability("tree75", 1 / sum, 1), new TreeProbability("tree76", 1 / sum, 1), new TreeProbability("tree77", 1 / sum, 1), new TreeProbability("tree78", 1 / sum, 1), new TreeProbability("tree79", 1 / sum, 1), new TreeProbability("tree80", 1 / sum, 1), new TreeProbability("tree81", 1 / sum, 1), new TreeProbability("tree82", 1 / sum, 1), new TreeProbability("tree83", 1 / sum, 1), new TreeProbability("tree84", 1 / sum, 1), new TreeProbability("tree85", 1 / sum, 1), new TreeProbability("tree86", 1 / sum, 1), new TreeProbability("tree87", 1 / sum, 1), new TreeProbability("tree88", 1 / sum, 1), new TreeProbability("tree89", 1 / sum, 1), new TreeProbability("tree90", 1 / sum, 1), new TreeProbability("tree91", 1 / sum, 1), new TreeProbability("tree92", 1 / sum, 1), new TreeProbability("tree93", 1 / sum, 1), new TreeProbability("tree94", 50 / sum, 1), new TreeProbability("tree95", 50 / sum, 1), new TreeProbability("tree96", 100 / sum, 1), new TreeProbability("tree97", 100 / sum, 1), new TreeProbability("tree98", 100 / sum, 1), new TreeProbability("tree99", 100 / sum, 1), new TreeProbability("tree100", 100 / sum, 1), }; var sut = new ProbabilityCalculator(); var result = sut.Calculate(trees); result.Should().BeEquivalentTo(expected); }
public void HalfPointsProbabilityTest() { var res = ProbabilityCalculator.HalfPointsProbability(); Assert.AreEqual(res, 0.50); }
public void WinProbabilityTest() { var res = ProbabilityCalculator.WinProbability(); Assert.AreEqual(res, 0.75); }