public void TestAddAndRemoveNewDive()
        {
            // Tests the adding of a new dive, when it is the first dive of the diver
            Dive dive = new Dive(new DiveCode(3.1));

            branch.AddNewDive(contestantList.ElementAt(0), dive);
            Dive diveToCheck = null;

            diveToCheck = branch.BranchContestants.ElementAt(0).DiveLists.ElementAt(0).ElementAt(0);

            Assert.AreEqual(dive, diveToCheck);

            // Tests the adding of a second jump of a diver on same branch

            Dive dive2 = new Dive(new DiveCode(2));

            branch.AddNewDive(contestantList.ElementAt(0), dive2);

            diveToCheck = branch.BranchContestants.ElementAt(0).DiveLists.ElementAt(0).ElementAt(1);

            Assert.AreEqual(dive2, diveToCheck);


            // Tests adding a new dive on a new branch

            SubContestBranch branch2 = new SubContestBranch("testbranch2", contest, contestantList);

            Dive dive3 = new Dive(new DiveCode(3.0));

            branch2.AddNewDive(contestantList.ElementAt(0), dive3);

            diveToCheck = branch2.BranchContestants.ElementAt(0).DiveLists.ElementAt(1).ElementAt(0);

            Assert.AreEqual(dive3, diveToCheck);


            // Tests removing of a dive that was added by mistake?

            Assert.IsTrue(branch.RemoveExistingDive(contestantList.ElementAt(0), dive2));

            // Checks if the element we removed is still there
            // If ArgumentOutOfRangeException is triggered the test is valid
            try
            {
                contestantList.ElementAt(0).DiveLists.ElementAt(0).ElementAt(1);
                Assert.Fail();
            }
            catch (ArgumentOutOfRangeException)
            {
            }


            // Tests removing of a dive that doesnt exist

            Assert.IsFalse(branch.RemoveExistingDive(contestantList.ElementAt(1), dive2));
        }
        public void TestFullContest()
        {
            DateTime endDate = new DateTime(2018, 2, 22);

            ContestInfo contestInfo = new ContestInfo("Svedala simhopps tävling", "Örebro", DateTime.Now, endDate, "Gustavsvik");

            Judge judge1 = new Judge("Karl", "Mal");
            Judge judge2 = new Judge("LAban", "Asda");
            Judge judge3 = new Judge("Leg", "Shin");
            Judge judge4 = new Judge("Handy", "Bandy");
            Judge judge5 = new Judge("Sammy", "Rol");

            JudgeList judgeList = new JudgeList();

            judgeList.Add(judge1);
            judgeList.Add(judge2);
            judgeList.Add(judge3);
            judgeList.Add(judge4);
            judgeList.Add(judge5);

            Contestant kalle = new Contestant("kalle", "Cool");
            Contestant pelle = new Contestant("pelle", "Holm");
            Contestant lars  = new Contestant("Lars", "Lerin");
            Contestant anna  = new Contestant("Anna", "Annasson");

            ContestantList contestantList = new ContestantList();

            contestantList.Add(kalle);
            contestantList.Add(pelle);
            contestantList.Add(lars);
            contestantList.Add(anna);

            // create the new Contest object
            Contest contest = new Contest(contestInfo, judgeList, contestantList);


            // create ContestantLists for a subcontest
            ContestantList branch1_Contestants = new ContestantList();

            branch1_Contestants.Add(kalle);
            branch1_Contestants.Add(pelle);
            branch1_Contestants.Add(lars);

            SubContestBranch branch1 = new SubContestBranch("Deltävling 1", contest, branch1_Contestants);


            // create second subcontest
            ContestantList branch2_Contestants = new ContestantList();

            branch2_Contestants.Add(kalle);
            branch2_Contestants.Add(pelle);
            branch2_Contestants.Add(anna);

            SubContestBranch branch2 = new SubContestBranch("Deltävling 2", contest, branch2_Contestants);

            // add the newly created subcontests to the contest
            contest.SubContestBranches.Add(branch1);
            contest.SubContestBranches.Add(branch2);


            // first dive of the subcontest
            Dive dive1Kalle = new Dive(new DiveCode(3.1));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Kalle = new ScoreList();

            scoreListDive1Kalle.Add(new Score(8, judge1));
            scoreListDive1Kalle.Add(new Score(5, judge2));
            scoreListDive1Kalle.Add(new Score(8.5, judge3));
            scoreListDive1Kalle.Add(new Score(7, judge4));
            scoreListDive1Kalle.Add(new Score(9, judge5));

            dive1Kalle.Scores = scoreListDive1Kalle;

            branch1.AddNewDive(kalle, dive1Kalle);


            // second dive
            Dive dive1Pelle = new Dive(new DiveCode(3.1));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Pelle = new ScoreList();

            scoreListDive1Pelle.Add(new Score(8, judge1));
            scoreListDive1Pelle.Add(new Score(5, judge2));
            scoreListDive1Pelle.Add(new Score(8.5, judge3));
            scoreListDive1Pelle.Add(new Score(7, judge4));
            scoreListDive1Pelle.Add(new Score(6.5, judge5));

            dive1Pelle.Scores = scoreListDive1Pelle;

            branch1.AddNewDive(pelle, dive1Pelle);


            // third dive
            Dive dive1Lars = new Dive(new DiveCode(3.1));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Lars = new ScoreList();

            scoreListDive1Lars.Add(new Score(7.5, judge1));
            scoreListDive1Lars.Add(new Score(9, judge2));
            scoreListDive1Lars.Add(new Score(8.5, judge3));
            scoreListDive1Lars.Add(new Score(7, judge4));
            scoreListDive1Lars.Add(new Score(6.5, judge5));

            dive1Lars.Scores = scoreListDive1Lars;

            branch1.AddNewDive(lars, dive1Lars);


            // first dive of second subcontest
            Dive dive2Kalle = new Dive(new DiveCode(2.8));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive2Kalle = new ScoreList();

            scoreListDive2Kalle.Add(new Score(8, judge1));
            scoreListDive2Kalle.Add(new Score(5, judge2));
            scoreListDive2Kalle.Add(new Score(8.5, judge3));
            scoreListDive2Kalle.Add(new Score(7, judge4));
            scoreListDive2Kalle.Add(new Score(9, judge5));

            dive2Kalle.Scores = scoreListDive1Kalle;

            branch2.AddNewDive(kalle, dive2Kalle);


            // second dive
            Dive dive2Pelle = new Dive(new DiveCode(2.9));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive2Pelle = new ScoreList();

            scoreListDive2Pelle.Add(new Score(8, judge1));
            scoreListDive2Pelle.Add(new Score(5, judge2));
            scoreListDive2Pelle.Add(new Score(8, judge3));
            scoreListDive2Pelle.Add(new Score(7, judge4));
            scoreListDive2Pelle.Add(new Score(6.5, judge5));

            dive2Pelle.Scores = scoreListDive1Pelle;

            branch2.AddNewDive(pelle, dive2Pelle);


            // third dive
            Dive dive1Anna = new Dive(new DiveCode(3.0));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Anna = new ScoreList();

            scoreListDive1Anna.Add(new Score(7.5, judge1));
            scoreListDive1Anna.Add(new Score(9, judge2));
            scoreListDive1Anna.Add(new Score(8.5, judge3));
            scoreListDive1Anna.Add(new Score(7, judge4));
            scoreListDive1Anna.Add(new Score(6.5, judge5));

            dive1Anna.Scores = scoreListDive1Anna;

            branch2.AddNewDive(anna, dive1Anna);

            Console.WriteLine("HEJ");

            foreach (var subContest in contest.SubContestBranches)
            {
                int i = 1;
                foreach (var result in subContest.GenerateSubContestResult())
                {
                    Console.WriteLine(i + ". " + result.Key.FirstName + " Score: " + result.Value);
                    i++;
                }
            }
        }
