public void ErlDoubleTest() { var t = new ErlDouble(10.128d); Assert.IsTrue(t.Equals(new ErlDouble(10.128d))); Assert.AreEqual(1, t.CompareTo(new ErlDouble(-1.1))); Assert.AreEqual(t, new ErlDouble(10.128d)); Assert.AreEqual(0, t.CompareTo(new ErlDouble(10.128d))); Assert.IsTrue(10.128d == t); Assert.IsTrue(t == 10.128d); Assert.AreEqual(10.128d, t.Value); Assert.AreEqual(10, t.ValueAsInt); Assert.AreEqual(10, t.ValueAsLong); Assert.AreEqual(10.128d, t.ValueAsDouble); Assert.AreEqual("10.128", t.ToString()); Assert.AreEqual("1.1", new ErlDouble(1.1).ToString()); Assert.IsTrue(t.IsScalar); Assert.AreEqual(ErlTypeOrder.ErlDouble, t.TypeOrder); Assert.IsTrue(t.Matches(new ErlDouble(10.128d))); Assert.AreEqual(new ErlVarBind(), t.Match(new ErlDouble(10.128d))); Assert.DoesNotThrow(() => { var x = t.ValueAsObject; }); Assert.AreEqual(10, t.ValueAsInt); Assert.AreEqual(10, t.ValueAsLong); Assert.AreEqual(10.128d, t.ValueAsDecimal); Assert.DoesNotThrow(() => { var x = t.ValueAsDateTime; }); Assert.DoesNotThrow(() => { var x = t.ValueAsTimeSpan; }); Assert.AreEqual(10.128d, t.ValueAsDouble); Assert.AreEqual("10.128", t.ValueAsString); Assert.AreEqual(true, t.ValueAsBool); Assert.AreEqual(new DateTime(1970, 1, 1, 0, 0, 0) + new TimeSpan(10 * 10), t.ValueAsDateTime); Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsChar; }); Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsByteArray; }); IErlObject temp = null; Assert.IsFalse(t.Subst(ref temp, new ErlVarBind())); Assert.AreEqual(10.128d, t.Visit(0.0, (acc, o) => o.ValueAsDouble)); double n = t; // Implicit conversion Assert.AreEqual(10.128d, n); ErlDouble a = 10.128d; // Implicit conversion Assert.AreEqual(10.128d, a.Value); }
public void ErlDoubleTest() { var t = new ErlDouble(10.128d); Assert.IsTrue(t.Equals(new ErlDouble(10.128d))); Assert.AreEqual(1, t.CompareTo(new ErlDouble(-1.1))); Assert.AreEqual(t, new ErlDouble(10.128d)); Assert.AreEqual(0, t.CompareTo(new ErlDouble(10.128d))); Assert.IsTrue(10.128d == t); Assert.IsTrue(t == 10.128d); Assert.AreEqual(10.128d, t.Value); Assert.AreEqual(10, t.ValueAsInt); Assert.AreEqual(10, t.ValueAsLong); Assert.AreEqual(10.128d, t.ValueAsDouble); Assert.AreEqual("10.128", t.ToString()); Assert.AreEqual("1.1", new ErlDouble(1.1).ToString()); Assert.IsTrue(t.IsScalar); Assert.AreEqual(ErlTypeOrder.ErlDouble, t.TypeOrder); Assert.IsTrue(t.Matches(new ErlDouble(10.128d))); Assert.AreEqual(new ErlVarBind(), t.Match(new ErlDouble(10.128d))); Assert.DoesNotThrow(() => { var x = t.ValueAsObject; }); Assert.AreEqual(10, t.ValueAsInt); Assert.AreEqual(10, t.ValueAsLong); Assert.AreEqual(10.128d, t.ValueAsDecimal); Assert.DoesNotThrow(() => { var x = t.ValueAsDateTime; }); Assert.DoesNotThrow(() => { var x = t.ValueAsTimeSpan; }); Assert.AreEqual(10.128d, t.ValueAsDouble); Assert.AreEqual("10.128", t.ValueAsString); Assert.AreEqual(true, t.ValueAsBool); Assert.AreEqual(new DateTime(1970, 1, 1, 0, 0, 0) + new TimeSpan(10 * 10), t.ValueAsDateTime); Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsChar; }); Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsByteArray; }); IErlObject temp = null; Assert.IsFalse(t.Subst(ref temp, new ErlVarBind())); Assert.AreEqual(10.128d, t.Visit(0.0, (acc, o) => o.ValueAsDouble)); double n = t; // Implicit conversion Assert.AreEqual(10.128d, n); ErlDouble a = 10.128d; // Implicit conversion Assert.AreEqual(10.128d, a.Value); }