public void QueryEmptyTree_CreateEmptyTree_ExpectNoException() { var standardItemComparer = new RangeItemComparer(); var rangeTree = new RangeTree <int, RangeItem>(standardItemComparer); // Act & Assert Assert.That(() => rangeTree.Query(2), Throws.Nothing); }
public NonStaticComparerTests() { rangeItemComparer = new RangeItemComparer(); items = new RangeItem[] { new RangeItem(0, 10, "1"), new RangeItem(20, 30, "2"), new RangeItem(15, 17, "3") }; tree = new RangeTree <int, RangeItem>(items, rangeItemComparer); }
public void SetUp() { _rangeItemComparer = new RangeItemComparer(); _items = new RangeItem[] { new RangeItem(0, 10, "1"), new RangeItem(20, 30, "2"), new RangeItem(15, 17, "3") }; _tree = new RangeTree<int, RangeItem>(_items, _rangeItemComparer); }
public void QueryEmptyTree_RemoveAllElementsFromTree_ExpectNoException() { // Arrang var standardItemComparer = new RangeItemComparer(); var rangeTree = new RangeTree <int, RangeItem>(standardItemComparer); var item = new RangeItem(1, 3); rangeTree.Add(item); rangeTree.Remove(item); // Act & Assert Assert.That(() => rangeTree.Query(2), Throws.Nothing); }
public void CreateTwoTrees_ProvideDifferentComparers_ExpectBothToHaveTheComparersFromConstruction() { var reverseItemComparer = new ReverseItemComparer(); var standardItemComparer = new RangeItemComparer(); var rangeTree1 = new RangeTree <int, RangeItem>(standardItemComparer); var rangeTree2 = new RangeTree <int, RangeItem>(reverseItemComparer); var comparerRangeTree1 = GetComparerViaReflection(rangeTree1); var comparerRangeTree2 = GetComparerViaReflection(rangeTree2); Assert.That(standardItemComparer, Is.EqualTo(comparerRangeTree1)); Assert.That(reverseItemComparer, Is.EqualTo(comparerRangeTree2)); }
public void BluffToValueTests() { var board = "QsAd6d"; var ranges = new[] { "77", "88", "99", "TT", "JJ", "QQ", "KK", "AA", "A2s", "A3s", "A4s", "A5s", "A6s", "A7s", "A8s", "A9s", "ATs", "AJs", "AQs", "AKs", "K7s", "K8s", "K9s", "KTs", "KJs", "KQs", "Q7s", "Q8s", "Q9s", "QTs", "QJs", "J8s", "J9s", "JTs", "T8s", "T9s", "97s", "98s", "86s", "87s", "76s", "A2o", "A3o", "A4o", "A5o", "A6o", "A7o", "A8o", "A9o", "ATo", "AJo", "AQo", "AKo", "K9o", "KTo", "KJo", "KQo", "QTo", "QJo", "JTo", "T8o", "T9o", "97o", "98o", "86o", "87o", "76o" }; var handHistory = new HandHistory(); handHistory.CommunityCards[1] = board; var rangeItems = (from range in ranges select new RangeItem { Caption = range, Cards = (from ungroupedHand in HandAnalyzer.UngroupHands(new List <string> { range }, handHistory, true) select new RangeItemCard { Caption = ungroupedHand }).ToArray() }).ToArray(); var boardCard1 = board.Substring(0, 2); var boardCard2 = board.Substring(2, 2); var boardCard3 = board.Substring(4, 2); var fBoardCard1 = HandHistory.fastCard(boardCard1[0], boardCard1[1]); var fBoardCard2 = HandHistory.fastCard(boardCard2[0], boardCard2[1]); var fBoardCard3 = HandHistory.fastCard(boardCard3[0], boardCard3[1]); var counter = 0; // all possible cases foreach (var rangeItem in rangeItems) { foreach (var holeCards in rangeItem.Cards) { var holeCard1 = holeCards.Caption.Substring(0, 2); var holeCard2 = holeCards.Caption.Substring(2, 2); var fHoleCard1 = HandHistory.fastCard(holeCard1[0], holeCard1[1]); var fHoleCard2 = HandHistory.fastCard(holeCard2[0], holeCard2[1]); var usedCards = new[] { fBoardCard1, fBoardCard2, fBoardCard3, fHoleCard1, fHoleCard2 }; for (var i = 0; i < 52; i++) { var boardCard4 = HandHistory.fastCard(Analyzer.Card.CardName[i], Analyzer.Card.CardSuit[i]); if (usedCards.Contains(boardCard4)) { continue; } for (var j = i + 1; j < 52; j++) { var boardCard5 = HandHistory.fastCard(Analyzer.Card.CardName[j], Analyzer.Card.CardSuit[j]); if (usedCards.Contains(boardCard5)) { continue; } var weight = FastEvaluator.eval_7hand(usedCards.Concat(new[] { boardCard4, boardCard5 }).ToArray()); holeCards.Weights.Add(weight); counter++; } } } } var comparer = new RangeItemComparer(); //var rangeItem1 = rangeItems.FirstOrDefault(x => x.Caption == "AA"); //var rangeItem2 = rangeItems.FirstOrDefault(x => x.Caption == "KK"); //Assert.That(comparer.Compare(rangeItem1, rangeItem2), Is.EqualTo(1)); //var arr = new ArrayList(rangeItems); //arr.Sort(comparer); Array.Sort(rangeItems, comparer); //rangeItems = rangeItems.OrderByDescending(x => x, comparer).ToArray(); Debug.WriteLine($"Combos: {rangeItems.Sum(x => x.Cards.Length)}"); Debug.WriteLine($"Simulations: {counter}"); Debug.WriteLine($"Ordered range: {string.Join(", ", rangeItems.Reverse().Select(x => x.Caption).ToArray())}"); }