Example #1
0
        public Measurement ConvertTo(Measurement measurement, ScaledUnitOfMeasure destinationUom)
        {
            var valueInBaseScale        = measurement.Amount * this.ConversionFactor;
            var valueInDestinationScale = valueInBaseScale / destinationUom.ConversionFactor;

            return(new Measurement(valueInDestinationScale, destinationUom.IsoCode));
        }
Example #2
0
        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);
        }
Example #3
0
        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");
        }
Example #7
0
        public decimal ConvertTo(ScaledUnitOfMeasure targetUnitOfMeasure, decimal amount)
        {
            var baseAmount = ConvertToBaseMeasurement(amount);

            return(baseAmount * targetUnitOfMeasure.ConversionFactor);
        }