public Measurement ConvertTo(Measurement measurement, ScaledUnitOfMeasure destinationUom) { var valueInBaseScale = measurement.Amount * this.ConversionFactor; var valueInDestinationScale = valueInBaseScale / destinationUom.ConversionFactor; return(new Measurement(valueInDestinationScale, destinationUom.IsoCode)); }
public void Convert_should_convert_amount_to_BaseUnitOfMeasure() { var sourceMeasurement = new ScaledUnitOfMeasure(_baseMeasurement, "Centimeter", "CM", 100); var result = sourceMeasurement.ConvertToBaseMeasurement(5000); result.Should().Be(50); }
public void Convert_should_convert_amount_to_a_smaller_unitOfMeasure() { var targetMeasurement = new ScaledUnitOfMeasure(_baseMeasurement, "Centimeter", "CM", 100); var sourceMeasurement = new ScaledUnitOfMeasure(_baseMeasurement, "Kilometer", "KM", 0.001M); var result = sourceMeasurement.ConvertTo(targetMeasurement, 5); result.Should().Be(500000); }
public void Convert_should_convert_measurement_to_baseUnitOfMeasure() { var title = "Kilogram"; var alternateTitle = "کیلوگرم"; var isoCode = "KG"; var baseIsoCode = "GR"; var conversionFactor = 1000M; var scaledUnitOfMeasure = new ScaledUnitOfMeasure(isoCode, title, alternateTitle, baseIsoCode, conversionFactor); var measurement = new Measurement(100, "KG"); var result = scaledUnitOfMeasure.ConvertToBase(measurement); result.Amount.Should().Be(100000); result.UnitOfMeasure.Should().Be(baseIsoCode); }
public void Convert_should_convert_measurement_to_scaledUnitOfMeasureXX() { var title = "Kilometer"; var alternateTitle = "کیلومتر"; var isoCode = "KM"; var baseIsoCode = "M"; var conversionFactor = 1000M; var kilometer = new ScaledUnitOfMeasure(isoCode, title, alternateTitle, baseIsoCode, conversionFactor); var centimeter = new ScaledUnitOfMeasure("CM", "Centimeter", "سانتی متر", baseIsoCode, 0.01M); var measurement = new Measurement(1, "KM"); var result = kilometer.ConvertTo(measurement, centimeter); result.Amount.Should().Be(100000); result.UnitOfMeasure.Should().Be("CM"); }
public void Convert_should_convert_measurement_to_scaledUnitOfMeasure() { var title = "Kilogram"; var alternateTitle = "کیلوگرم"; var isoCode = "KG"; var baseIsoCode = "GR"; var conversionFactor = 1000M; var kiloGram = new ScaledUnitOfMeasure(isoCode, title, alternateTitle, baseIsoCode, conversionFactor); var hundredKilogram = new ScaledUnitOfMeasure("HK", "Hundred Kilogram", "صد کیلوگرم", baseIsoCode, 100000); var measurement = new Measurement(700, "KG"); var result = kiloGram.ConvertTo(measurement, hundredKilogram); result.Amount.Should().Be(7); result.UnitOfMeasure.Should().Be("HK"); }
public decimal ConvertTo(ScaledUnitOfMeasure targetUnitOfMeasure, decimal amount) { var baseAmount = ConvertToBaseMeasurement(amount); return(baseAmount * targetUnitOfMeasure.ConversionFactor); }