//Parametri prosleđeni u okviru [TestCase] dekoratora prihvataju se u potpisu same metode
        //U ovom primeru, parametar sa vrednošću 4.5351473922902494d biće smešten u promenljivu expectedValue, dok će parametar sa vrednošću 10 biti smešten u promenljivu input
        //Suština parametrizovanih testova je korišćenje tih parametara u daljem telu testne metode
        //S obzirom na to da ova testna metoda void, ovaj tip parametrizovanih testova je bez povratne vrednosti
        public void Convert_Success_Params(int input, double expectedValue)
        {
            MassConverter mass   = new MassConverter();
            double        result = mass.Convert(input); //Umesto prosleđenog broja (kao u prvom testu u okviru ove klase), prosleđuje se promenljiva dobijena kroz potpis metode

            Assert.AreEqual(expectedValue, result);     //Koriščenje klase Assert i neke od njenih metoda jer je reč o parametrizovanim testovima bez povratne vrednosti
        }
        public void Convert_Success()
        {
            MassConverter mass   = new MassConverter();   //Za testiranje metode Convert iz klase MassConvertor, potreban je objekat te klase s obzirom na to da metoda nije statička
            double        result = mass.Convert(10);      //Metodi Convert prosleđuje se proizvoljan broj (u ovom primeru će biti broj 10)

            Assert.AreEqual(4.5351473922902494d, result); //Klasa Assert omogućava pozivanje velikog broja statičkih metoda koje služe za testiranje. Metoda AreEqual prima dva parametra: očekivanu vrednost i stvarnu vrednost (dobijenu pozivom funkcije Convert).
        }
        [TestCase(0, 0)]                    // jos jedan test case omogucava nam da pozivamo dva razlicita testa nad istom jednom metodom!
        public void Convert_TestSuccessParams(int input, double result)
        {
            MassConverter mass  = new MassConverter();
            double        value = mass.Convert(input);

            Assert.AreEqual(result, value);
        }
        // Testovi ce biti metode koje testiraju metode iz samog core projekta
        // najosnovniji testovi ce biti bez return statmenta tj bice void
        // naziv testa treba da bude jasan za onoga koji nije pisao program
        public void Convert_TestSuccess()
        {
            MassConverter mass   = new MassConverter();
            double        result = mass.Convert(10);

            Assert.AreEqual(4.5351473922902494d, result);
        }
        public void Convert_ExpectedFormatException()
        {
            MassConverter mass = new MassConverter();

            //Metoda Throws klase Assert, zahteva da se definiše tip Exceptiona koji se očekuje. U slučaju ovog primera, to je System.Format Exception.
            //Throws metoda sastoji se iz dva dela: preambule - koja u ovom primeru predstavlja prazne zagrade pre strelice (=>) i u preambuli se mogu pozivati metode ili setovati promenljive koje će kasnije uticati na samo hvatanje Exceptiona
            //Drugi deo Throws metode (sa desne strane strelice - =>) obuhvata poziv metode koja treba da podigne Exception. U ovom primeru, to je poziv metode Convert i prosleđivanje slova kao inputa metode
            Assert.Throws <System.FormatException>(() => mass.Convert(double.Parse("s")));
        }
示例#6
0
    public void MassConverter_Convert()
    {
        decimal result = MassConverter.Convert(MassUnit.Ounce, MassUnit.Pound, 12);

        Assert.AreEqual(0.75m, result);

        result = MassConverter.Convert(MassUnit.Pound, MassUnit.Ounce, 0.75m);
        Assert.AreEqual(12m, result);

        result = MassConverter.Convert(MassUnit.Kilogram, MassUnit.Pound, 1);
        Assert.AreEqual(2.2046226218487758072297380135m, result);

        result = MassConverter.Convert(MassUnit.Ton, MassUnit.Pound, 1);
        Assert.AreEqual(2_000m, result);
    }
示例#7
0
        /// <summary>Convert the numbers to the new unit.</summary>
        /// <param name="numbers">The numbers used in the convertion.</param>
        /// <returns>The result of the convertion execution.</returns>
        /// <exception cref="ArgumentNullException">When numbers is null.</exception>
        /// <exception cref="ArgumentException">When the length of numbers do not equal <see cref="ArgumentCount"/>.</exception>
        public double Convert(double[] numbers)
        {
            base.Validate(numbers);
            double fromValue = numbers[0];

            switch (current.UnitType)
            {
            case UnitType.Length:
                return(LengthConverter.Convert(
                           (LengthUnit)current.FromUnit,
                           (LengthUnit)current.ToUnit,
                           fromValue));

            case UnitType.Mass:
                return(MassConverter.Convert(
                           (MassUnit)current.FromUnit,
                           (MassUnit)current.ToUnit,
                           fromValue));

            case UnitType.Speed:
                return(SpeedConverter.Convert(
                           (SpeedUnit)current.FromUnit,
                           (SpeedUnit)current.ToUnit,
                           fromValue));

            case UnitType.Temperature:
                return(TemperatureConverter.Convert(
                           (TemperatureUnit)current.FromUnit,
                           (TemperatureUnit)current.ToUnit,
                           fromValue));

            case UnitType.Time:
                return(TimeConverter.Convert(
                           (TimeUnit)current.FromUnit,
                           (TimeUnit)current.ToUnit,
                           fromValue));

            case UnitType.Volume:
                return(VolumeConverter.Convert(
                           (VolumeUnit)current.FromUnit,
                           (VolumeUnit)current.ToUnit,
                           fromValue));

            default:
                throw new ArgumentOutOfRangeException("numbers");
            }
        }
