private void btnAssignCurrentGroup_Click(object sender, RoutedEventArgs e) { setStartNumbersNotToAssign(); setAnzVerlosung(); try { _snaWorkspace.SetNextStartNumber(uint.Parse(txtNextStartNumber.Text)); _rpSelector.AssignParticipants(); _rpSelector.SwitchToNextGroup(); } catch (Exception) { } }
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); } } } }
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); }
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); } } } }