コード例 #1
0
    public void JobFileReadTest()
    {
        // Arrange
        JobFileReader fileReader         = new JobFileReader();
        int           answerNumberOfJobs = 12;

        Job[] answerArrayOfJobs = new Job[answerNumberOfJobs];
        answerArrayOfJobs[0]  = new Job(8, 50);
        answerArrayOfJobs[1]  = new Job(74, 59);
        answerArrayOfJobs[2]  = new Job(31, 73);
        answerArrayOfJobs[3]  = new Job(45, 79);
        answerArrayOfJobs[4]  = new Job(24, 10);
        answerArrayOfJobs[5]  = new Job(41, 66);
        answerArrayOfJobs[6]  = new Job(93, 43);
        answerArrayOfJobs[7]  = new Job(88, 4);
        answerArrayOfJobs[8]  = new Job(28, 30);
        answerArrayOfJobs[9]  = new Job(41, 13);
        answerArrayOfJobs[10] = new Job(4, 70);
        answerArrayOfJobs[11] = new Job(10, 58);

        (int, Job[])myJobData;

        // Act
        myJobData = fileReader.ReadJobFile(@"C:\Users\Paul\Documents\Open Source Society for Computer Science (OSSU)\Algorithms Coursera\Programming Assignments\Week 9 Programming Assignment\TestCases\Test Case 1.txt");

        // Assert
        Assert.Equal(answerNumberOfJobs, myJobData.Item1);

        for (int i = 0; i < answerArrayOfJobs.Length; i++)
        {
            Assert.Equal(answerArrayOfJobs[i]._weight, myJobData.Item2[i]._weight);
            Assert.Equal(answerArrayOfJobs[i]._length, myJobData.Item2[i]._length);
        }
    }
コード例 #2
0
ファイル: Program.cs プロジェクト: psl012/Algorithm_Analysis
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Job           hello      = new Job(23, 23);
            JobFileReader fileReader = new JobFileReader();

            (int, Job[])myJobData = fileReader.ReadJobFile(@"C:\Users\Paul\Documents\Open Source Society for Computer Science (OSSU)\Algorithms Coursera\Programming Assignments\Week 9 Programming Assignment\TestCases\Test Case 1.txt");
            JobScheduler jobScheduler = new JobScheduler();

            Job[] gg = jobScheduler.DifferenceCriterion(myJobData.Item2);
            foreach (Job j in gg)
            {
                Console.WriteLine(j._jobValue);
            }
            Console.WriteLine("---------------------------");
            Week9FileReader fileReader2 = new Week9FileReader();

            Dictionary <int, List <(int?, int)> > adjacentGraph = fileReader2.GraphFileReader(@"C:\Users\Paul\Documents\Open Source Society for Computer Science (OSSU)\Algorithms Coursera\Programming Assignments\Week 9 Programming Assignment with DLL\Assignment9\MST Data.txt");
            Prim  prim  = new Prim();
            Graph graph = new Graph(adjacentGraph);

            Console.WriteLine("");
            List <Edge> tree = prim.Apply(graph, graph._vertices[1]);

            int myAnswer = 0;

            foreach (Edge ed in tree)
            {
                myAnswer += ed._length;
            }
            Console.WriteLine("MST Length: " + myAnswer);
            Console.ReadKey();
        }
コード例 #3
0
    public void DifferenceCriterion_Test()
    {
        // Arrange
        Job[] valueAnswer = new Job[12];
        valueAnswer[0]  = new Job(88, 4, 84);
        valueAnswer[1]  = new Job(93, 43, 50);
        valueAnswer[2]  = new Job(41, 13, 28);
        valueAnswer[3]  = new Job(74, 59, 15);
        valueAnswer[4]  = new Job(24, 10, 14);
        valueAnswer[5]  = new Job(28, 30, -2);
        valueAnswer[6]  = new Job(41, 66, -25);
        valueAnswer[7]  = new Job(45, 79, -34);
        valueAnswer[8]  = new Job(31, 73, -42);
        valueAnswer[9]  = new Job(8, 50, -42);
        valueAnswer[10] = new Job(10, 58, -48);
        valueAnswer[11] = new Job(4, 70, -66);

        JobFileReader fileReader = new JobFileReader();

        (int, Job[])myJobData = fileReader.ReadJobFile(@"C:\Users\Paul\Documents\Open Source Society for Computer Science (OSSU)\Algorithms Coursera\Programming Assignments\Week 9 Programming Assignment\TestCases\Test Case 1.txt");
        JobScheduler jobScheduler = new JobScheduler();

        // Act
        Job[] myJobAnswer = jobScheduler.DifferenceCriterion(myJobData.Item2);

        // Assert
        for (int i = 0; i < 12; i++)
        {
            Assert.Equal(valueAnswer[i]._jobValue, myJobAnswer[i]._jobValue);
        }

        // Difference Test
        Assert.Equal(68615, jobScheduler.GetWeightedSum(myJobAnswer));
    }
コード例 #4
0
    public void RatioCriterion_Test()
    {
        JobFileReader fileReader = new JobFileReader();

        (int, Job[])myJobData = fileReader.ReadJobFile(@"C:\Users\Paul\Documents\Open Source Society for Computer Science (OSSU)\Algorithms Coursera\Programming Assignments\Week 9 Programming Assignment\TestCases\Test Case 1.txt");
        JobScheduler jobScheduler = new JobScheduler();

        // Act
        Job[] myJobAnswer = jobScheduler.RatioCriterion(myJobData.Item2);

        // Assert
        Assert.Equal(67247, jobScheduler.GetWeightedSum(myJobAnswer));
    }
コード例 #5
0
        static void Main(string[] args)
        {
            string jobString = "JobFiles/jobs10.txt";

            Stopwatch sw = new Stopwatch();

            IHybridAlgProcessor hybridAlg = new HybridAlgProcessor();
            IJobFileReader      reader    = new JobFileReader();
            IGenAlgProcessor    GA        = new GenAlgProcessor(10, 10);

            reader.ReadFile(jobString);
            List <Job>            originalJobList        = reader.Jobs;
            List <CompletionNode> originalCompletionList = GA.CalculateCompletionList(originalJobList);

            Console.WriteLine("Beginning Schedule");
            Console.WriteLine("\tTotal Delay: " + GA.CalculateTotalDelay(originalCompletionList));
            Console.WriteLine("\tSchedule:");
            Console.WriteLine("\t\tjobID\t\texecTime\tdueTime");

            foreach (var job in originalJobList)
            {
                Console.WriteLine("\t\t" + job.jobID + "\t\t" + job.execTime + "\t\t" + job.dueTime);
            }

            Console.WriteLine("\nRunning Hybrid Algorithm...\n");

            sw.Start();
            hybridAlg.RunHybridAlg(jobString);
            sw.Stop();

            Console.WriteLine("Optimal Schedule");
            Console.WriteLine("\tElapsed Time (ms): " + sw.ElapsedMilliseconds);
            Console.WriteLine("\tTotal Delay: " + hybridAlg.OpSchedTotalDelay);
            Console.WriteLine("\tCalculated Schedule:");
            Console.WriteLine("\t\tjobID\t\texecTime\tdueTime");

            foreach (var job in hybridAlg.OpSched)
            {
                Console.WriteLine("\t\t" + job.jobID + "\t\t" + job.execTime + "\t\t" + job.dueTime);
            }

            Console.ReadLine();
        }