| 
									
										
										
										
											2008-11-15 04:07:55 -05:00
										 |  |  | USING: arrays json.reader kernel multiline strings tools.test | 
					
						
							|  |  |  | hashtables json ;
 | 
					
						
							| 
									
										
										
										
											2008-05-31 01:46:15 -04:00
										 |  |  | IN: json.reader.tests | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { f } [ "false" json> ] unit-test | 
					
						
							|  |  |  | { t } [ "true" json> ] unit-test | 
					
						
							|  |  |  | { json-null } [ "null" json> ] unit-test | 
					
						
							|  |  |  | { 0 } [ "0" json> ] unit-test | 
					
						
							|  |  |  | { 102 } [ "102" json> ] unit-test | 
					
						
							|  |  |  | { -102 } [ "-102" json> ] unit-test | 
					
						
							|  |  |  | { 102 } [ "+102" json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-07 23:00:19 -05:00
										 |  |  | { 1000.0 } [ "1.0e3" json> ] unit-test | 
					
						
							|  |  |  | { 1000.0 } [ "10e2" json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-05-31 01:46:15 -04:00
										 |  |  | { 102.0 } [ "102.0" json> ] unit-test | 
					
						
							|  |  |  | { 102.5 } [ "102.5" json> ] unit-test | 
					
						
							|  |  |  | { 102.5 } [ "102.50" json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-02 16:09:14 -04:00
										 |  |  | { -10250.0 } [ "-102.5e2" json> ] unit-test | 
					
						
							|  |  |  | { -10250.0 } [ "-102.5E+2" json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-07 23:00:19 -05:00
										 |  |  | { 10.25 } [ "1025e-2" json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-05-31 12:10:11 -04:00
										 |  |  | { 0.125 } [ "0.125" json> ] unit-test | 
					
						
							|  |  |  | { -0.125 } [ "-0.125" json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-05-31 01:46:15 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-08 15:08:58 -05:00
										 |  |  | ! not widely supported by javascript, but allowed in the grammar, and a nice | 
					
						
							|  |  |  | ! feature to get | 
					
						
							|  |  |  | { -0.0 } [ "-0.0" json> ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-31 12:10:11 -04:00
										 |  |  | { " fuzzy  pickles " } [ <" " fuzzy  pickles " "> json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-05-31 01:46:15 -04:00
										 |  |  | { "while 1:\n\tpass" } [ <" "while 1:\n\tpass" "> json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-08 15:08:58 -05:00
										 |  |  | ! unicode is allowed in json | 
					
						
							|  |  |  | { "ß∂¬ƒ˚∆" } [ <" "ß∂¬ƒ˚∆""> json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-05-31 01:46:15 -04:00
										 |  |  | { 8 9 10 12 13 34 47 92 } >string 1array [ <" "\b\t\n\f\r\"\/\\" "> json> ] unit-test | 
					
						
							|  |  |  | { HEX: abcd } >string 1array [ <" "\uaBCd" "> json> ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-07 23:00:19 -05:00
										 |  |  | { { } } [ "[]" json> ] unit-test  | 
					
						
							| 
									
										
										
										
											2008-05-31 01:46:15 -04:00
										 |  |  | { { 1 "two" 3.0 } } [ <" [1, "two", 3.0] "> json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-07 23:00:19 -05:00
										 |  |  | { H{ } } [ "{}" json> ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-08 15:08:58 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | ! the returned hashtable should be different every time | 
					
						
							| 
									
										
										
										
											2008-11-08 16:45:45 -05:00
										 |  |  | { H{ } } [ "key" "value" "{}" json> ?set-at "{}" json> nip ] unit-test | 
					
						
							| 
									
										
										
										
											2008-11-08 15:08:58 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-31 01:46:15 -04:00
										 |  |  | { H{ { "US$" 1.0 } { "EU€" 1.5 } } } [ <" { "US$":1.00, "EU\u20AC":1.50 } "> json> ] unit-test | 
					
						
							|  |  |  | { H{ | 
					
						
							|  |  |  |     { "fib" { 1 1 2 3 5 8 H{ { "etc" "etc" } } } } | 
					
						
							|  |  |  |     { "prime" { 2 3 5 7 11 13 } } | 
					
						
							|  |  |  | } } [ <" { | 
					
						
							|  |  |  |     "fib": [1, 1,  2,   3,     5,         8, | 
					
						
							|  |  |  |         { "etc":"etc" } ], | 
					
						
							|  |  |  |     "prime": | 
					
						
							|  |  |  |     [ 2,3,     5,7, | 
					
						
							|  |  |  | 11, | 
					
						
							|  |  |  | 13
 | 
					
						
							|  |  |  | ]      } | 
					
						
							|  |  |  | "> json> ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { 0 } [ "      0" json> ] unit-test | 
					
						
							|  |  |  | { 0 } [ "0      " json> ] unit-test | 
					
						
							|  |  |  | { 0 } [ "   0   " json> ] unit-test |