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; }
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)); }
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)); }
/// <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); }