public void TestMultiply() { try { ToCN(2).Multiply(null); Assert.Fail("Should have failed"); } catch (ArgumentNullException) { // NOTE: Intentionally empty } catch (Exception ex) { Assert.Fail(ex.ToString()); throw new InvalidOperationException(String.Empty, ex); } var r = new RandomGenerator(); for (var i = 0; i < 3000; ++i) { CBORObject o1 = CBORTestCommon.RandomNumber(r); CBORObject o2 = CBORTestCommon.RandomNumber(r); EDecimal cmpDecFrac = AsED(o1).Multiply(AsED(o2)); EDecimal cmpCobj = ToCN(o1).Multiply(ToCN(o2)).ToEDecimal(); if (!cmpDecFrac.Equals(cmpCobj)) { TestCommon.CompareTestEqual( cmpDecFrac, cmpCobj, o1.ToString() + "\n" + o2.ToString()); } CBORTestCommon.AssertRoundTrip(o1); CBORTestCommon.AssertRoundTrip(o2); } }
public void TestParseJSONNumber() { foreach (var str in BadJsonNumbers) { if (CBORDataUtilities.ParseJSONNumber(str) != null) { Assert.Fail(str); } if (CBORDataUtilities.ParseJSONNumber(str, false, false, true) != null) { Assert.Fail(str); } if (CBORDataUtilities.ParseJSONNumber(str, false, false, false) != null) { Assert.Fail(str); } } CBORObject cbor = CBORDataUtilities.ParseJSONNumber("2e-2147483648"); CBORTestCommon.AssertJSONSer(cbor, "2E-2147483648"); foreach (var str in GoodJsonNumbers) { if (CBORDataUtilities.ParseJSONNumber(str) == null) { Assert.Fail(str); } if (CBORDataUtilities.ParseJSONNumber(str, false, false, true) == null) { Assert.Fail(str); } if (CBORDataUtilities.ParseJSONNumber(str, false, false, false) == null) { Assert.Fail(str); } } TestCommon.CompareTestEqual( ToObjectTest.TestToFromObjectRoundTrip(230).AsNumber(), CBORDataUtilities.ParseJSONNumber("23.0e01").AsNumber()); TestCommon.CompareTestEqual( ToObjectTest.TestToFromObjectRoundTrip(23).AsNumber(), CBORDataUtilities.ParseJSONNumber("23.0e00").AsNumber()); cbor = CBORDataUtilities.ParseJSONNumber( "1e+99999999999999999999999999"); Assert.IsTrue(cbor != null); Assert.IsFalse(cbor.AsNumber().CanFitInDouble()); CBORTestCommon.AssertRoundTrip(cbor); }
private static void AssertNegative(CBORObject obj) { Assert.IsTrue(obj.AsNumber().IsNegative()); CBORTestCommon.AssertRoundTrip(obj); }
private void AssertNegative(CBORObject obj) { Assert.IsTrue(obj.IsNegative); CBORTestCommon.AssertRoundTrip(obj); }
public void TestParseJSONNumber() { if (CBORDataUtilities.ParseJSONNumber("100.", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-100.", false, false) != null) { Assert.Fail(); } if ( CBORDataUtilities.ParseJSONNumber( "100.e+20", false, false) != null) { Assert.Fail(); } if ( CBORDataUtilities.ParseJSONNumber( "-100.e20", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("100.e20", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("+0.1", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-0.", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0g.1", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.e+20", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-0.e20", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.e20", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber(null, false, false) != null) { Assert.Fail(); } if ( CBORDataUtilities.ParseJSONNumber( String.Empty, false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("xyz", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("true", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber(".1", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0..1", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0xyz", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.1xyz", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.xyz", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.5exyz", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.5q+88", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.5ee88", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-5e") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-5e-2x") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-5e+2x") != null) { Assert.Fail(); } CBORObject cbor = CBORDataUtilities.ParseJSONNumber("2e-2147483648"); CBORTestCommon.AssertSer(cbor, "2E-2147483648"); if ( CBORDataUtilities.ParseJSONNumber( "0.5e+xyz", false, false) != null) { Assert.Fail(); } if ( CBORDataUtilities.ParseJSONNumber( "0.5e+88xyz", false, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0000") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0x1") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0xf") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0x20") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0x01") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber(".2") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber(".05") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-.2") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-.05") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("23.") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("23.e0") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("23.e1") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("0.") != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("5.2", true, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("5e+1", true, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-5.2", true, false) != null) { Assert.Fail(); } if (CBORDataUtilities.ParseJSONNumber("-5e+1", true, false) != null) { Assert.Fail(); } TestCommon.CompareTestEqual( CBORObject.FromObject(230), CBORDataUtilities.ParseJSONNumber("23.0e01")); TestCommon.CompareTestEqual( CBORObject.FromObject(23), CBORDataUtilities.ParseJSONNumber("23.0e00")); cbor = CBORDataUtilities.ParseJSONNumber( "1e+99999999999999999999999999", false, false); Assert.IsTrue(cbor != null); Assert.IsFalse(cbor.CanFitInDouble()); CBORTestCommon.AssertRoundTrip(cbor); }