Exemple #1
0
        public void ConvertLengthTest()
        {
            /*
             * u metodi dajemo primer unosa, očekivani izlaz na osnovu tog unosa i stvarni rezultat konverzije
             * koji smo dobili pozivom metode Convert() klase LengthConverter za prosleđeni unos. Ukoliko su
             * data i dobijena vrednost rezultata jednake test će biti uspešan, u suprotnom test će biti neuspešan
             * i ispisujemo poruku greške
             */

            double          input          = 123.12;
            double          expectedOutput = 37.527;
            LengthConverter length         = new LengthConverter();
            double          actualOutput   = length.Convert(input);

            Assert.AreEqual(expectedOutput, length.Convert(input), "Postoji greška, konverzija nije tačno izvršena.");
        }
Exemple #2
0
        public double ConvertLengthParameterTest(double input)
        {
            LengthConverter lC = new LengthConverter();

            return(lC.Convert(input));
        }
        /*
         * Metoda koja realizuje menjanje boje dugmića prilikom klika na njih, unos brojeva u kvadrat za unos
         * na osnovu odabranih dugmića i upis konvertovane vrednosti u kvadrat za izlaz. Metoda će se pozivati
         * klikom miša na formu.
         */

        private void Converter_MouseClick(object sender, MouseEventArgs e)
        {
            /*
             * Prolazimo kroz niz dugmića i proveravamo da li neki od njih sadrži klik miša i ako da koji.
             * Kliknuto dugme prvo bojimo u plavo a tekst u njemu u belo, zatim pauziramo program na 100
             * milisekundi (Thread.Sleep(100)) kako bi dobili "blink" efekat i potom vraćamo boje dugmeta
             * na prethodne vrednosti.
             */

            for (int i = 0; i < 11; i++)
            {
                if (arrayOfButtons[i].Contains(e.X, e.Y))
                {
                    graph.FillEllipse(Brushes.Blue, arrayOfButtons[i].X + 0.5f, arrayOfButtons[i].Y + 0.5f, arrayOfButtons[i].Width - 1, arrayOfButtons[i].Height - 1);

                    if (i == 9)
                    {
                        graph.DrawString("0", new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.White, arrayOfButtons[i].X + 10, arrayOfButtons[i].Y + 10);
                    }
                    else if (i == 10)
                    {
                        graph.DrawString(",", new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.White, arrayOfButtons[i].X + 10, arrayOfButtons[i].Y + 10);
                    }
                    else
                    {
                        graph.DrawString((i + 1).ToString(), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.White, arrayOfButtons[i].X + 10, arrayOfButtons[i].Y + 10);
                    }

                    Thread.Sleep(100);

                    graph.FillEllipse(Brushes.BlueViolet, arrayOfButtons[i].X + 0.5f, arrayOfButtons[i].Y + 0.5f, arrayOfButtons[i].Width - 1, arrayOfButtons[i].Height - 1);

                    if (i == 9)
                    {
                        graph.DrawString("0".ToString(), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.Black, arrayOfButtons[i].X + 10, arrayOfButtons[i].Y + 10);
                    }
                    else if (i == 10)
                    {
                        graph.DrawString(",".ToString(), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.Black, arrayOfButtons[i].X + 10, arrayOfButtons[i].Y + 10);
                    }
                    else
                    {
                        graph.DrawString((i + 1).ToString(), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.Black, arrayOfButtons[i].X + 10, arrayOfButtons[i].Y + 10);
                    }

                    /*
                     * Vršimo upis odabranih brojeva klikom na dugmad u kvadrat namenjen za prikaz unosa. Pri
                     * tome vršimo proveru da li je broj odabranih brojeva manji od 13 jer toliko brojeva može
                     * da stane u kvadrat za unos. Ukoliko korisnik proba da unese više prikazujemo mu odgovarajuće obaveštenje.
                     */

                    if (input.Length <= 13)
                    {
                        if (i == 9)
                        {
                            input += 0;
                        }
                        else if (i == 10)
                        {
                            input += ',';
                        }
                        else
                        {
                            input += (i + 1);
                        }

                        graph.DrawString(input[input.Length - 1].ToString(), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.Black, rectInput.X + numbersSpace, rectInput.Y + 6);
                        numbersSpace += 6;
                    }
                    else
                    {
                        MessageBox.Show("Maksimalan broj cifara je unet!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }

            /*
             * Ukoliko je kliknuto na dugme za konverziju vršimo upis konvertovane vrednosti u kvadrat za prikaz
             * izlaza pri tome proveravajući da polje za unos nije prazno. Ako jeste obaveštavamo korisnika da
             * mora uneti neki broj kako bi izvršio konverziju. Ukoliko je dužina konvertovane vrednosti duža od 13
             * upisujemo samo prvih 13 brojeva, ostatak odbacujemo (jer u kvadrat može da stane najviše 13 brojeva).
             * Takođe vršimo proveru da li broj zareza 0 (ako je ceo broj) ili 1 (ako je decimalni broj). Ako nije
             * obaveštavamo korisnika da mora uneti pravilan broj kako bi izvršili konverziju.
             */

            if (rectConvertButton.Contains(e.X, e.Y))
            {
                numberOfCommas = input.Count(x => x == ',');

                if (input != "" && (numberOfCommas == 1 || numberOfCommas == 0))
                {
                    graph.Clear(this.BackColor);
                    Draw(obj, eA);
                    numbersSpace = 3;

                    foreach (char c in input)
                    {
                        graph.DrawString(c.ToString(), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.Black, rectInput.X + numbersSpace, rectInput.Y + 6);
                        numbersSpace += 6;
                    }

                    if (radioButtonLength.Checked)
                    {
                        output = lC.Convert(Convert.ToDouble(input.Replace(',', '.'))).ToString();
                        graph.DrawString(output.Substring(0, output.Length <= 13 ? output.Length : 13).Replace('.', ','), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.Black, rectOutput.X + 3, rectOutput.Y + 6);
                    }
                    else
                    {
                        output = mC.Convert(Convert.ToDouble(input.Replace(',', '.'))).ToString();
                        graph.DrawString(output.Substring(0, output.Length <= 13 ? output.Length : 13).Replace('.', ','), new Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold), Brushes.Black, rectOutput.X + 3, rectOutput.Y + 6);
                    }
                }
                else
                {
                    MessageBox.Show("Morate uneti neki pravilan broj kako bi izvršili konverziju!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

            /*
             * Ako se klikne dugme C za "Clean" (čišćenje) dolazi do brisanja brojeva iz oba polja, radi
             * novog unosa brojeva iz početka.
             */

            if (cleanButton.Contains(e.X, e.Y))
            {
                graph.Clear(this.BackColor);
                Draw(obj, eA);
                numbersSpace = 3;
                input        = "";
            }
        }