コード例 #1
0
        public void CalculationPackage_Konstruktor_DobriParametri(double vrednost, VrstaProracuna vrsta)
        {
            CalculationPackage cp = new CalculationPackage(ispravanDatum, vrednost, vrsta);

            Assert.AreEqual(vrednost, cp.Rezultat);
            Assert.AreEqual(vrsta, cp.VrstaProracuna);
            Assert.AreEqual(ispravanDatum, cp.VremeProracuna);
        }
コード例 #2
0
 public CalculationPackage(DateTime datum, double vrednost, VrstaProracuna vrsta)
 {
     try
     {
         vremeProracuna = new DateTime(datum.Year, datum.Month, datum.Day, datum.Hour, datum.Minute, datum.Second);
         if (vrednost < 0)
         {
             throw new ArgumentOutOfRangeException("Vrednost merenja potrosnje manja od nule.");
         }
         rezultat = vrednost;
         if (vrsta != VrstaProracuna.MAKSIMALNI && vrsta != VrstaProracuna.MINIMALNI && vrsta != VrstaProracuna.PROSECNI && vrsta != VrstaProracuna.NEODREDJENI)
         {
             throw new ArgumentOutOfRangeException("Nepostojeca vrsta proracuna");
         }
         vrstaProracuna = vrsta;
     }
     catch (ArgumentOutOfRangeException e)
     {
         Console.WriteLine(e.Message);
         throw;
     }
 }
コード例 #3
0
 public void CalculationPackage_Konstruktor_NeispravnaVrsta(double vrednost, VrstaProracuna vrsta)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => {
         CalculationPackage cp = new CalculationPackage(ispravanDatum, vrednost, vrsta);
     });
 }
コード例 #4
0
        public void FromString(string s)
        {
            VrstaProracuna vp = new VrstaProracuna();

            string[] parseddata = s.Split('-');
            string[] vremeProracun = parseddata[0].Split('/');
            int      sekund = 0, minut = 0, sat = 0, dan = 0, mesec = 0, godina = 0;

            bool[] tryparsesuccess = new bool[6];
            try
            {
                tryparsesuccess[0] = Int32.TryParse(vremeProracun[0], out sekund);
                tryparsesuccess[1] = Int32.TryParse(vremeProracun[1], out minut);
                tryparsesuccess[2] = Int32.TryParse(vremeProracun[2], out sat);
                tryparsesuccess[3] = Int32.TryParse(vremeProracun[3], out dan);
                tryparsesuccess[4] = Int32.TryParse(vremeProracun[4], out mesec);
                tryparsesuccess[5] = Int32.TryParse(vremeProracun[5], out godina);
                foreach (var tp in tryparsesuccess)
                {
                    if (tp == false)
                    {
                        throw new ArgumentNullException("Nemoguca konverzija u datum");
                    }
                }
                if (sekund < 0 || sekund > 59 || minut < 0 || minut > 59 || sat < 0 || sat > 23 || dan < 1 || dan > 31 || mesec < 1 || mesec > 12 || godina < 1900 || godina > 2021)
                {
                    throw new ArgumentOutOfRangeException("Neispravne vrednosti parametara datuma");
                }
            }
            catch (ArgumentOutOfRangeException e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
            catch (ArgumentNullException ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
            DateTime vreme = new DateTime(godina, mesec, dan, sat, minut, sekund);

            vremeProracuna = vreme;
            string[] posV = parseddata[1].Split('/');
            try
            {
                tryparsesuccess[0] = Int32.TryParse(posV[0], out sekund);
                tryparsesuccess[1] = Int32.TryParse(posV[1], out minut);
                tryparsesuccess[2] = Int32.TryParse(posV[2], out sat);
                tryparsesuccess[3] = Int32.TryParse(posV[3], out dan);
                tryparsesuccess[4] = Int32.TryParse(posV[4], out mesec);
                tryparsesuccess[5] = Int32.TryParse(posV[5], out godina);
                foreach (var tp in tryparsesuccess)
                {
                    if (tp == false)
                    {
                        throw new ArgumentNullException("Nemoguca konverzija u datum");
                    }
                }
                if (sekund < 0 || sekund > 59 || minut < 0 || minut > 59 || sat < 0 || sat > 23 || dan < 1 || dan > 31 || mesec < 1 || mesec > 12 || godina < 1900 || godina > 2021)
                {
                    throw new ArgumentOutOfRangeException("Neispravne vrednosti parametara datuma");
                }
            }
            catch (ArgumentOutOfRangeException e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
            catch (ArgumentNullException ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
            vreme    = new DateTime(godina, mesec, dan, sat, minut, sekund);
            posVreme = vreme;
            try
            {
                if (parseddata[3] == "MINIMALNI")
                {
                    vp = VrstaProracuna.MINIMALNI;
                }
                else if (parseddata[3] == "MAKSIMALNI")
                {
                    vp = VrstaProracuna.MAKSIMALNI;
                }
                else if (parseddata[3] == "PROSECNI")
                {
                    vp = VrstaProracuna.PROSECNI;
                }
                else if (parseddata[3] == "NEODREDJENI")
                {
                    vp = VrstaProracuna.NEODREDJENI;
                }
                else
                {
                    throw new ArgumentOutOfRangeException("Nepostojeca vrsta merenja");
                }
            }
            catch (ArgumentOutOfRangeException e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
            vrstaProracuna = vp;
            if (Double.TryParse(parseddata[2], out rezultat) == false)
            {
                throw new ArgumentOutOfRangeException("Nemoguca konverzija");
            }
            if (rezultat < 0)
            {
                throw new ArgumentOutOfRangeException("Negativan rezultat merenja.");
            }
        }