Esempio n. 1
0
        public String CalculatePriceInEuroForEnergiConsumed()
        {
            BaseUnit        Euro           = null;
            ConvertibleUnit Cent           = null;
            UnitSystem      EuroUnitSystem = new UnitSystem("Euros", Prefixes.UnitPrefixes,
                                                            (us) => { Euro = new BaseUnit(us, (SByte)MonetaryBaseUnitKind.Currency, "Euro", "€"); return(new BaseUnit[] { Euro }); },
                                                            null,
                                                            (us) => { Cent = new ConvertibleUnit("Euro-cent", "¢", us.BaseUnits[0], new ScaledValueConversion(100)); return(new ConvertibleUnit[] { Cent }); /* [¢] = 100 * [€] */
                                                            });
            Unit EurosAndCents = new MixedUnit(Euro, " ", Cent, "00", true);

            Unit kWh = Prefixes.k * W * SI.h; // Kilo Watt hour

            Quantity EnergyUnitPrice = 31.75 * Cent / kWh;

            Quantity EnergyConsumed = 1234.56 * kWh;

            Quantity PriceEnergyConsumed = EnergyConsumed * EnergyUnitPrice;

            Quantity PriceEnergyConsumedEurosAndCents = PriceEnergyConsumed.ConvertTo(EurosAndCents);

            Double PriceInEuroForEnergyConsumed = PriceEnergyConsumed.ConvertTo(Euro).Value;

            String PriceInEuroForEnergyConsumedStr = PriceEnergyConsumedEurosAndCents.ToString();

            Debug.Assert(PriceInEuroForEnergyConsumed == 31.75 / 100 * 1234.56);
            Debug.Assert(PriceInEuroForEnergyConsumedStr == "391 € 97 ¢");

            return(PriceInEuroForEnergyConsumedStr);
        }
Esempio n. 2
0
        public void StaticsTest_CalculatePriceInEuroForEnergiConsumed()
        {
            // using static PhysicalMeasure.SI;
            // using static Prefix;

            BaseUnit        Euro = new BaseUnit(null, (SByte)MonetaryBaseQuantityKind.Currency, "Euro", "€");
            ConvertibleUnit Cent = new ConvertibleUnit("Euro-cent", "¢", Euro, new ScaledValueConversion(100));  /* [¢] = 100 * [€] */

            UnitSystem EuroUnitSystem = new UnitSystem("Euros", Physics.UnitPrefixes, Euro, null, new ConvertibleUnit[] { Cent });

            Unit EurosAndCents = new MixedUnit(Euro, " ", Cent, "00", true);

            Unit kWh = Prefix.k * W * SI.h; // Kilo Watt hour

            Quantity EnergyUnitPrice = 31.75 * Cent / kWh;

            Quantity EnergyConsumed = 1234.56 * kWh;

            Quantity PriceEnergyConsumed = EnergyConsumed * EnergyUnitPrice;

            Quantity PriceEnergyConsumedEurosAndCents = PriceEnergyConsumed.ConvertTo(EurosAndCents);

            Double PriceInEuroForEnergyConsumed = PriceEnergyConsumed.ConvertTo(Euro).Value;

            String PriceInEuroForEnergyConsumedStr = PriceEnergyConsumedEurosAndCents.ToString();

            Assert.AreEqual(PriceInEuroForEnergyConsumed, 31.75 / 100 * 1234.56);
            Assert.AreEqual(PriceInEuroForEnergyConsumedStr, "391 € 97 ¢");
        }
Esempio n. 3
0
        public void MixedUnitBaseUnitStringTest()
        {
            IUnit HourMin = new MixedUnit((Unit)Physics.SI_Units["h"], ":", (Unit)Physics.MGD_Units["min"]);

            String expected = "3600 s";

            String actual = HourMin.ConvertToBaseUnit().ToString();

            Assert.AreEqual(expected, actual);
        }
Esempio n. 4
0
        public void MixedUnitTestParseString_DHMinS()
        {
            String MixedUnitStr = "d:h:min:s";

            //Unit expected = new MixedUnit((Unit)Physics.MGD_Units.UnitFromSymbol("d"), ":" , new MixedUnit((Unit)SI.Units.UnitFromSymbol("h"), ":" , new MixedUnit((Unit)Physics.MGD_Units.UnitFromSymbol("min"), ":" , SI.s)));
            Unit expected = new MixedUnit((Unit)SI.Units.UnitFromSymbol("d"), ":", new MixedUnit((Unit)SI.Units.UnitFromSymbol("h"), ":", new MixedUnit((Unit)SI.Units.UnitFromSymbol("min"), ":", SI.s)));

            Unit actual = Unit.Parse(MixedUnitStr);

            Assert.IsNotNull(actual);
            Assert.IsInstanceOfType(actual, typeof(MixedUnit));
            Assert.AreEqual(expected, actual);
        }