示例#8
0
        public void Convert()
        {
            double result = MassConverter.Convert(
                MassUnit.Ounce, MassUnit.Pound, 12);

            Assert.AreEqual(0.75, result);

            result = MassConverter.Convert(
                MassUnit.Pound, MassUnit.Ounce, 0.75);
            Assert.AreEqual(12, result);

            result = MassConverter.Convert(
                MassUnit.Kilogram, MassUnit.Pound, 1);
            Assert.AreEqual(2.2046226218487757d, result);

            result = MassConverter.Convert(
                MassUnit.Ton, MassUnit.Pound, 1);
            Assert.AreEqual(2000d, result);
        }
    /// <summary>
    /// Calculate the Intensity of Gravity at the Surface of the object
    /// I = (G*M)/(r^2)
    /// </summary>
    /// <param name="massOfObject">The mass of the object</param>
    /// <param name="radiusOfObject">The radius of the object</param>
    /// <returns></returns>
    public static ExponentialNotation IntensityAtSurface(ExponentialNotation massOfObject, ExponentialNotation radiusOfObject)
    {
        ExponentialNotation intensity = null;

        //Calculate the numerator: Graviational Constant * Mass (in kg)
        ExponentialNotation massOfObjectInKilograms = MassConverter.Convert(massOfObject, SIUnit.Kilograms);

        intensity = GravitationalConstantOfTheUniverse * massOfObjectInKilograms;

        //Square the radius
        ExponentialNotation radiusOfObjectInMeters = DistanceConverter.Convert(radiusOfObject, SIUnit.Meters);

        radiusOfObjectInMeters = radiusOfObjectInMeters * radiusOfObjectInMeters;

        //Divide the numerator by the radius squared
        intensity = intensity / radiusOfObjectInMeters;
        intensity.MeasurementUnits = SIUnit.MetersCubed_PerSecondsSquared_PerKilograms;
        //I = (G*M)/(r^2)
        return(intensity);
    }
示例#10
0
    /// <summary>Convert the numbers to the new unit.</summary>
    /// <param name="numbers">The numbers used in the conversion.</param>
    /// <returns>The result of the conversion execution.</returns>
    /// <exception cref="ArgumentNullException">When numbers is null.</exception>
    /// <exception cref="ArgumentException">When the length of numbers do not equal <see cref="ArgumentCount"/>.</exception>
    public PreciseNumber Evaluate(PreciseNumber[] operands)
    {
        ((IExpression)this).Validate(operands);

        PreciseNumber fromValue = operands[0];

        if (!fromValue.HasValue)
        {
            return(fromValue);
        }

        return(_current.UnitType switch
        {
            UnitType.Length => new PreciseNumber(LengthConverter.Convert((LengthUnit)_current.FromUnit, (LengthUnit)_current.ToUnit, fromValue.Value)),
            UnitType.Mass => new PreciseNumber(MassConverter.Convert((MassUnit)_current.FromUnit, (MassUnit)_current.ToUnit, fromValue.Value)),
            UnitType.Speed => new PreciseNumber(SpeedConverter.Convert((SpeedUnit)_current.FromUnit, (SpeedUnit)_current.ToUnit, fromValue.Value)),
            UnitType.Temperature => new PreciseNumber(TemperatureConverter.Convert((TemperatureUnit)_current.FromUnit, (TemperatureUnit)_current.ToUnit, fromValue.Value)),
            UnitType.Time => new PreciseNumber(TimeConverter.Convert((TimeUnit)_current.FromUnit, (TimeUnit)_current.ToUnit, fromValue.Value)),
            UnitType.Volume => new PreciseNumber(VolumeConverter.Convert((VolumeUnit)_current.FromUnit, (VolumeUnit)_current.ToUnit, fromValue.Value)),
            _ => throw new ArgumentOutOfRangeException(nameof(operands)),
        });
示例#11
0
        public void ConvertToSame()
        {
            var value = conv.Convert(12, MassUnits.Kilograms, MassUnits.Kilograms);

            Assert.Equal(12, value);
        }
        public double Convert_Success_ParamsWithReturnStatement(int input)
        {
            MassConverter mass = new MassConverter();

            return(mass.Convert(input)); //Povratna vrednost koja mora biti identična vrednosti u okviru property-a ExpectedResult da bi test prošao
        }
示例#13
0
        private void Convert(double value)
        {
            switch (SelectedOp)
            {
            case "Length":
            {
                LengthunitConverter unit = new LengthunitConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Mass and Weight":
            {
                MassConverter unit = new MassConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Power":
            {
                PowerConverter unit = new PowerConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Pressure":
            {
                PressureConverter unit = new PressureConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Energy":
            {
                EnergyConveter unit = new EnergyConveter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Temperature":
            {
                TemperatureConverter unit = new TemperatureConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Volume":
            {
                VolumeConverter unit = new VolumeConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Angle":
            {
                AngleConverter unit = new AngleConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Area":
            {
                AreaConverter unit = new AreaConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Speed":
            {
                SpeedConverter unit = new SpeedConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }

            case "Time":
            {
                TimeunitsConverter unit = new TimeunitsConverter();
                Result = unit.Convert(value, SelectedFrom, SelectedTo).ToString();
                break;
            }
            }
        }
        [TestCase(0, 0)] // opet za jednu metodu moze isto vise testova
        public double Convert_TestSuccessParamsWithReturnStatment(int input)
        {
            MassConverter mass = new MassConverter();

            return(mass.Convert(input));
        }
        public void Convert_CatchException()
        {
            MassConverter mass = new MassConverter();

            Assert.Throws <System.FormatException>(() => mass.Convert(double.Parse(""))); // prvi deo metode preambula deo uslov koji sprecava omogucavnanje metode
        }  // primer passovanja nule ili range izvan double tipa