예제 #1
0
파일: Main.cs 프로젝트: davividal/disk-seek
        private void processaFilas_Click(object sender, EventArgs e)
        {
            if (fila.Text == "")
            {
                MessageBox.Show("Informe uma fila de processamento!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }

            grafico.Series.Clear();

            Algoritimos.Algoritimos alg1 = new Algoritimos.Sstf(maxCilindros.Value);
            Algoritimos.Algoritimos alg2 = new Algoritimos.Scan(maxCilindros.Value);
            Algoritimos.Algoritimos alg3 = new Algoritimos.Cscan(maxCilindros.Value);

            alg1.cilindroAnterior = cilindroAnterior.Value;
            alg1.cilindroAtual    = cilindroAtual.Value;
            alg1.setSequencia(fila.Text);

            alg2.cilindroAnterior = cilindroAnterior.Value;
            alg2.cilindroAtual    = cilindroAtual.Value;
            alg2.setSequencia(fila.Text);

            alg3.cilindroAnterior = cilindroAnterior.Value;
            alg3.cilindroAtual    = cilindroAtual.Value;
            alg3.setSequencia(fila.Text);

            backgroundWorker1.RunWorkerAsync(alg1);
            backgroundWorker2.RunWorkerAsync(alg2);
            backgroundWorker3.RunWorkerAsync(alg3);

            sentidoLeitura.Text = alg1.getSentido();
        }
예제 #2
0
        public void TestAnteriorIgualMaximo()
        {
            decimal cilindroMaximo = 300;
            decimal cilindroTeste = 300;

            Algoritimos alg = new Sstf(cilindroMaximo);
            alg.cilindroAnterior = cilindroTeste;
        }
예제 #3
0
        public void TestAtualMaiorMaximo()
        {
            decimal cilindroMaximo = 300;
            decimal cilindroTeste = 350;

            Algoritimos alg = new Sstf(cilindroMaximo);
            alg.cilindroAtual = cilindroTeste;
        }
예제 #4
0
        public void TestSentidoIndoTrilha0()
        {
            decimal cilindroAnterior = 299;
            decimal cilindroAtual = 0;
            Algoritimos alg = new Sstf(this.cilindroMaximo);
            alg.cilindroAnterior = cilindroAnterior;
            alg.cilindroAtual = cilindroAtual;

            Assert.AreEqual("Indo para a trilha 0", alg.getSentido());
        }
예제 #5
0
        public void TestSequenciaLeitura()
        {
            String seqExercicio = "68,14,6,28,130,94,6,42";
            decimal cilindroAnterior = 37;
            decimal cilindroAtual = 20;
            Sstf alg = new Sstf(300);
            String seqLeitura;

            alg.cilindroAnterior = Convert.ToInt32(cilindroAnterior);
            alg.cilindroAtual = Convert.ToInt32(cilindroAtual);
            alg.setSequencia(seqExercicio);

            alg.processa();

            seqLeitura = alg.getSequenciaLeitura();

            Assert.AreEqual("14,6,6,28,42,68,94,130", seqLeitura);
        }
예제 #6
0
        public void TestNumeroCilindros()
        {
            String seqExercicio = "68,14,6,28,130,94,6,42";
            decimal cilindroAnterior = 37;
            decimal cilindroAtual = 20;
            Sstf alg = new Sstf(300);
            int distancia = 0;

            alg.cilindroAnterior = Convert.ToInt32(cilindroAnterior);
            alg.cilindroAtual = Convert.ToInt32(cilindroAtual);
            alg.setSequencia(seqExercicio);

            alg.processa();

            distancia = alg.getDistancia();

            Assert.AreEqual(138, distancia);
        }
예제 #7
0
        public void TestExercicio2Sequencia()
        {
            String seqExercicio = "86,1470,913,1774,948,1509,1022,1750,130";
            decimal cilindroAnterior = 125;
            decimal cilindroAtual = 143;
            Sstf alg = new Sstf(5000);
            String seqLeitura;

            alg.cilindroAnterior = Convert.ToInt32(cilindroAnterior);
            alg.cilindroAtual = Convert.ToInt32(cilindroAtual);
            alg.setSequencia(seqExercicio);

            alg.processa();

            seqLeitura = alg.getSequenciaLeitura();

            Assert.AreEqual("130,86,913,948,1022,1470,1509,1750,1774", seqLeitura);
        }
예제 #8
0
        public void TestExercicio2Distancia()
        {
            String seqExercicio = "86,1470,913,1774,948,1509,1022,1750,130";
            decimal cilindroAnterior = 125;
            decimal cilindroAtual = 143;
            Sstf alg = new Sstf(5000);
            int distancia = 0;

            alg.cilindroAnterior = Convert.ToInt32(cilindroAnterior);
            alg.cilindroAtual = Convert.ToInt32(cilindroAtual);
            alg.setSequencia(seqExercicio);

            alg.processa();

            distancia = alg.getDistancia();

            Assert.AreEqual(1745, distancia);
        }
예제 #9
0
파일: Main.cs 프로젝트: davividal/disk-seek
        private void processaFilas_Click(object sender, EventArgs e)
        {
            if (fila.Text == "")
            {
                MessageBox.Show("Informe uma fila de processamento!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }

            grafico.Series.Clear();

            Algoritimos.Algoritimos alg1 = new Algoritimos.Sstf(maxCilindros.Value);
            Algoritimos.Algoritimos alg2 = new Algoritimos.Scan(maxCilindros.Value);
            Algoritimos.Algoritimos alg3 = new Algoritimos.Cscan(maxCilindros.Value);

            alg1.cilindroAnterior = cilindroAnterior.Value;
            alg1.cilindroAtual = cilindroAtual.Value;
            alg1.setSequencia(fila.Text);

            alg2.cilindroAnterior = cilindroAnterior.Value;
            alg2.cilindroAtual = cilindroAtual.Value;
            alg2.setSequencia(fila.Text);

            alg3.cilindroAnterior = cilindroAnterior.Value;
            alg3.cilindroAtual = cilindroAtual.Value;
            alg3.setSequencia(fila.Text);

            backgroundWorker1.RunWorkerAsync(alg1);
            backgroundWorker2.RunWorkerAsync(alg2);
            backgroundWorker3.RunWorkerAsync(alg3);

            sentidoLeitura.Text = alg1.getSentido();
        }
예제 #10
0
        public void TestSentidoParado()
        {
            decimal cilindroAnterior = 0;
            decimal cilindroAtual = 0;
            Algoritimos alg = new Sstf(this.cilindroMaximo);
            alg.cilindroAnterior = cilindroAnterior;
            alg.cilindroAtual = cilindroAtual;

            Assert.AreEqual("Parado", alg.getSentido());
        }