I tested using the test code:
Code:
double expected[23];
int numberOfTrials = 1000000;
{
// 7-way matchup involving 2 specific hands, 2 ranged hands, and 3 random hands, on the flop
double expected[] = { 37.1, 5.5, 19.2, 5.9, 10.75, 10.75, 10.75 };
performMatchup("AhKh|Td9s|QQ+,AQs+,AQo+|JJ-88|XxXx|XxXx|XxXx", "Ks7d4d", "", 1000000, false, expected);
}
{
// AA vs. KK of any suits: Monte Carlo + Exhaustive
double expected[] = { 81.9, 18.1 };
performMatchup("AA|KK", NULL, NULL, numberOfTrials, true, expected);
}
{
// AA vs. KK of any suits with flop [Th Jc Qs]: Monte Carlo + Exhaustive
double expected[] = { 75.9, 24.1 };
performMatchup("AA|KK", "ThJcQs", NULL, numberOfTrials, true, expected);
}
{
// 10-way preflop all-in with AA through 55: Monte Carlo
double expected[] = { 24.3, 18.8, 14.1, 10.6, 8.1, 6.0, 4.7, 4.2, 4.5, 4.8};
performMatchup("AA|KK|QQ|JJ|TT|99|88|77|66|55", NULL, NULL, numberOfTrials, false, expected);
}
{
// 10-way preflop all-in with AA through 55 with flop of [2c3s4d]: Monte Carlo
double expected[] = { 13.5, 10.6, 9.6, 8.6, 7.6, 6.7, 5.7, 5.7, 12.6, 19.5};
performMatchup("AA|KK|QQ|JJ|TT|99|88|77|66|55", "2c3s4d", NULL, numberOfTrials, false, expected);
}
{
// Aces vs. Kings with shared suits
double expected[] = { 82.6, 17.4 };
performMatchup("AsAc|KsKc", NULL, NULL, numberOfTrials, true, expected);
}
{
// Specific hands and hand ranges in the same trial
double expected[] = { 30.8, 15.5, 38.1, 15.6 };
performMatchup("AhKh|2d2c|77|A2s+", NULL, NULL, numberOfTrials, false, expected);
}
{
// Aces versus 5 random/uknown hands
double expected[] = { 82.6, 17.4 };
performMatchup("AcAs,KcKs|QcQs", NULL, NULL, numberOfTrials, true, expected);
}
{
// Aces versus 5 random/uknown hands
double expected[] = { 49.2, 10.15, 10.15, 10.15, 10.15, 10.15 };
performMatchup("AA|XxXx|XxXx|XxXx|XxXx|XxXx", NULL, NULL, numberOfTrials, false, expected);
}
{
// Typical 3-way matchup - pocket pair vs. loose-ish vs. tight-ish
double expected[] = { 37.1, 19.5, 43.4 };
performMatchup("TsTc|A2+,22+|QQ+,AQ+", NULL, NULL, numberOfTrials, false, expected);
}
I corrected the first test but in the second it still fails. Did you check the project "Poker.Equity.Test" ? You should run it in debug mode.