Пример #1
0
        /// <summary>
        /// Convert the value to project units.
        /// </summary>
        /// <param name="value"></param>
        /// <param name="targetType"></param>
        /// <param name="parameter"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            DisplayUnitType displayUnit = getDisplayUnitTypeOfFormatUnits();

            var feet = (double)value;

            switch (displayUnit)
            {
            case DisplayUnitType.DUT_CENTIMETERS:
                return(Foot.ToDisplayString(feet, DynamoUnitDisplayType.Centimeters));

            case DisplayUnitType.DUT_MILLIMETERS:
                return(Foot.ToDisplayString(feet, DynamoUnitDisplayType.Millimeters));

            case DisplayUnitType.DUT_METERS:
                return(Foot.ToDisplayString(feet, DynamoUnitDisplayType.Meters));

            case DisplayUnitType.DUT_FRACTIONAL_INCHES:
                return(Foot.ToDisplayString(feet, DynamoUnitDisplayType.FractionalInches));

            case DisplayUnitType.DUT_FEET_FRACTIONAL_INCHES:
                return(Foot.ToDisplayString(feet, DynamoUnitDisplayType.FractionalFeetInches));

            case DisplayUnitType.DUT_DECIMAL_INCHES:
                return(Foot.ToDisplayString(feet, DynamoUnitDisplayType.DecimalInches));

            case DisplayUnitType.DUT_DECIMAL_FEET:
                return(Foot.ToDisplayString(feet, DynamoUnitDisplayType.DecimalFeet));
            }

            return(0.0);
        }
Пример #2
0
        public void MeasurementConversionsValidInput()
        {
            //feet tests
            Assert.AreEqual("1' 3\"", Foot.ToDisplayString(1.25, DynamoUnitDisplayType.FractionalFeetInches));
            Assert.AreEqual("15\"", Foot.ToDisplayString(1.25, DynamoUnitDisplayType.FractionalInches));
            Assert.AreEqual("1' 3\"", Utils.ToFeetAndFractionalInches(1.25));
            Assert.AreEqual("15\"", Utils.ToFractionalInches(1.25 * 12));
            Assert.AreEqual(1.25, Foot.FromDisplayString("1' 3\"", DynamoUnitDisplayType.FractionalFeetInches));
            Assert.AreEqual("1' 2\"", Foot.ToDisplayString(1.16667, DynamoUnitDisplayType.FractionalFeetInches));
            Assert.AreEqual("1' 2\"", Utils.ToFeetAndFractionalInches(1.16667));

            //inch tests
            Assert.AreEqual(string.Format("{0} cm", (30.48).ToString(CultureInfo.CurrentCulture)), Inch.ToDisplayString(12.0, DynamoUnitDisplayType.Centimeters));
            Assert.AreEqual(string.Format("{0} ft", (1.0).ToString("0.00", CultureInfo.CurrentCulture)), Inch.ToDisplayString(12.0, DynamoUnitDisplayType.DecimalFeet));
            Assert.AreEqual(string.Format("{0} in", (12.00).ToString("0.00", CultureInfo.CurrentCulture)), Inch.ToDisplayString(12.0, DynamoUnitDisplayType.DecimalInches));
            Assert.AreEqual("1' 0\"", Inch.ToDisplayString(12.0, DynamoUnitDisplayType.FractionalFeetInches));
            Assert.AreEqual("12\"", Inch.ToDisplayString(12.0, DynamoUnitDisplayType.FractionalInches));
            Assert.AreEqual(string.Format("{0} m", (0.30).ToString("0.00", CultureInfo.CurrentCulture)), Inch.ToDisplayString(12.0, DynamoUnitDisplayType.Meters));
            Assert.AreEqual(string.Format("{0} mm", (304.80).ToString("0.00", CultureInfo.CurrentCulture)), Inch.ToDisplayString(12.0, DynamoUnitDisplayType.Millimeters));
            Assert.AreEqual(14.5, Inch.FromDisplayString("1' 2 1/2\"", DynamoUnitDisplayType.FractionalInches), 0.0001);
            Assert.AreEqual(14.5, Inch.FromDisplayString("14 1/2\"", DynamoUnitDisplayType.FractionalInches), 0.0001);
        }