コード例 #1
0
        public static List <CodeReviewPairing> GetCodeReviewPairs(IEnumerable <string> participantCollection)
        {
            var participants = participantCollection.ToList();
            List <CodeReviewPairing> pairs = new List <CodeReviewPairing>();

            if (participants == null || participants.Count < 2)
            {
                return(new List <CodeReviewPairing>());
            }


            while (participants.Count > 1)
            {
                var reviewerIndex = Randomiser.GetRandomInt(0, participants.Count);

                var reviewer = participants[reviewerIndex];

                participants.RemoveAt(reviewerIndex);

                var revieweeIndex = Randomiser.GetRandomInt(0, participants.Count);

                var reviewee = participants[revieweeIndex];

                participants.RemoveAt(revieweeIndex);

                pairs.Add(new CodeReviewPairing(reviewer, reviewee));
            }
            //Odd number so pick a reviewee to be a reviewer
            if (participants.Any())
            {
                var reviewerIndex = Randomiser.GetRandomInt(0, pairs.Count);
                pairs.Add(new CodeReviewPairing(pairs[reviewerIndex].Reviewee, participants[0]));
            }
            return(pairs);
        }
コード例 #2
0
 public void ShouldReturnARandomNumberBetween1and10()
 {
     for (int i = 0; i < 1000; i++)
     {
         var ans = Randomiser.GetRandomInt(1, 10);
         Assert.True(ans >= 1 && ans <= 10);
         Console.WriteLine(ans);
     }
 }