| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506 |
- #include "isValidNumber.h"
- #include "Resources/validyMacros.h"
- #include "../../Source/JSONValidator.h"
- /*
- *
- * !!! ATTENTION !!!
- *
- * libjson currently has three number parsing methods, they are being merged
- * behind the scenes, but all three interfaces must be consistent, so every set
- * of numbers need to be tested in all three spots
- *
- * JSONValidator/isValidNumber *this file*
- * NumberToString/isNumeric
- * * Soon to come actual parser *
- */
- /**
- * Tests regular positive numbers in various forms
- */
- void testJSONValidator__isValidNumber::testPositive(void){
- #ifdef JSON_VALIDATE
- assertValid("123,\"next\"", isValidNumber, ',');
- assertValid("12.3,\"next\"", isValidNumber, ',');
- assertValid("0.123,\"next\"", isValidNumber, ',');
- assertValid("0,\"next\"", isValidNumber, ',');
- assertValid("0.,\"next\"", isValidNumber, ',');
- assertValid("1.,\"next\"", isValidNumber, ',');
- assertValid("1,\"next\"", isValidNumber, ',');
- assertValid("0.0,\"next\"", isValidNumber, ',');
- assertValid("1.0,\"next\"", isValidNumber, ',');
- assertValid("1.01,\"next\"", isValidNumber, ',');
- //signed positives are legal when not in strict mode, this is tested below
- #endif
- }
- /**
- * Tests regular negative numbers in various forms
- */
- void testJSONValidator__isValidNumber::testNegative(void){
- #ifdef JSON_VALIDATE
- assertValid("-123,\"next\"", isValidNumber, ',');
- assertValid("-12.3,\"next\"", isValidNumber, ',');
- assertValid("-0.123,\"next\"", isValidNumber, ',');
- assertValid("-0,\"next\"", isValidNumber, ',');
- assertValid("-0.,\"next\"", isValidNumber, ',');
- assertValid("-1,\"next\"", isValidNumber, ',');
- assertValid("-1.,\"next\"", isValidNumber, ',');
- assertValid("-0.0,\"next\"", isValidNumber, ',');
- assertValid("-1.0,\"next\"", isValidNumber, ',');
- assertValid("-1.01,\"next\"", isValidNumber, ',');
- #endif
- }
- /**
- * Tests positive numbers with regular scientific notation
- */
- void testJSONValidator__isValidNumber::testPositive_ScientificNotation(void){
- #ifdef JSON_VALIDATE
- assertValid("0e123,\"next\"", isValidNumber, ','); //TODO is 0e... a valid scientific number? its always zero
- assertNotValid("0e12.3,\"next\"", isValidNumber, ',');
- assertValid("1.e123,\"next\"", isValidNumber, ',');
- assertNotValid("1.e12.3,\"next\"", isValidNumber, ',');
- assertValid("1.0e123,\"next\"", isValidNumber, ',');
- assertNotValid("1.0e12.3,\"next\"", isValidNumber, ',');
-
- assertValid("0e2,\"next\"", isValidNumber, ',');
- assertValid("1e2,\"next\"", isValidNumber, ',');
- assertValid("0.e2,\"next\"", isValidNumber, ',');
- assertValid("1.e2,\"next\"", isValidNumber, ',');
- assertValid("0.0e2,\"next\"", isValidNumber, ',');
- assertValid("1.0e2,\"next\"", isValidNumber, ',');
- #endif
- }
- /**
- * Tests negative numbers with regular scientifc notation
- */
- void testJSONValidator__isValidNumber::testNegative_ScientificNotation(void){
- #ifdef JSON_VALIDATE
- assertValid("-0e123,\"next\"", isValidNumber, ',');
- assertNotValid("-0e12.3,\"next\"", isValidNumber, ',');
- assertValid("-1.e123,\"next\"", isValidNumber, ',');
- assertNotValid("-1.e12.3,\"next\"", isValidNumber, ',');
- assertValid("-1.0e123,\"next\"", isValidNumber, ',');
- assertNotValid("-1.0e12.3,\"next\"", isValidNumber, ',');
-
- assertValid("-0e2,\"next\"", isValidNumber, ',');
- assertValid("-1e2,\"next\"", isValidNumber, ',');
- assertValid("-0.e2,\"next\"", isValidNumber, ',');
- assertValid("-1.e2,\"next\"", isValidNumber, ',');
- assertValid("-0.0e2,\"next\"", isValidNumber, ',');
- assertValid("-1.0e2,\"next\"", isValidNumber, ',');
- #endif
- }
- /**
- * Tests positive numbers with scientific notiation that has a sign in it
- */
- void testJSONValidator__isValidNumber::testPositive_SignedScientificNotation(void){
- #ifdef JSON_VALIDATE
- assertValid("0e-123,\"next\"", isValidNumber, ',');
- assertValid("0e+123,\"next\"", isValidNumber, ',');
- assertNotValid("0e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("0e+12.3,\"next\"", isValidNumber, ',');
- assertValid("1.e-123,\"next\"", isValidNumber, ',');
- assertValid("1.e+123,\"next\"", isValidNumber, ',');
- assertNotValid("1.e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("1.e+12.3,\"next\"", isValidNumber, ',');
- assertValid("1.0e-123,\"next\"", isValidNumber, ',');
- assertValid("1.0e+123,\"next\"", isValidNumber, ',');
- assertNotValid("1.0e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("1.0e+12.3,\"next\"", isValidNumber, ',');
-
- assertValid("0e2,\"next\"", isValidNumber, ',');
- assertValid("1e2,\"next\"", isValidNumber, ',');
- assertValid("0.e2,\"next\"", isValidNumber, ',');
- assertValid("1.e2,\"next\"", isValidNumber, ',');
- assertValid("0.0e2,\"next\"", isValidNumber, ',');
- assertValid("1.0e2,\"next\"", isValidNumber, ',');
- #endif
- }
- /**
- * Tests negative numbers with scientific notiation that has a sign in it
- */
- void testJSONValidator__isValidNumber::testNegative_SignedScientificNotation(void){
- #ifdef JSON_VALIDATE
- assertValid("-0e-123,\"next\"", isValidNumber, ',');
- assertValid("-0e+123,\"next\"", isValidNumber, ',');
- assertNotValid("-0e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("-0e+12.3,\"next\"", isValidNumber, ',');
- assertValid("-0.e-123,\"next\"", isValidNumber, ',');
- assertValid("-0.e+123,\"next\"", isValidNumber, ',');
- assertValid("-1.e-123,\"next\"", isValidNumber, ',');
- assertValid("-1.e+123,\"next\"", isValidNumber, ',');
- assertNotValid("-1.e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("-1.e+12.3,\"next\"", isValidNumber, ',');
- assertValid("-0.0e-123,\"next\"", isValidNumber, ',');
- assertValid("-0.0e+123,\"next\"", isValidNumber, ',');
- assertValid("-1.0e-123,\"next\"", isValidNumber, ',');
- assertValid("-1.0e+123,\"next\"", isValidNumber, ',');
- assertNotValid("-1.0e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("-1.0e+12.3,\"next\"", isValidNumber, ',');
-
- assertValid("-0e-2,\"next\"", isValidNumber, ',');
- assertValid("-1e-2,\"next\"", isValidNumber, ',');
- assertValid("-0.e-2,\"next\"", isValidNumber, ',');
- assertValid("-1.e-2,\"next\"", isValidNumber, ',');
- assertValid("-0.0e-2,\"next\"", isValidNumber, ',');
- assertValid("-1.0e-2,\"next\"", isValidNumber, ',');
- assertValid("-0e+2,\"next\"", isValidNumber, ',');
- assertValid("-1e+2,\"next\"", isValidNumber, ',');
- assertValid("-0.e+2,\"next\"", isValidNumber, ',');
- assertValid("-1.e+2,\"next\"", isValidNumber, ',');
- assertValid("-0.0e+2,\"next\"", isValidNumber, ',');
- assertValid("-1.0e+2,\"next\"", isValidNumber, ',');
- #endif
- }
- /**
- * Tests that in strict mode, libjson isn't relaxed about what is and isn't
- * a valid number. libjson by default accepts a few extra common notations.
- */
- void testJSONValidator__isValidNumber::testStrict(void){
- #ifdef JSON_VALIDATE
- #ifdef JSON_STRICT
- assertNotValid("00,\"next\"", isValidNumber, ',');
- assertNotValid("00.01,\"next\"", isValidNumber, ',');
- assertNotValid(".01,\"next\"", isValidNumber, ','); //no leading 0 as required by the standard
- assertNotValid("-.01,\"next\"", isValidNumber, ','); //no leading 0 as required by the standard
- assertNotValid("+123,\"next\"", isValidNumber, ','); //no leading +
- assertNotValid("+12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+0.123,\"next\"", isValidNumber, ',');
- assertNotValid("+0e123,\"next\"", isValidNumber, ',');
- assertNotValid("+0e-123,\"next\"", isValidNumber, ',');
- assertNotValid("+0e+123,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e123,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e-123,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e+123,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e123,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e-123,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e+123,\"next\"", isValidNumber, ',');
- assertNotValid("+0e12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+0e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+0e+12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e+12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e-12.3,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e+12.3,\"next\"", isValidNumber, ',');
-
- assertNotValid("0x12FF,\"next\"", isValidNumber, ',');
- assertValid("0128,\"next\"", isValidNumber, ','); //legal because in STRICT mode, this is not octal, leading zero is ignored
- assertNotValid("0xABCD,\"next\"", isValidNumber, ',');
- assertNotValid("0124,\"next\"", isValidNumber, ',');
- assertNotValid("+1,\"next\"", isValidNumber, ',');
- assertNotValid("+1.,\"next\"", isValidNumber, ',');
- assertNotValid("+0.0,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0,\"next\"", isValidNumber, ',');
- assertNotValid("+0e2,\"next\"", isValidNumber, ',');
- assertNotValid("+1e2,\"next\"", isValidNumber, ',');
- assertNotValid("+0.e2,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e2,\"next\"", isValidNumber, ',');
- assertNotValid("+0.0e2,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e2,\"next\"", isValidNumber, ',');
- assertNotValid("+0e-2,\"next\"", isValidNumber, ',');
- assertNotValid("+1e-2,\"next\"", isValidNumber, ',');
- assertNotValid("+0.e-2,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e-2,\"next\"", isValidNumber, ',');
- assertNotValid("+0e+2,\"next\"", isValidNumber, ',');
- assertNotValid("+1e+2,\"next\"", isValidNumber, ',');
- assertNotValid("+0.e+2,\"next\"", isValidNumber, ',');
- assertNotValid("+1.e+2,\"next\"", isValidNumber, ',');
- assertNotValid("+0.0e+2,\"next\"", isValidNumber, ',');
- assertNotValid("+1.0e+2,\"next\"", isValidNumber, ',');
-
- assertNotValid("1e-0123,\"next\"", isValidNumber, ','); //not valid because of negative and leading zero
- #endif
- #endif
- }
- /**
- * Tests that the extra common notations that libjson supports all
- * test out as valid
- */
- void testJSONValidator__isValidNumber::testNotStrict(void){
- #ifdef JSON_VALIDATE
- #ifndef JSON_STRICT
- assertValid("00,\"next\"", isValidNumber, ',');
- assertValid("00.01,\"next\"", isValidNumber, ',');
- assertValid(".01,\"next\"", isValidNumber, ',');
- assertValid("-.01,\"next\"", isValidNumber, ',');
- assertValid("+123,\"next\"", isValidNumber, ',');
- assertValid("+12.3,\"next\"", isValidNumber, ',');
- assertValid("+0.123,\"next\"", isValidNumber, ',');
- assertValid("+0,\"next\"", isValidNumber, ',');
- assertValid("+0.,\"next\"", isValidNumber, ',');
- assertValid("+0e123,\"next\"", isValidNumber, ',');
- assertValid("+0e-123,\"next\"", isValidNumber, ',');
- assertValid("+0e+123,\"next\"", isValidNumber, ',');
- assertValid("+1.e123,\"next\"", isValidNumber, ',');
- assertValid("+1.e-123,\"next\"", isValidNumber, ',');
- assertValid("+1.e+123,\"next\"", isValidNumber, ',');
- assertValid("+1.0e123,\"next\"", isValidNumber, ',');
- assertValid("+1.0e-123,\"next\"", isValidNumber, ',');
- assertValid("+1.0e+123,\"next\"", isValidNumber, ',');
- assertValid("+0e12.3,\"next\"", isValidNumber, ',');
- assertValid("+0e-12.3,\"next\"", isValidNumber, ',');
- assertValid("+0e+12.3,\"next\"", isValidNumber, ',');
- assertValid("+1.e12.3,\"next\"", isValidNumber, ',');
- assertValid("+1.e-12.3,\"next\"", isValidNumber, ',');
- assertValid("+1.e+12.3,\"next\"", isValidNumber, ',');
- assertValid("+1.0e12.3,\"next\"", isValidNumber, ',');
- assertValid("+1.0e-12.3,\"next\"", isValidNumber, ',');
- assertValid("+1.0e+12.3,\"next\"", isValidNumber, ',');
-
- assertValid("0x12FF,\"next\"", isValidNumber, ',');
- #ifdef JSON_OCTAL
- assertNotValid("0128,\"next\"", isValidNumber, ','); //because of the 8
- assertValid("0123,\"next\"", isValidNumber, ',');
- assertNotValid("-0128,\"next\"", isValidNumber, ',');
- assertValid("-0123,\"next\"", isValidNumber, ',');
- #else
- assertValid("0128,\"next\"", isValidNumber, ','); //because of the 8
- assertValid("0123,\"next\"", isValidNumber, ',');
- assertValid("-0128,\"next\"", isValidNumber, ',');
- assertValid("-0123,\"next\"", isValidNumber, ',');
- #endif
-
-
- assertValid("0xABCD,\"next\"", isValidNumber, ',');
- assertValid("0124,\"next\"", isValidNumber, ',');
- assertValid("+1,\"next\"", isValidNumber, ',');
- assertValid("+1.,\"next\"", isValidNumber, ',');
- assertValid("+0.0,\"next\"", isValidNumber, ',');
- assertValid("+1.0,\"next\"", isValidNumber, ',');
- assertValid("+0e2,\"next\"", isValidNumber, ',');
- assertValid("+1e2,\"next\"", isValidNumber, ',');
- assertValid("+0.e2,\"next\"", isValidNumber, ',');
- assertValid("+1.e2,\"next\"", isValidNumber, ',');
- assertValid("+0.0e2,\"next\"", isValidNumber, ',');
- assertValid("+1.0e2,\"next\"", isValidNumber, ',');
- assertValid("+0e-2,\"next\"", isValidNumber, ',');
- assertValid("+1e-2,\"next\"", isValidNumber, ',');
- assertValid("+0.e-2,\"next\"", isValidNumber, ',');
- assertValid("+1.e-2,\"next\"", isValidNumber, ',');
- assertValid("+0e+2,\"next\"", isValidNumber, ',');
- assertValid("+1e+2,\"next\"", isValidNumber, ',');
- assertValid("+0.e+2,\"next\"", isValidNumber, ',');
- assertValid("+1.e+2,\"next\"", isValidNumber, ',');
- assertValid("+0.0e+2,\"next\"", isValidNumber, ',');
- assertValid("+1.0e+2,\"next\"", isValidNumber, ',');
-
- assertValid("1e-0123,\"next\"", isValidNumber, ',');
- #endif
- #endif
- }
- /**
- * This tests values that aren't numbers at all, to make sure they are
- * flagged as not valid
- */
- void testJSONValidator__isValidNumber::testNotNumbers(void){
- #ifdef JSON_VALIDATE
- assertNotValid("-.,\"next\"", isValidNumber, ',');
- assertNotValid("-e,\"next\"", isValidNumber, ',');
- assertNotValid("0xABCDv,\"next\"", isValidNumber, ',');
- assertNotValid("001234,\"next\"", isValidNumber, ',');
- assertNotValid("09124,\"next\"", isValidNumber, ',');
- assertNotValid("0no,\"next\"", isValidNumber, ',');
- assertNotValid("no,\"next\"", isValidNumber, ',');
- assertNotValid("n1234,\"next\"", isValidNumber, ',');
- assertNotValid("12no,\"next\"", isValidNumber, ',');
- assertNotValid("0en5,\"next\"", isValidNumber, ',');
- #endif
- }
- /**
- * This test checks that for all above mentioned valids,
- * if the string cuts off suddenly, it recovers
- */
- void testJSONValidator__isValidNumber::testSuddenEnd(void){
- #ifdef JSON_VALIDATE
- assertNotValid("", isValidNumber, ',');
-
- //--- void testJSONValidator__isValidNumber::testPositive(void){
- assertNotValid("123", isValidNumber, ',');
- assertNotValid("12.3", isValidNumber, ',');
- assertNotValid("0.123", isValidNumber, ',');
- assertNotValid("0", isValidNumber, ',');
- assertNotValid("0.", isValidNumber, ',');
- assertNotValid("1.", isValidNumber, ',');
- assertNotValid("1", isValidNumber, ',');
- assertNotValid("0.0", isValidNumber, ',');
- assertNotValid("1.0", isValidNumber, ',');
- assertNotValid("1.01", isValidNumber, ',');
- assertNotValid("0123", isValidNumber, ',');
-
- //--- void testJSONValidator__isValidNumber::testNegative(void){
- assertNotValid("-123", isValidNumber, ',');
- assertNotValid("-12.3", isValidNumber, ',');
- assertNotValid("-0.123", isValidNumber, ',');
- assertNotValid("-0", isValidNumber, ',');
- assertNotValid("-0.", isValidNumber, ',');
- assertNotValid("-1", isValidNumber, ',');
- assertNotValid("-1.", isValidNumber, ',');
- assertNotValid("-0.0", isValidNumber, ',');
- assertNotValid("-1.0", isValidNumber, ',');
- assertNotValid("-1.01", isValidNumber, ',');
- assertNotValid("-0123", isValidNumber, ',');
-
- //--- void testJSONValidator__isValidNumber::testPositive_ScientificNotation(void){
- assertNotValid("0e", isValidNumber, ',');
- assertNotValid("0E", isValidNumber, ',');
- assertNotValid("0e123", isValidNumber, ',');
- assertNotValid("0e12.3", isValidNumber, ',');
- assertNotValid("1.e123", isValidNumber, ',');
- assertNotValid("1.e12.3", isValidNumber, ',');
- assertNotValid("1.0e123", isValidNumber, ',');
- assertNotValid("1.0e12.3", isValidNumber, ',');
- assertNotValid("0e2", isValidNumber, ',');
- assertNotValid("1e2", isValidNumber, ',');
- assertNotValid("0.e2", isValidNumber, ',');
- assertNotValid("1.e2", isValidNumber, ',');
- assertNotValid("0.0e2", isValidNumber, ',');
- assertNotValid("1.0e2", isValidNumber, ',');
-
- //--- void testJSONValidator__isValidNumber::testNegative_ScientificNotation(void){
- assertNotValid("-0e123", isValidNumber, ',');
- assertNotValid("-0e12.3", isValidNumber, ',');
- assertNotValid("-1.e123", isValidNumber, ',');
- assertNotValid("-1.e12.3", isValidNumber, ',');
- assertNotValid("-1.0e123", isValidNumber, ',');
- assertNotValid("-1.0e12.3", isValidNumber, ',');
- assertNotValid("-0e2", isValidNumber, ',');
- assertNotValid("-1e2", isValidNumber, ',');
- assertNotValid("-0.e2", isValidNumber, ',');
- assertNotValid("-1.e2", isValidNumber, ',');
- assertNotValid("-0.0e2", isValidNumber, ',');
- assertNotValid("-1.0e2", isValidNumber, ',');
-
- //--- void testJSONValidator__isValidNumber::testPositive_SignedScientificNotation(void){
- assertNotValid("0e-123", isValidNumber, ',');
- assertNotValid("0e+123", isValidNumber, ',');
- assertNotValid("0e-12.3", isValidNumber, ',');
- assertNotValid("0e+12.3", isValidNumber, ',');
- assertNotValid("1.e-123", isValidNumber, ',');
- assertNotValid("1.e+123", isValidNumber, ',');
- assertNotValid("1.e-12.3", isValidNumber, ',');
- assertNotValid("1.e+12.3", isValidNumber, ',');
- assertNotValid("1.0e-123", isValidNumber, ',');
- assertNotValid("1.0e+123", isValidNumber, ',');
- assertNotValid("1.0e-12.3", isValidNumber, ',');
- assertNotValid("1.0e+12.3", isValidNumber, ',');
- assertNotValid("0e2", isValidNumber, ',');
- assertNotValid("1e2", isValidNumber, ',');
- assertNotValid("0.e2", isValidNumber, ',');
- assertNotValid("1.e2", isValidNumber, ',');
- assertNotValid("0.0e2", isValidNumber, ',');
- assertNotValid("1.0e2", isValidNumber, ',');
-
- //--- void testJSONValidator__isValidNumber::testNegative_SignedScientificNotation(void){
- assertNotValid("-0e-123", isValidNumber, ',');
- assertNotValid("-0e+123", isValidNumber, ',');
- assertNotValid("-0e-12.3", isValidNumber, ',');
- assertNotValid("-0e+12.3", isValidNumber, ',');
- assertNotValid("-0.e-123", isValidNumber, ',');
- assertNotValid("-0.e+123", isValidNumber, ',');
- assertNotValid("-1.e-123", isValidNumber, ',');
- assertNotValid("-1.e+123", isValidNumber, ',');
- assertNotValid("-1.e-12.3", isValidNumber, ',');
- assertNotValid("-1.e+12.3", isValidNumber, ',');
- assertNotValid("-0.0e-123", isValidNumber, ',');
- assertNotValid("-0.0e+123", isValidNumber, ',');
- assertNotValid("-1.0e-123", isValidNumber, ',');
- assertNotValid("-1.0e+123", isValidNumber, ',');
- assertNotValid("-1.0e-12.3", isValidNumber, ',');
- assertNotValid("-1.0e+12.3", isValidNumber, ',');
- assertNotValid("-0e-2", isValidNumber, ',');
- assertNotValid("-1e-2", isValidNumber, ',');
- assertNotValid("-0.e-2", isValidNumber, ',');
- assertNotValid("-1.e-2", isValidNumber, ',');
- assertNotValid("-0.0e-2", isValidNumber, ',');
- assertNotValid("-1.0e-2", isValidNumber, ',');
- assertNotValid("-0e+2", isValidNumber, ',');
- assertNotValid("-1e+2", isValidNumber, ',');
- assertNotValid("-0.e+2", isValidNumber, ',');
- assertNotValid("-1.e+2", isValidNumber, ',');
- assertNotValid("-0.0e+2", isValidNumber, ',');
- assertNotValid("-1.0e+2", isValidNumber, ',');
-
- //strict stuff
- assertNotValid(".01", isValidNumber, ','); //no leading 0 as required by the standard
- assertNotValid("-.01", isValidNumber, ','); //no leading 0 as required by the standard
- assertNotValid("+123", isValidNumber, ','); //no leading +
- assertNotValid("+12.3", isValidNumber, ',');
- assertNotValid("+0.123", isValidNumber, ',');
- assertNotValid("+0e123", isValidNumber, ',');
- assertNotValid("+0e-123", isValidNumber, ',');
- assertNotValid("+0e+123", isValidNumber, ',');
- assertNotValid("+1.e123", isValidNumber, ',');
- assertNotValid("+1.e-123", isValidNumber, ',');
- assertNotValid("+1.e+123", isValidNumber, ',');
- assertNotValid("+1.0e123", isValidNumber, ',');
- assertNotValid("+1.0e-123", isValidNumber, ',');
- assertNotValid("+1.0e+123", isValidNumber, ',');
- assertNotValid("+0e12.3", isValidNumber, ',');
- assertNotValid("+0e-12.3", isValidNumber, ',');
- assertNotValid("+0e+12.3", isValidNumber, ',');
- assertNotValid("+1.e12.3", isValidNumber, ',');
- assertNotValid("+1.e-12.3", isValidNumber, ',');
- assertNotValid("+1.e+12.3", isValidNumber, ',');
- assertNotValid("+1.0e12.3", isValidNumber, ',');
- assertNotValid("+1.0e-12.3", isValidNumber, ',');
- assertNotValid("+1.0e+12.3", isValidNumber, ',');
- assertNotValid("0x12FF", isValidNumber, ',');
- assertNotValid("0128", isValidNumber, ','); //legal because in STRICT mode, this is not octal, leading zero is ignored
- assertNotValid("0xABCD", isValidNumber, ',');
- assertNotValid("0124", isValidNumber, ',');
- assertNotValid("+1", isValidNumber, ',');
- assertNotValid("+1.", isValidNumber, ',');
- assertNotValid("+0.0", isValidNumber, ',');
- assertNotValid("+1.0", isValidNumber, ',');
- assertNotValid("+0e2", isValidNumber, ',');
- assertNotValid("+1e2", isValidNumber, ',');
- assertNotValid("+0.e2", isValidNumber, ',');
- assertNotValid("+1.e2", isValidNumber, ',');
- assertNotValid("+0.0e2", isValidNumber, ',');
- assertNotValid("+1.0e2", isValidNumber, ',');
- assertNotValid("+0e-2", isValidNumber, ',');
- assertNotValid("+1e-2", isValidNumber, ',');
- assertNotValid("+0.e-2", isValidNumber, ',');
- assertNotValid("+1.e-2", isValidNumber, ',');
- assertNotValid("+0e+2", isValidNumber, ',');
- assertNotValid("+1e+2", isValidNumber, ',');
- assertNotValid("+0.e+2", isValidNumber, ',');
- assertNotValid("+1.e+2", isValidNumber, ',');
- assertNotValid("+0.0e+2", isValidNumber, ',');
- assertNotValid("+1.0e+2", isValidNumber, ',');
- assertNotValid("0128", isValidNumber, ','); //because of the 8
-
-
- //--- void testJSONValidator__isValidNumber::testNotNumbers(void){
- assertNotValid("0xABCDv", isValidNumber, ',');
- assertNotValid("001234", isValidNumber, ',');
- assertNotValid("09124", isValidNumber, ',');
- assertNotValid("0no", isValidNumber, ',');
- assertNotValid("no", isValidNumber, ',');
- assertNotValid("n1234", isValidNumber, ',');
- assertNotValid("12no", isValidNumber, ',');
- assertNotValid("0en5", isValidNumber, ',');
- #endif
- }
|