public void RandomSortNTP_Sort_PilotsAndSuggestedPilotsPerRoundOutOfSyncCreateNewGroup() { var pilots = GeneratePilotsList(19); var sortAlgo = new RandomSortNoTeamProtection(); var numberOfRounds = 1; var suggestedPilotsPerGroup = 5; var sorted = sortAlgo.GenerateInitialMatrix(pilots, numberOfRounds, suggestedPilotsPerGroup); // One Round Assert.AreEqual(1, sorted.Matrix.Count); // 19 Pilots Assert.AreEqual(19, sorted.Matrix[0].PilotSlots.Count); var pilotsInFirstGroup = sorted.Matrix[0].PilotSlots.Count(p => p.FlightGroup == FlightGroup.A); var pilotsInSecondGroup = sorted.Matrix[0].PilotSlots.Count(p => p.FlightGroup == FlightGroup.B); var pilotsInThirdGroup = sorted.Matrix[0].PilotSlots.Count(p => p.FlightGroup == FlightGroup.C); var pilotsInFourthGroup = sorted.Matrix[0].PilotSlots.Count(p => p.FlightGroup == FlightGroup.D); // There should be four flight groups, 5 in 3 (15 pilots) and the remaining 4 in a final group (19 total). // The first should have the suggested number of pilots. Assert.AreEqual(suggestedPilotsPerGroup, pilotsInFirstGroup); Assert.AreEqual(suggestedPilotsPerGroup, pilotsInSecondGroup); Assert.AreEqual(suggestedPilotsPerGroup, pilotsInThirdGroup); // Since there are 19, the remainder should be added to a new group and not included in the previous. Assert.AreEqual(suggestedPilotsPerGroup - 1, pilotsInFourthGroup); }
public void RandomSortNTP_Sort_PilotsAndSuggestedPilotsPerRoundOutOfSync() { var pilots = GeneratePilotsList(7); var sortAlgo = new RandomSortNoTeamProtection(); var numberOfRounds = 1; var suggestedPilotsPerGroup = 3; var sorted = sortAlgo.GenerateInitialMatrix(pilots, numberOfRounds, suggestedPilotsPerGroup); Assert.AreEqual(1, sorted.Matrix.Count); Assert.AreEqual(7, sorted.Matrix[0].PilotSlots.Count); var pilotsInFirstGroup = sorted.Matrix[0].PilotSlots.Count(p => p.FlightGroup == FlightGroup.A); var pilotsInSecondGroup = sorted.Matrix[0].PilotSlots.Count(p => p.FlightGroup == FlightGroup.B); // There should be two flight groups. // The first should have the suggested number of pilots. Assert.AreEqual(suggestedPilotsPerGroup, pilotsInFirstGroup); // Since there are seven pilots, there is 1 remaining pilot. The rule for this // sorting algo states that when generating a matrix, if the remainder is less than // half of the number of pilots suggested per group, they should be added to the // final group and a new group should not be created. Assert.AreEqual(suggestedPilotsPerGroup + 1, pilotsInSecondGroup); }
public void RandomSortNTP_Sort_HappyPath() { var pilots = GeneratePilotsList(10); var sortAlgo = new RandomSortNoTeamProtection(); var sorted = sortAlgo.GenerateInitialMatrix(pilots, 10, 10); Assert.AreEqual(10, sorted.Matrix.Count); Assert.AreEqual(10, sorted.Matrix[0].PilotSlots.Count); }
public void RandomSortNTP_Sort_NegativeSuggestedPilotsPerRoundParameter() { var randSort = new RandomSortNoTeamProtection(); randSort.GenerateInitialMatrix(GeneratePilotsList(1), 10, -1); }
public void RandomSortNTP_Sort_NegativeRoundsParameter() { var randSort = new RandomSortNoTeamProtection(); randSort.GenerateInitialMatrix(GeneratePilotsList(1), -1, 5); }
public void RandomSortNTP_Sort_BadPilotRegistrationParameter() { var randSort = new RandomSortNoTeamProtection(); randSort.GenerateInitialMatrix(new List <PilotRegistration>(), 0, 5); }
public void RandomSortNTP_Sort_NullPilotListParameter() { var randSort = new RandomSortNoTeamProtection(); randSort.GenerateInitialMatrix(null, 10, 5); }