Beispiel #1
0
        public void MidpointCrossoverTest()
        {
            IRandomSlotsGenerator randomSlotsGenerator1 = new RandomSlotsGenerator(new RoomsRandomizer(new RoomsFakeRepository()), new SubjectsFakeRepository(), new InstructorsFakeRepository());
            IRandomSlotsGenerator randomSlotsGenerator2 = new RandomSlotsGenerator(new RoomsRandomizer(new RoomsFakeRepository()), new SubjectsFakeRepository(), new InstructorsFakeRepository());
            Random             random            = new Random();
            IFitnessCalculator fitnessCalculator = new FitnessCalculator(new RoomsFakeRepository(), new SubjectsFakeRepository(), new SubjectsFakeRepository().Count);

            ScheduleDNA firstSchedule  = new ScheduleDNA(randomSlotsGenerator1, fitnessCalculator, random);
            ScheduleDNA secondSchedule = new ScheduleDNA(randomSlotsGenerator2, fitnessCalculator, random);

            ScheduleDNA child = firstSchedule.Crossover(secondSchedule);

            float fitness1 = fitnessCalculator.CalculateFitness(firstSchedule.Genes);
            float fitness2 = fitnessCalculator.CalculateFitness(secondSchedule.Genes);
            float fitness3 = fitnessCalculator.CalculateFitness(child.Genes);
        }
Beispiel #2
0
 public void FillWithSubjectsSlotsTest()
 {
     RandomSlotsGenerator generator = new RandomSlotsGenerator(new RoomsRandomizer(new RoomsFakeRepository()), new SubjectsFakeRepository(), new InstructorsFakeRepository());
     var slots             = generator.GetRandomFilledSlots();
     var slotsWithSubjects = slots.Where(x => x.SubjectId != -1);
 }