| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | ! Copyright (C) 2008 John Benediktsson | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | USING: kernel printf tools.test ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | [ "%s" printf ] must-infer  | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-21 01:22:12 -04:00
										 |  |  | [ "%s" sprintf ] must-infer | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-22 22:39:27 -04:00
										 |  |  | [ t ] [ "" "" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "asdf" "asdf" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "10" 10 "%d" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-18 02:11:02 -04:00
										 |  |  | [ t ] [ "+10" 10 "%+d" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "-10" -10 "%d" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "  -10" -10 "%5d" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "-0010" -10 "%05d" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "+0010" 10 "%+05d" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-01 20:38:12 -04:00
										 |  |  | [ t ] [ "123.456000" 123.456 "%f" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "2.44" 2.436 "%.2f" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "123.10" 123.1 "%01.2f" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-01 20:38:12 -04:00
										 |  |  | [ t ] [ "1.2346" 1.23456789 "%.4f" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "  1.23" 1.23456789 "%6.2f" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-01 20:38:12 -04:00
										 |  |  | [ t ] [ "1.234000e+08" 123400000 "%e" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-01 20:38:12 -04:00
										 |  |  | [ t ] [ "-1.234000e+08" -123400000 "%e" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-18 02:11:02 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "1.234567e+08" 123456700 "%e" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "3.625e+08" 362525200 "%.3e" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-01 20:38:12 -04:00
										 |  |  | [ t ] [ "2.500000e-03" 0.0025 "%e" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-01 20:38:12 -04:00
										 |  |  | [ t ] [ "2.500000E-03" 0.0025 "%E" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-18 02:11:02 -04:00
										 |  |  | [ t ] [ "   1.0E+01" 10 "%10.1E" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "  -1.0E+01" -10 "%10.1E" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "  -1.0E+01" -10 "%+10.1E" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "  +1.0E+01" 10 "%+10.1E" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "-001.0E+01" -10 "%+010.1E" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "+001.0E+01" 10 "%+010.1E" sprintf = ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "ff" HEX: ff "%x" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "FF" HEX: ff "%X" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-16 20:26:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "0f" HEX: f "%02x" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "0F" HEX: f "%02X" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "2008-09-10"  | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         2008 9 10 "%04d-%02d-%02d" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "Hello, World!"  | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         "Hello, World!" "%s" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "printf test"  | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         "printf test" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "char a = 'a'" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         CHAR: a "char %c = 'a'" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "00" HEX: 0 "%02x" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "ff" HEX: ff "%02x" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "0 message(s)" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         0 "message" "%d %s(s)" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "0 message(s) with %" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         0 "message" "%d %s(s) with %%" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "justif: \"left      \"" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         "left" "justif: \"%-10s\"" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "justif: \"     right\"" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         "right" "justif: \"%10s\"" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ " 3: 0003 zero padded"  | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         3 " 3: %04d zero padded" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ " 3: 3    left justif"  | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         3 " 3: %-4d left justif" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ " 3:    3 right justif"  | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         3 " 3: %4d right justif" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ " -3: -003 zero padded" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         -3 " -3: %04d zero padded" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ " -3: -3   left justif" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         -3 " -3: %-4d left justif" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ " -3:   -3 right justif" | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         -3 " -3: %4d right justif" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "There are 10 monkeys in the kitchen"  | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  |         10 "kitchen" "There are %d monkeys in the %s" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ f ] [ "%d" 10 "%d" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "[monkey]" "monkey" "[%s]" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "[    monkey]" "monkey" "[%10s]" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "[monkey    ]" "monkey" "[%-10s]" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "[0000monkey]" "monkey" "[%010s]" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-17 12:22:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "[####monkey]" "monkey" "[%'#10s]" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-17 22:59:22 -04:00
										 |  |  | [ t ] [ "[many monke]" "many monkeys" "[%10.10s]" sprintf = ] unit-test | 
					
						
							| 
									
										
										
										
											2008-09-11 21:16:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |