private void btnAssignCurrentGroup_Click(object sender, RoutedEventArgs e)
        {
            setStartNumbersNotToAssign();
            setAnzVerlosung();

            try
            {
                _snaWorkspace.SetNextStartNumber(uint.Parse(txtNextStartNumber.Text));
                _rpSelector.AssignParticipants();
                _rpSelector.SwitchToNextGroup();
            }
            catch (Exception)
            { }
        }
Exemple #2
0
        public void StartNumberAssignment_ParticpantSelector3_AssignmentTest_NoPoints()
        {
            TestDataGenerator testData = new TestDataGenerator();

            var participants = testData.createRaceParticipants(20);

            // Point distribution:
            //  1..10 increasing,
            // 11..15 equal 9999.9 // = no points
            // 16..20 equal -1     // = no points
            for (int i = 0; i < participants.Count; i++)
            {
                if (i < 10)
                {
                    participants[i].Points = (double)(i + 1);
                }
                else if (i < 16)
                {
                    participants[i].Points = 9999.9;
                }
                else if (i < 20)
                {
                    participants[i].Points = -1.0;
                }
            }


            // Ascending
            {
                StartNumberAssignment sna = new StartNumberAssignment();
                ParticipantSelector   ps  = new ParticipantSelector(participants[0].Race, sna, null);
                ps.AnzahlVerlosung = 20;

                ps.AssignParticipants(participants);

                // Check:
                foreach (var a in sna.ParticipantList)
                {
                    int id = int.Parse(a.Participant.Id);

                    if (id <= 10)
                    {
                        Assert.IsTrue(a.StartNumber <= 10);
                    }
                    else if (id <= 20)
                    {
                        Assert.IsTrue(10 < a.StartNumber && a.StartNumber <= 20);
                    }
                }
            }
        }
Exemple #3
0
        public void StartNumberAssignment_ParticpantSelector2_Test()
        {
            string dbFilename = TestUtilities.CreateWorkingFileFrom(testContextInstance.TestDeploymentDir, @"1554MSBS.mdb");

            RaceHorologyLib.Database db = new RaceHorologyLib.Database();
            db.Connect(dbFilename);

            AppDataModel model = new AppDataModel(db);
            var          race  = model.GetRace(0);

            StartNumberAssignment sna = new StartNumberAssignment();

            sna.LoadFromRace(race);

            sna.DeleteAll();

            ParticipantSelector ps = new ParticipantSelector(race, sna, "Class");

            Assert.AreEqual(ps.CurrentGroup.ToString(), "U14 weiblich Jg. 07");
            ps.AssignParticipants();
            Assert.IsTrue(ps.SwitchToNextGroup());
            Assert.AreEqual(ps.CurrentGroup.ToString(), "U14 weiblich Jg. 06");
            ps.AssignParticipants();
            Assert.IsTrue(ps.SwitchToNextGroup());
            Assert.AreEqual(ps.CurrentGroup.ToString(), "U16 weiblich  Jg. 05/04");
            ps.AssignParticipants();
            Assert.IsTrue(ps.SwitchToNextGroup());
            Assert.AreEqual(ps.CurrentGroup.ToString(), "U14 männlich Jg. 07");
            ps.AssignParticipants();
            Assert.IsTrue(ps.SwitchToNextGroup());
            Assert.AreEqual(ps.CurrentGroup.ToString(), "U14 männlich Jg. 06");
            ps.AssignParticipants();
            Assert.IsTrue(ps.SwitchToNextGroup());
            Assert.AreEqual(ps.CurrentGroup.ToString(), "U16 männlich Jg. 05/04");
            ps.AssignParticipants();
            Assert.IsFalse(ps.SwitchToNextGroup());
            Assert.IsNull(ps.CurrentGroup);

            // Check once more
            Assert.IsFalse(ps.SwitchToNextGroup());
            Assert.IsNull(ps.CurrentGroup);
        }
Exemple #4
0
        public void StartNumberAssignment_ParticpantSelector3_AssignmentTest_100()
        {
            TestDataGenerator testData = new TestDataGenerator();

            var participants = testData.createRaceParticipants(100);

            // Point distribution based on Id:
            // 1..80 increasing,
            // 81..90: 999.9,
            // 91..100 equal 9999.9
            for (int i = 0; i < participants.Count; i++)
            {
                if (i < 80)
                {
                    participants[i].Points = (double)(i + 1);
                }
                else if (i < 90)
                {
                    participants[i].Points = 999.9;
                }
                else if (i < 100)
                {
                    participants[i].Points = 9999.9;
                }
            }


            // Ascending
            {
                StartNumberAssignment sna = new StartNumberAssignment();
                ParticipantSelector   ps  = new ParticipantSelector(participants[0].Race, sna, null);
                ps.AnzahlVerlosung = 10;

                ps.AssignParticipants(participants);

                // Check:
                foreach (var a in sna.ParticipantList)
                {
                    int id = int.Parse(a.Participant.Id);

                    if (id <= 10)
                    {
                        Assert.IsTrue(a.StartNumber <= 10);
                    }
                    else if (id <= 80)
                    {
                        Assert.IsTrue(a.StartNumber == id);
                    }
                    else if (id <= 90)
                    {
                        Assert.IsTrue(80 < a.StartNumber && a.StartNumber <= 90);
                    }
                    else if (id <= 100)
                    {
                        Assert.IsTrue(90 < a.StartNumber && a.StartNumber <= 100);
                    }
                }
            }

            // Descending
            {
                StartNumberAssignment sna = new StartNumberAssignment();
                ParticipantSelector   ps  = new ParticipantSelector(participants[0].Race, sna, null);
                ps.AnzahlVerlosung = 10;
                ps.Sorting         = new ParticipantSelector.PointsComparerDesc();

                ps.AssignParticipants(participants);

                // Check:
                foreach (var a in sna.ParticipantList)
                {
                    int id = int.Parse(a.Participant.Id);

                    if (id <= 10)
                    {
                        Assert.IsTrue(a.StartNumber == 90 - id + 1);
                    }
                    else if (id <= 80)
                    {
                        Assert.IsTrue(a.StartNumber == 90 - id + 1);
                    }
                    else if (id <= 90)
                    {
                        Assert.IsTrue(1 <= a.StartNumber && a.StartNumber <= 10); // 1..10
                    }
                    else if (id <= 100)
                    {
                        Assert.IsTrue(90 < a.StartNumber && a.StartNumber <= 100);
                    }
                }
            }
        }