private CalendarGenInput GetKnockOutInput(int numTeams) { var teams = new long[numTeams]; for (int i = 0; i < numTeams; ++i) { teams[i] = i + 1; } var input = new CalendarGenInput { Type = (int)CalendarType.Knockout, TeamIds = teams, WeekdaySlots = new DailySlot[][] { new DailySlot[] { }, // Sunday new DailySlot[] { }, // Monday new DailySlot[] { }, // Tuesday new DailySlot[] { }, // Wednesday new DailySlot[] // Thursday { new DailySlot { StartTime = new DateTime(1, 1, 1, 10, 00, 00), EndTime = new DateTime(1, 1, 1, 11, 00, 00) }, new DailySlot { StartTime = new DateTime(1, 1, 1, 16, 00, 00), EndTime = new DateTime(1, 1, 1, 17, 00, 00) } }, new DailySlot[] { }, // Friday new DailySlot[] { } // Saturday }, StartDate = new DateTime(2018, 01, 22), ForbiddenDays = new DateTime[] { new DateTime(2018, 01, 25) }, FieldIds = new long[] { 1001, 1002 }, GameDuration = 60, IsPreview = true, Group = new GroupCoords { IdTournament = 1, IdStage = 10, IdGroup = 100 } }; return(input); }
public void BasicTest() { // 8 teams, 2 hours, 2 fields with no previous matches var input = new CalendarGenInput { Type = (int)CalendarType.League, TeamIds = new long[] { 1, 2, 3, 4, 5, 6, 7, 8 }, WeekdaySlots = new DailySlot[][] { new DailySlot[] { }, // Sunday new DailySlot[] { }, // Monday new DailySlot[] { }, // Tuesday new DailySlot[] { }, // Wednesday new DailySlot[] // Thursday { new DailySlot { StartTime = new DateTime(1, 1, 1, 10, 00, 00), EndTime = new DateTime(1, 1, 1, 11, 00, 00) }, new DailySlot { StartTime = new DateTime(1, 1, 1, 16, 00, 00), EndTime = new DateTime(1, 1, 1, 17, 00, 00) } }, new DailySlot[] { }, // Friday new DailySlot[] { } // Saturday }, StartDate = new DateTime(2018, 01, 22), Group = new GroupCoords { IdTournament = 1, IdStage = 2, IdGroup = 3 }, ForbiddenDays = new DateTime[] { new DateTime(2018, 01, 25) }, FieldIds = new long[] { 1001, 1002 }, GameDuration = 60, IsPreview = true }; // Could have some availablity set up here. This is the basic test, not there yet. var fields = new Field[] { new Field { Id = 1001, Name = "Campo1" }, new Field { Id = 1002, Name = "Campo2" } }; var result = LeaguePlanner.Calculate(input, fields, "es", null, null); Assert.IsNotNull(result); Assert.IsNotNull(result.Days); Assert.AreEqual(result.Days.Count, 7); var r1 = result.Days[0]; Assert.IsNotNull(r1); Assert.IsNotNull(r1.Matches); Assert.AreEqual(r1.Matches.Count, 4); var m1 = r1.Matches[0]; Assert.AreEqual(new DateTime(2018, 01, 25, 10, 00, 00), m1.StartTime); }