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); }
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 ¢"); }
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); }
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); }