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); }
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.AssertJSONSer(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( 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", false, false); Assert.IsTrue(cbor != null); Assert.IsFalse(cbor.CanFitInDouble()); CBORTestCommon.AssertRoundTrip(cbor); }