public void From_ValueAndUnit_ReturnsQuantityWithSameValueAndUnit()
        {
            var quantity00 = CatalyticActivity.From(1, CatalyticActivityUnit.Katal);

            AssertEx.EqualTolerance(1, quantity00.Katals, KatalsTolerance);
            Assert.Equal(CatalyticActivityUnit.Katal, quantity00.Unit);
        }
        public void Equals_RelativeTolerance_IsImplemented()
        {
            var v = CatalyticActivity.FromKatals(1);

            Assert.True(v.Equals(CatalyticActivity.FromKatals(1), KatalsTolerance, ComparisonType.Relative));
            Assert.False(v.Equals(CatalyticActivity.Zero, KatalsTolerance, ComparisonType.Relative));
        }
        public void DefaultCtor_ReturnsQuantityWithZeroValueAndBaseUnit()
        {
            var quantity = new CatalyticActivity();

            Assert.Equal(0, quantity.Value);
            Assert.Equal(CatalyticActivityUnit.Katal, quantity.Unit);
        }
        public void Equals_SameType_IsImplemented()
        {
            var a = CatalyticActivity.FromKatals(1);
            var b = CatalyticActivity.FromKatals(2);

            Assert.True(a.Equals(a));
            Assert.False(a.Equals(b));
        }
        public void CompareToIsImplemented()
        {
            CatalyticActivity katal = CatalyticActivity.FromKatals(1);

            Assert.Equal(0, katal.CompareTo(katal));
            Assert.True(katal.CompareTo(CatalyticActivity.Zero) > 0);
            Assert.True(CatalyticActivity.Zero.CompareTo(katal) < 0);
        }
        public void Equals_QuantityAsObject_IsImplemented()
        {
            object a = CatalyticActivity.FromKatals(1);
            object b = CatalyticActivity.FromKatals(2);

            Assert.True(a.Equals(a));
            Assert.False(a.Equals(b));
            Assert.False(a.Equals((object)null));
        }
        public void ToUnit()
        {
            var katal = CatalyticActivity.FromKatals(1);

            var katalQuantity = katal.ToUnit(CatalyticActivityUnit.Katal);

            AssertEx.EqualTolerance(KatalsInOneKatal, (double)katalQuantity.Value, KatalsTolerance);
            Assert.Equal(CatalyticActivityUnit.Katal, katalQuantity.Unit);
        }
        public void ArithmeticOperators()
        {
            CatalyticActivity v = CatalyticActivity.FromKatals(1);

            AssertEx.EqualTolerance(-1, -v.Katals, KatalsTolerance);
            AssertEx.EqualTolerance(2, (CatalyticActivity.FromKatals(3) - v).Katals, KatalsTolerance);
            AssertEx.EqualTolerance(2, (v + v).Katals, KatalsTolerance);
            AssertEx.EqualTolerance(10, (v * 10).Katals, KatalsTolerance);
            AssertEx.EqualTolerance(10, (10 * v).Katals, KatalsTolerance);
            AssertEx.EqualTolerance(2, (CatalyticActivity.FromKatals(10) / 5).Katals, KatalsTolerance);
            AssertEx.EqualTolerance(2, CatalyticActivity.FromKatals(10) / CatalyticActivity.FromKatals(5), KatalsTolerance);
        }
        public void ComparisonOperators()
        {
            CatalyticActivity oneKatal  = CatalyticActivity.FromKatals(1);
            CatalyticActivity twoKatals = CatalyticActivity.FromKatals(2);

            Assert.True(oneKatal < twoKatals);
            Assert.True(oneKatal <= twoKatals);
            Assert.True(twoKatals > oneKatal);
            Assert.True(twoKatals >= oneKatal);

            Assert.False(oneKatal > twoKatals);
            Assert.False(oneKatal >= twoKatals);
            Assert.False(twoKatals < oneKatal);
            Assert.False(twoKatals <= oneKatal);
        }
        public void EqualityOperators()
        {
            var a = CatalyticActivity.FromKatals(1);
            var b = CatalyticActivity.FromKatals(2);

            // ReSharper disable EqualExpressionComparison

            Assert.True(a == a);
            Assert.False(a != a);

            Assert.True(a != b);
            Assert.False(a == b);

            Assert.False(a == null);
            Assert.False(null == a);

// ReSharper restore EqualExpressionComparison
        }
        public void CatalyticActivity_QuantityInfo_ReturnsQuantityInfoDescribingQuantity()
        {
            var quantity = new CatalyticActivity(1, CatalyticActivityUnit.Katal);

            QuantityInfo <CatalyticActivityUnit> quantityInfo = quantity.QuantityInfo;

            Assert.Equal(CatalyticActivity.Zero, quantityInfo.Zero);
            Assert.Equal("CatalyticActivity", quantityInfo.Name);
            Assert.Equal(QuantityType.CatalyticActivity, quantityInfo.QuantityType);

            var units     = EnumUtils.GetEnumValues <CatalyticActivityUnit>().Except(new[] { CatalyticActivityUnit.Undefined }).ToArray();
            var unitNames = units.Select(x => x.ToString());

            // Obsolete members
#pragma warning disable 618
            Assert.Equal(units, quantityInfo.Units);
            Assert.Equal(unitNames, quantityInfo.UnitNames);
#pragma warning restore 618
        }
        public void Convert_ChangeType_BaseDimensions_EqualsBaseDimensions()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal(CatalyticActivity.BaseDimensions, Convert.ChangeType(quantity, typeof(BaseDimensions)));
        }
        public void ToString_NullProvider_EqualsCurrentUICulture()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal(quantity.ToString(CultureInfo.CurrentUICulture, "g"), quantity.ToString(null, "g"));
        }
        public void Convert_ChangeType_UnitType_EqualsUnit()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal(quantity.Unit, Convert.ChangeType(quantity, typeof(CatalyticActivityUnit)));
        }
        public void Convert_ChangeType_QuantityType_EqualsQuantityType()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal(QuantityType.CatalyticActivity, Convert.ChangeType(quantity, typeof(QuantityType)));
        }
        public void Convert_ToUInt64_EqualsValueAsSameType()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal((ulong)quantity.Value, Convert.ToUInt64(quantity));
        }
        public void Convert_ChangeType_SelfType_EqualsSelf()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal(quantity, Convert.ChangeType(quantity, typeof(CatalyticActivity)));
        }
 protected void SetScalarValue(DependencyProperty property, CatalyticActivity? quantity)
 {
     // we set this flag to prevent from setting scalar value changing quantity values.
     this.isUpdatingScalarValue = true;
     var value = quantity != null
         ? this.Unit.GetScalarValue(quantity.Value)
         : (double?)null;
     this.SetCurrentValue(property, value);
     this.isUpdatingScalarValue = false;
 }
        public void Convert_ToString_EqualsToString()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal(quantity.ToString(), Convert.ToString(quantity));
        }
 /// <summary>
 /// Initializes a new instance of <see cref="Gu.Units.Wpf.CatalyticActivityExtension"/>.
 /// </summary>
 /// <param name="value"><see cref="Gu.Units.CatalyticActivity"/>.</param>
 public CatalyticActivityExtension(CatalyticActivity value)
 {
     this.Value = value;
 }