Exemple #3
0
        public Contest createTestContest()
        {
            DateTime endDate = new DateTime(2018, 2, 22);

            ContestInfo contestInfo = new ContestInfo("Svedala simhoppstävling", "Örebro", DateTime.Now, endDate, "Gustavsvik");

            Judge judge1 = new Judge(1, "Karl", "Mal", 22, "*****@*****.**", "male", "891017-6653", "Pappersvägen 3");
            Judge judge2 = new Judge(2, "Laban", "Asda", 45, "*****@*****.**", "male", "651011-6423", "Venavägen 8");
            Judge judge3 = new Judge(3, "Leg", "Shin", 33, "*****@*****.**", "male", "821201-5434", "Storgatan 1");
            Judge judge4 = new Judge(4, "Anna", "Pann", 29, "*****@*****.**", "female", "910413-4594", "Järnvägsgatan 33");
            Judge judge5 = new Judge(5, "Sammy", "Rol", 38, "*****@*****.**", "female", "880623-5921", "Skolgatan 28");

            JudgeList judgeList = new JudgeList();

            judgeList.Add(judge1);
            judgeList.Add(judge2);
            judgeList.Add(judge3);
            judgeList.Add(judge4);
            judgeList.Add(judge5);

            Contestant kalle = new Contestant(6, "Kalle", "Cool", 35, "*****@*****.**", "male", "78345345-435", "Storgatan 3");
            Contestant pelle = new Contestant(7, "Pelle", "Holm", 14, "*****@*****.**", "male", "04546387-1104", "Småttmisnöjdmedtillvaro gatan 25");
            Contestant lars  = new Contestant(8, "Lars", "Lerin", 50, "*****@*****.**", "male", "68345435-4352", "Brittmarie-gatan 89");
            Contestant anna  = new Contestant(9, "Anna", "Annasson", 28, "*****@*****.**", "female", "88376534534-3455", "Lokalgatan 8");

            ContestantList contestantList = new ContestantList();

            contestantList.Add(kalle);
            contestantList.Add(pelle);
            contestantList.Add(lars);
            contestantList.Add(anna);

            // create the new Contest object
            Contest contest = new Contest(contestInfo, judgeList, contestantList);


            // create ContestantLists for a subcontest
            ContestantList branch1_Contestants = new ContestantList();

            branch1_Contestants.Add(kalle);
            branch1_Contestants.Add(pelle);
            branch1_Contestants.Add(lars);

            SubContestBranch branch1 = new SubContestBranch("Deltävling 1", contest, branch1_Contestants);


            // create second subcontest
            ContestantList branch2_Contestants = new ContestantList();

            branch2_Contestants.Add(kalle);
            branch2_Contestants.Add(pelle);
            branch2_Contestants.Add(anna);

            SubContestBranch branch2 = new SubContestBranch("Deltävling 2", contest, branch2_Contestants);

            // add the newly created subcontests to the contest
            contest.SubContestBranches.Add(branch1);
            contest.SubContestBranches.Add(branch2);


            // first dive of the subcontest
            Dive dive1Kalle = new Dive(new DiveCode(3.1));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Kalle = new ScoreList();

            scoreListDive1Kalle.Add(new Score(8, judge1));
            scoreListDive1Kalle.Add(new Score(5, judge2));
            scoreListDive1Kalle.Add(new Score(8.5, judge3));
            scoreListDive1Kalle.Add(new Score(7, judge4));
            scoreListDive1Kalle.Add(new Score(9, judge5));

            dive1Kalle.Scores = scoreListDive1Kalle;

            branch1.AddNewDive(kalle, dive1Kalle);


            // second dive
            Dive dive1Pelle = new Dive(new DiveCode(3.1));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Pelle = new ScoreList();

            scoreListDive1Pelle.Add(new Score(8, judge1));
            scoreListDive1Pelle.Add(new Score(5, judge2));
            scoreListDive1Pelle.Add(new Score(8.5, judge3));
            scoreListDive1Pelle.Add(new Score(7, judge4));
            scoreListDive1Pelle.Add(new Score(6.5, judge5));

            dive1Pelle.Scores = scoreListDive1Pelle;

            branch1.AddNewDive(pelle, dive1Pelle);


            // third dive
            Dive dive1Lars = new Dive(new DiveCode(3.1));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Lars = new ScoreList();

            scoreListDive1Lars.Add(new Score(7.5, judge1));
            scoreListDive1Lars.Add(new Score(9, judge2));
            scoreListDive1Lars.Add(new Score(8.5, judge3));
            scoreListDive1Lars.Add(new Score(7, judge4));
            scoreListDive1Lars.Add(new Score(6.5, judge5));

            dive1Lars.Scores = scoreListDive1Lars;

            branch1.AddNewDive(lars, dive1Lars);


            // first dive of second subcontest
            Dive dive2Kalle = new Dive(new DiveCode(2.8));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive2Kalle = new ScoreList();

            scoreListDive2Kalle.Add(new Score(8, judge1));
            scoreListDive2Kalle.Add(new Score(5, judge2));
            scoreListDive2Kalle.Add(new Score(8.5, judge3));
            scoreListDive2Kalle.Add(new Score(7, judge4));
            scoreListDive2Kalle.Add(new Score(9, judge5));

            dive2Kalle.Scores = scoreListDive1Kalle;

            branch2.AddNewDive(kalle, dive2Kalle);


            // second dive
            Dive dive2Pelle = new Dive(new DiveCode(2.9));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive2Pelle = new ScoreList();

            scoreListDive2Pelle.Add(new Score(8, judge1));
            scoreListDive2Pelle.Add(new Score(5, judge2));
            scoreListDive2Pelle.Add(new Score(8, judge3));
            scoreListDive2Pelle.Add(new Score(7, judge4));
            scoreListDive2Pelle.Add(new Score(6.5, judge5));

            dive2Pelle.Scores = scoreListDive1Pelle;

            branch2.AddNewDive(pelle, dive2Pelle);


            // third dive
            Dive dive1Anna = new Dive(new DiveCode(3.0));

            // Scores come in from all the judges and is built into a full ScoreList
            ScoreList scoreListDive1Anna = new ScoreList();

            scoreListDive1Anna.Add(new Score(7.5, judge1));
            scoreListDive1Anna.Add(new Score(9, judge2));
            scoreListDive1Anna.Add(new Score(8.5, judge3));
            scoreListDive1Anna.Add(new Score(7, judge4));
            scoreListDive1Anna.Add(new Score(6.5, judge5));

            dive1Anna.Scores = scoreListDive1Anna;

            branch2.AddNewDive(anna, dive1Anna);

            return(contest);
        }
 public SubContestBranchTests()
 {
     contestantList.Add(kalle);
     contestantList.Add(pelle);
     branch = new SubContestBranch("testbranch", contest, contestantList);
 }
        public void TestGenerateSubContestResult()
        {
            Contest    contest = new Contest();
            Contestant kalle   = new Contestant("kalle", "Cool");
            Contestant pelle   = new Contestant("pelle", "Holm");
            Contestant lars    = new Contestant("Lars", "Lerin");

            ContestantList contestantList = new ContestantList();

            contestantList.Add(kalle);
            contestantList.Add(pelle);
            contestantList.Add(lars);

            SubContestBranch subContest = new SubContestBranch("Test", contest, contestantList);

            Dive dive  = new Dive(new DiveCode(3.1));
            Dive dive2 = new Dive(new DiveCode(2.1));
            Dive dive3 = new Dive(new DiveCode(3.5));
            Dive dive4 = new Dive(new DiveCode(2.5));
            Dive dive5 = new Dive(new DiveCode(15.0));

            ScoreList scoreListDive = new ScoreList();

            scoreListDive.Add(new Score(8));
            scoreListDive.Add(new Score(8.5));
            scoreListDive.Add(new Score(6.5));
            scoreListDive.Add(new Score(7));
            scoreListDive.Add(new Score(9));
            dive.Scores = scoreListDive;
            // 72.85

            subContest.AddNewDive(kalle, dive);

            ScoreList scoreListDive2 = new ScoreList();

            scoreListDive2.Add(new Score(6));
            scoreListDive2.Add(new Score(7.5));
            scoreListDive2.Add(new Score(6.5));
            scoreListDive2.Add(new Score(7));
            scoreListDive2.Add(new Score(9));
            dive2.Scores = scoreListDive2;
            // 44.1

            subContest.AddNewDive(pelle, dive2);

            ScoreList scoreListDive3 = new ScoreList();

            scoreListDive3.Add(new Score(6));
            scoreListDive3.Add(new Score(4.5));
            scoreListDive3.Add(new Score(6.5));
            scoreListDive3.Add(new Score(5));
            scoreListDive3.Add(new Score(8));
            dive3.Scores = scoreListDive3;
            subContest.AddNewDive(kalle, dive3);
            // 61.25

            ScoreList scoreListDive4 = new ScoreList();

            scoreListDive4.Add(new Score(6));
            scoreListDive4.Add(new Score(7));
            scoreListDive4.Add(new Score(8.5));
            scoreListDive4.Add(new Score(5));
            scoreListDive4.Add(new Score(8));
            dive4.Scores = scoreListDive4;
            subContest.AddNewDive(pelle, dive4);
            //


            ScoreList scoreListDive5 = new ScoreList();

            scoreListDive5.Add(new Score(6));
            scoreListDive5.Add(new Score(7));
            scoreListDive5.Add(new Score(8.5));
            scoreListDive5.Add(new Score(5));
            scoreListDive5.Add(new Score(8));
            dive5.Scores = scoreListDive5;
            subContest.AddNewDive(lars, dive5);
            //

            // get the ResultDictionary containing pairs of contestant and a total score sum.
            ResultDictionary result = subContest.GenerateSubContestResult();



            Assert.AreEqual(3, result.Count);

            foreach (var score in result)
            {
                Console.WriteLine(score.Key.FirstName + ": " + score.Value);
            }

            Assert.AreEqual(315, result.First().Value);

            Console.WriteLine();

            // getting same data from our Contest object
            ResultDictionary r = contest.GetSubContestResultDictionary(subContest);

            Assert.AreEqual(3, r.Count);

            foreach (var score in r)
            {
                Console.WriteLine(score.Key.FirstName + ": " + score.Value);
            }

            Assert.AreEqual(315, r.First().Value);
        }