Example #1
0
        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);
        }
Example #2
0
        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);
        }