Esempio n. 21
0
 public static CatalyticActivity Katals <T>(this T value) =>
 CatalyticActivity.FromKatals(Convert.ToDouble(value));
        public void NegationOperator_ReturnsQuantity_WithNegatedValue(double value)
        {
            var quantity = CatalyticActivity.FromKatals(value);

            Assert.Equal(CatalyticActivity.FromKatals(-value), -quantity);
        }
        public void Convert_ChangeType_InvalidType_ThrowsInvalidCastException()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Throws <InvalidCastException>(() => Convert.ChangeType(quantity, typeof(QuantityFormatter)));
        }
        public void ToString_NullArgs_ThrowsArgumentNullException()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Throws <ArgumentNullException>(() => quantity.ToString(null, "g", null));
        }
        public void GetHashCode_Equals()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal(new { CatalyticActivity.QuantityType, quantity.Value, quantity.Unit }.GetHashCode(), quantity.GetHashCode());
        }
        public void Convert_ToDateTime_ThrowsInvalidCastException()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Throws <InvalidCastException>(() => Convert.ToDateTime(quantity));
        }
        public void Convert_ToDecimal_EqualsValueAsSameType()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal((decimal)quantity.Value, Convert.ToDecimal(quantity));
        }
        public void Convert_ToInt32_EqualsValueAsSameType()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal((int)quantity.Value, Convert.ToInt32(quantity));
        }
Esempio n. 29
0
        public override object ReadJson(JsonReader reader, Type objectType, object?existingValue, JsonSerializer serializer)
        {
            var stringValue = (string)reader.Value !;

            return(CatalyticActivity.Parse(stringValue, serializer.Culture));
        }
        public void Convert_ToSingle_EqualsValueAsSameType()
        {
            var quantity = CatalyticActivity.FromKatals(1.0);

            Assert.Equal((float)quantity.Value, Convert.ToSingle(quantity));
        }
Esempio n. 31
0
        /// <inheritdoc />
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (!this.initialized)
            {
                this.Initialize();
            }

            var message = this.errorText.ToString();

            if (!(targetType == typeof(CatalyticActivity) || targetType == typeof(CatalyticActivity?)))
            {
                message += $"{this.GetType().Name} does not support converting to {targetType.Name}";
            }

            if (message != string.Empty)
            {
                message = message.TrimEnd('\r', '\n');
                if (Is.DesignMode)
                {
                    throw new InvalidOperationException(message);
                }

                return(message);
            }

            if (value == null)
            {
                return(null);
            }

            if (value is double)
            {
                return(new CatalyticActivity((double)value, this.unit.Value));
            }

            var text = value as string;

            if (string.IsNullOrEmpty(text))
            {
                return(null);
            }

            var unitInput = this.UnitInput ?? Wpf.UnitInput.ScalarOnly;

            switch (unitInput)
            {
            case Wpf.UnitInput.ScalarOnly:
            {
                double d;
                if (double.TryParse(text, NumberStyles.Float, culture, out d))
                {
                    return(new CatalyticActivity(d, this.unit.Value));
                }

                CatalyticActivity result;
                if (CatalyticActivity.TryParse(text, NumberStyles.Float, culture, out result))
                {
                    return($"#{text}#");        // returning modified text so that TypeConverter fails and we get an error
                }

                return(text);        // returning raw to trigger error
            }

            case Wpf.UnitInput.SymbolAllowed:
            {
                double d;
                int    pos = 0;
                WhiteSpaceReader.TryRead(text, ref pos);
                if (DoubleReader.TryRead(text, ref pos, NumberStyles.Float, culture, out d))
                {
                    WhiteSpaceReader.TryRead(text, ref pos);
                    if (pos == text.Length)
                    {
                        return(new CatalyticActivity(d, this.unit.Value));
                    }
                }

                goto case Wpf.UnitInput.SymbolRequired;
            }

            case Wpf.UnitInput.SymbolRequired:
            {
                CatalyticActivity result;
                if (CatalyticActivity.TryParse(text, NumberStyles.Float, culture, out result))
                {
                    return(result);
                }

                return(text);
            }

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
 protected virtual void OnMaxValueChanged(CatalyticActivity? oldValue, CatalyticActivity? newValue)
 {
     this.SetScalarValue(ScalarMaxValueProperty, newValue);
 }