| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | @pragma entry main | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | @pragma implicit off | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | @include "tap.inc"; | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-10 16:55:47 +00:00
										 |  |  | function f(a, b, c) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return a + b + c; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | function call_by_ref_1(&a, b, &c) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	c = "hello, world"; | 
					
						
							|  |  |  | 	return b * a; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function call_by_ref_2(a, &b) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	b[1] = b[1] * a; | 
					
						
							| 
									
										
										
										
											2020-04-14 11:45:52 +00:00
										 |  |  | 	b[2] = "perfect"; | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 	return a; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-25 18:35:04 +00:00
										 |  |  | function call_by_ref_3(&x) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	x = "hello world"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | function main() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (@b"" !== "", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (@b"" === "", 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (@b"" != "", 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (@b"" == "", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure (@b' ' !== ' ', 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (@b' ' === ' ', 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (@b' ' != ' ', 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (@b' ' == ' ', 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((@nil == 'A'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil != 'A'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil > 'A'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil < 'A'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil >= 'A'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil <= 'A'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((@nil == @b'A'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil != @b'A'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil > @b'A'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil < @b'A'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil >= @b'A'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@nil <= @b'A'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure (('A' == @b'A'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (('\u00FF' == @b'\xFF'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (('A' < @b'\xFF'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b'A' < @b'\xFF'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (('A' > @b'\xFF'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b'A' > @b'\xFF'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (('A' < @b'B'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b'A' < @b'B'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (('A' > @b'B'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b'A' > @b'B'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure (("10" == 10), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("10" == 10.00), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("10.0" == 10), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("10.00" == 10), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((@b"10" == 10), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b"10" == 10.00), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b"10.0" == 10), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b"10.00" == 10), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((79 < '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 <= '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 > '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 >= '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 == '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 != '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((99 < '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 <= '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 > '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 >= '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 == '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 != '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((8 < '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 <= '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 > '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 >= '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 == '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 != '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((8.00 < '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 <= '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 > '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 >= '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 == '8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 != '8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((79 < @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 <= @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 > @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 >= @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 == @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((79 != @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((99 < @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 <= @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 > @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 >= @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 == @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((99 != @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((8 < @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 <= @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 > @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 >= @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 == @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8 != @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure ((8.00 < @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 <= @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 > @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 >= @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 == @b'8'), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((8.00 != @b'8'), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		@local x, y, z, r; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		x = 20; | 
					
						
							|  |  |  | 		y = 90; | 
					
						
							| 
									
										
										
										
											2024-04-23 00:39:01 +09:00
										 |  |  | 		r = call_by_ref_1(x, y, z); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (r, 1800, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (x, 20, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (y, 90, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (z, "hello, world", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## TODO: add a new special word, @FILENAME, @FILELINE, @LINE <--- which are understood by the parser and swapped to the actual value | 
					
						
							| 
									
										
										
										
											2020-05-04 07:14:32 +00:00
										 |  |  | ## @SCRIPTNAME, @SCRIPTLINE doesn't tell the main file. | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		@local b; | 
					
						
							|  |  |  | 		call_by_ref_2(99, b); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (b[1], 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 		@local b, r; | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 		b[1] = 1; | 
					
						
							|  |  |  | 		r = call_by_ref_2(99, b); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (r, 99, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (b[1], 99, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 		@local b, r; | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 		b[1] = 1; | 
					
						
							|  |  |  | 		r = hawk::call("call_by_ref_2", 99, b); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (r, 99, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (length(b), 2, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (b[1], 99, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (b[2], "perfect", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		tap_ensure (hawk::call('f', 1, 2, 3), 6, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (hawk::call("f", 1, 2, 3), 6, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (hawk::call(@b'f', 1, 2, 3), 6, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (hawk::call(@b"f", 1, 2, 3), 6, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-24 17:27:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		@local a; | 
					
						
							|  |  |  | 		a[1] = hawk::array(); | 
					
						
							| 
									
										
										
										
											2024-04-23 00:39:01 +09:00
										 |  |  | 		a[1][2]=20; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (a[1][2], 20, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-24 17:27:56 +00:00
										 |  |  | 		a[1][2]++; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (a[1][2], 21, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-24 17:27:56 +00:00
										 |  |  | 		--a[1][2]; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (a[1][2], 20, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-24 17:27:56 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-25 18:35:04 +00:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-04-26 15:28:44 +00:00
										 |  |  | 		@local a, nil; | 
					
						
							| 
									
										
										
										
											2020-04-25 18:35:04 +00:00
										 |  |  | 		a = hawk::array(); | 
					
						
							|  |  |  | 		a[10] = "good"; | 
					
						
							| 
									
										
										
										
											2020-04-26 15:28:44 +00:00
										 |  |  | 		a[0][40] = "bye" | 
					
						
							|  |  |  | 		a[0][0] = "farewell" | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (hawk::typename(a), "array", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (hawk::typename(a[0]), "array", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-25 18:35:04 +00:00
										 |  |  | 		call_by_ref_3(a[9]); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (a[10], "good", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (a[9], "hello world", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-25 18:35:04 +00:00
										 |  |  | 		call_by_ref_3(a[10]); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (a[10], "hello world", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (a[9], "hello world", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (a[0][40], "bye", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-26 15:28:44 +00:00
										 |  |  | 		call_by_ref_3(a[0][40]); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (a[0][40], "hello world", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (length(a[0]), 2, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-26 15:28:44 +00:00
										 |  |  | 		delete a[0][40]; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a[0]), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (a[0][0], "farewell", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (a[0][40], nil, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-05-04 07:14:32 +00:00
										 |  |  | 		#hawk::splice (a[0], 40, 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		#tap_ensure (length(a[0]), 40, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-29 13:03:02 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		@local a, i; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-23 00:39:01 +09:00
										 |  |  | 		a = hawk::array(); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2024-04-23 00:39:01 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		for (i = 0; i < 10; i++) a[i*i]=i; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a), 10, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-29 13:03:02 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		delete a[0]; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a), 9, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-29 13:03:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-23 00:39:01 +09:00
										 |  |  | 		delete a[81]; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a), 8, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-29 13:03:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-23 00:39:01 +09:00
										 |  |  | 		delete a[36]; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a), 7, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-29 13:03:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-23 00:39:01 +09:00
										 |  |  | 		for (i = 0; i < 10; i++) delete a[i*i]; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-29 13:03:02 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		delete a; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (length(a), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-04-25 18:35:04 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-03 06:05:06 +00:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 		@local a, b, c; | 
					
						
							| 
									
										
										
										
											2020-05-03 06:05:06 +00:00
										 |  |  | 		a = hawk::array(); | 
					
						
							|  |  |  | 		a[10][20][30] = 20; | 
					
						
							|  |  |  | 		b[12][20][30] = 20; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((10 in a) && (20 in a[10]) && (30 in a[10][20]), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((11 in a) && (20 in a[10]) && (30 in a[10][20]), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-05-03 06:05:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		b = hawk::map(); | 
					
						
							|  |  |  | 		b[10][20][30] = 20; | 
					
						
							|  |  |  | 		b[12][20][30] = 20; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((10 in a) && (20 in a[10]) && (30 in a[10][20]), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((11 in a) && (20 in a[10]) && (30 in a[10][20]), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-05-03 06:05:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		c = hawk::map(); | 
					
						
							|  |  |  | 		c[10,20,30] = "heloo"; | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (((10,20,30) in c), 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (((10,30,30) in c), 0, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-05-03 06:05:06 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		@local a; | 
					
						
							|  |  |  | 		a = hawk::array(1,2,3); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (a[1], 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (a[2], 2, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (a[3], 3, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (length(a), 3, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (hawk::typename(a), "array", @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 18:07:20 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		# concatenation operator | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" 10) === @b"hawk10", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" 10) === "hawk10", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" "hawk") === @b"hawkhawk", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" @b"hawk") === "hawkhawk", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" '1') === @b"hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" '1') === "hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (('*' @b"hawk" '1') === "*hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (('*' "hawk" '1') === "*hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" '⚾') === @b"hawk\xe2\x9a\xbe", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" '⚾') === "hawk⚾", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" str::fromcharcode(0x26be)) === @b"hawk\xe2\x9a\xbe", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" str::fromcharcode(0x26be)) === "hawk⚾", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((@b"hawk" @b'\xFF') === @b"hawk\xFF", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure ((str::subchar(@b"\xFF\xFE", 1) str::subchar(@b"\xFF\xFE", 2)) === @b"\xFF\xFE", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" %% 10) === @b"hawk10", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" %% 10) === "hawk10", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" %% "hawk") === @b"hawkhawk", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" %% @b"hawk") === "hawkhawk", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" %% '1') === @b"hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" %% '1') === "hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure (('*' %% @b"hawk" %% '1') === "*hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (('*' %% "hawk" %% '1') === "*hawk1", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" %% '⚾') === @b"hawk\xe2\x9a\xbe", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" %% '⚾') === "hawk⚾", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-11 17:43:46 +09:00
										 |  |  | 		tap_ensure ((@b"hawk" %% str::fromcharcode(65)) === @b"hawkA", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 		tap_ensure ((@b"hawk" %% str::fromcharcode(0x26be)) === @b"hawk\xe2\x9a\xbe", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							|  |  |  | 		tap_ensure (("hawk" %% str::fromcharcode(0x26be)) === "hawk⚾", 1, @SCRIPTNAME, @SCRIPTLINE); | 
					
						
							| 
									
										
										
										
											2020-12-09 04:02:04 +00:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-04-08 03:42:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	tap_end (); | 
					
						
							| 
									
										
										
										
											2020-04-14 07:40:30 +00:00
										 |  |  | } |