示例#1
0
        public void TestMethod3_OptimalPlacement()
        {
            int numberOfLanes = 6;
            int numberOfTimeSlots = 6;
            LaneWearData.Populate(numberOfLanes);
            List<LaneSchedulerReservation> reservations = new List<LaneSchedulerReservation>();
            // Reservation(int id, int numLanes, int numTimeSlots, int startTimeSlot)
            LaneSchedulerReservation res1 = new LaneSchedulerReservation(1, 3, 2, 2);
            LaneSchedulerReservation res2 = new LaneSchedulerReservation(2, 3, 2, 2);

            // Test Search
            reservations.Add(res1);
            reservations.Add(res2);

            LaneSchedulerState emptyState = new LaneSchedulerState(numberOfLanes, numberOfTimeSlots, reservations);
            LaneSchedulerState state = LaneScheduler.RecursiveSearch(emptyState, reservations, 0, 1000, 0);

            // TODO: Should we check for other things than schedulability in this test?
            Assert.IsNotNull(state, "Final state was null, which is unexpected");
        }
示例#2
0
        public void TestMethod2_FailingReservation()
        {
            int numberOfLanes = 6;
            int numberOfTimeSlots = 5;
            LaneWearData.Populate(numberOfLanes);
            List<LaneSchedulerReservation> reservations = new List<LaneSchedulerReservation>();
            // Reservation(int id, int numLanes, int numTimeSlots, int startTimeSlot)
            LaneSchedulerReservation res1 = new LaneSchedulerReservation(1, 2, 2, 3);
            LaneSchedulerReservation res2 = new LaneSchedulerReservation(2, 2, 2, 2);
            LaneSchedulerReservation res3 = new LaneSchedulerReservation(3, 1, 2, 2);
            LaneSchedulerReservation res4 = new LaneSchedulerReservation(4, 6, 2, 3);

            // Test Search
            reservations.Add(res1);
            reservations.Add(res2);
            reservations.Add(res3);
            reservations.Add(res4);
            LaneSchedulerState fourthState = new LaneSchedulerState(numberOfLanes, numberOfTimeSlots, reservations);
            LaneSchedulerState failState = LaneScheduler.RecursiveSearch(fourthState, reservations, 0, 0, 0);

            Assert.IsNull(failState, "Unschedulable state appears to have been scheduled!");
        }
示例#3
0
        public void TestMethod1_SmallReservation()
        {
            int numberOfLanes = 8;
            int numberOfTimeSlots = 5;
            LaneWearData.Populate(numberOfLanes);
            List<LaneSchedulerReservation> reservations = new List<LaneSchedulerReservation>();
            // Reservation(int id, int numLanes, int numTimeSlots, int startTimeSlot)
            LaneSchedulerReservation res1 = new LaneSchedulerReservation(1, 2, 2, 3);
            LaneSchedulerReservation res2 = new LaneSchedulerReservation(2, 2, 2, 2);
            LaneSchedulerReservation res3 = new LaneSchedulerReservation(3, 1, 2, 2);

            // add reservations
            reservations.Add(res1);
            reservations.Add(res2);
            reservations.Add(res3);

            // Test Search
            LaneSchedulerState thirdState = new LaneSchedulerState(numberOfLanes, numberOfTimeSlots, reservations);
            LaneSchedulerState finalState = LaneScheduler.RecursiveSearch(thirdState, reservations, 0, 100, 0);

            Assert.IsNotNull(finalState, "Final state was null, which is unexpected");
        }