public void SortNextBidsMethodOneBid() { var firstBid = new Bid("1D", null); var rootBid = new Bid(null, null); rootBid.NextBids.Add(firstBid); rootBid.SortNextBids(); Assert.AreEqual(rootBid.NextBids[0], firstBid); }
public void SortNextBidsMethodDifferentBidLevel() { var firstBid = new Bid("1NT", null); var secondBid = new Bid("2S", null); var thirdBid = new Bid("3NT", null); var rootBid = new Bid(null, null); rootBid.NextBids.Add(secondBid); rootBid.NextBids.Add(thirdBid); rootBid.NextBids.Add(firstBid); rootBid.SortNextBids(); Assert.AreEqual(rootBid.NextBids[0], firstBid); Assert.AreEqual(rootBid.NextBids[1], secondBid); Assert.AreEqual(rootBid.NextBids[2], thirdBid); }
public void SortNextBidsMethodSecondLevelDeepes() { var firstLevelBid = new Bid(null, null); var firstBid = new Bid("1D!", null); var secondBid = new Bid("1H!", null); var thirdBid = new Bid("1NT", null); var rootBid = new Bid(null, null); firstLevelBid.NextBids.Add(secondBid); firstLevelBid.NextBids.Add(thirdBid); firstLevelBid.NextBids.Add(firstBid); rootBid.NextBids.Add(firstLevelBid); rootBid.SortNextBids(); Assert.AreEqual(rootBid.NextBids[0].NextBids[0], firstBid); Assert.AreEqual(rootBid.NextBids[0].NextBids[1], secondBid); Assert.AreEqual(rootBid.NextBids[0].NextBids[2], thirdBid); }
public static Bid ConvertWithRoot(IList<BiddingSequence> sequences) { var bidRoot = new Bid("root", null, null); foreach (var seq in sequences) { if(seq.Sequence==null) continue; var sequenceWithoutWhitespaces = Regex.Replace(seq.Sequence, @"\s+", ""); var splitedSequences = sequenceWithoutWhitespaces.Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries); if (!splitedSequences.Any()) continue; var currentBid = bidRoot; var wholeSequence = new StringBuilder(); foreach (var seqBid in splitedSequences) { if(wholeSequence.Length>0) wholeSequence.Append(" "); wholeSequence.Append(seqBid + ";"); var nextBid = currentBid.NextBids.FirstOrDefault(cb => cb.BidSymbol == seqBid); if (nextBid == null) { nextBid = new Bid(seqBid, wholeSequence.ToString()); currentBid.NextBids.Add(nextBid); } currentBid = nextBid; } currentBid.OriginalObject.CopyValuesFrom(seq); } bidRoot.SortNextBids(); return bidRoot; }
public void SortNextBidsWithNt() { var firstLevelBid = new Bid(null, null); var firstBid = new Bid("1C!;1NT", null); var secondBid = new Bid("1C!; 2D!", null); var thirdBid = new Bid("1C!;2H!", null); var rootBid = new Bid(null, null); firstLevelBid.NextBids.Add(secondBid); firstLevelBid.NextBids.Add(thirdBid); firstLevelBid.NextBids.Add(firstBid); rootBid.NextBids.Add(firstLevelBid); rootBid.SortNextBids(); Assert.AreEqual(rootBid.NextBids[0].NextBids[0], firstBid); Assert.AreEqual(rootBid.NextBids[0].NextBids[1], secondBid); Assert.AreEqual(rootBid.NextBids[0].NextBids[2], thirdBid); }