# template  data            expected            description (optional)
%6. 6s		''				%6. 6s INVALID		(See use of $w in code above)
%6 .6s		''				%6 .6s INVALID
%6.6 s		''				%6.6 s INVALID
%A			''				%A INVALID
%B			''				%B INVALID
%C			''				%C INVALID
%D			0x7fffffff		2147483647			Synonym for %ld
%E			123456.789		1.234568E+05		Like %e, but using upper-case "E"
%F			123456.789		123456.789000		Synonym for %f
%G			1234567.89		1.23457E+06			Like %g, but using upper-case "E"
%G			1234567e96		1.23457E+102
%G			.1234567e-101	1.23457E-102
%G			12345.6789		12345.7
%G			1234567e96		1.23457E+102		exponent too big skip: os390
%G			.1234567e-101	1.23457E-102		exponent too small skip: os390
%H			''				%H INVALID
%I			''				%I INVALID
%J			''				%J INVALID
%K			''				%K INVALID
%L			''				%L INVALID
%M			''				%M INVALID
%N			''				%N INVALID
%O			2**32-1			37777777777			Synonym for %lo
%P			''				%P INVALID
%Q			''				%Q INVALID
%R			''				%R INVALID
%S			''				%S INVALID
%T			''				%T INVALID
%U			2**32-1	4294967295	Synonym for %lu
%V			''				%V INVALID
%W			''				%W INVALID
%X			2**32-1			FFFFFFFF			Like %x, but with u/c letters
%#X			2**32-1			0XFFFFFFFF
%Y			''				%Y INVALID
%Z			''				%Z INVALID
%a			''				%a INVALID
%b			2**32-1			11111111111111111111111111111111
%+b			2**32-1			11111111111111111111111111111111
%#b			2**32-1			0b11111111111111111111111111111111
%34b		2**32-1			  11111111111111111111111111111111
%034b		2**32-1			0011111111111111111111111111111111
%-34b		2**32-1			11111111111111111111111111111111  
%-034b		2**32-1			11111111111111111111111111111111  
%c			65				A
%10c		65				         A
%#10c		65				         A				# modifier: no effect
%010c		65				000000000A
%10lc		65				         A				l modifier: no effect
%10hc		65				         A				h modifier: no effect
%10.5c		65				         A				precision: no effect
%-10c		65				A         
%d			123456.789		123456
%d			-123456.789		-123456
%d			0				0
%+d			0				+0
%0d			0				0
%.0d		0				
%+.0d		0				+
%.0d		1				1
%d			1				1
%+d			1				+1
%#3.2d		1				 01					# modifier: no effect
%3.2d		1				 01
%03.2d		1				001
%-3.2d		1				01 
%-03.2d		1				01 					zero pad + left just.: no effect
%d			-1				-1
%+d			-1				-1
%hd			1				1					More extensive testing of
%ld			1				1					length modifiers would be
%Vd			1				1					platform-specific
%vd			chr(1)			1
%+vd		chr(1)			+1
%#vd		chr(1)			1
%vd			"\01\02\03"		1.2.3
%vd			v1.2.3			1.2.3
%vd			[version::qv("1.2.3")]		1.2.3
%vd			[version->new("1.2")]		1.200
%vd			[version->new("1.02")]		1.20
%vd			[version->new("1.002")]		1.2
%vd			[version->new("1048576.5")]	1048576.500
%vd			[version->new("50")]		50.0
%v.3d		"\01\02\03"					001.002.003
%0v3d		"\01\02\03"					001.002.003
%v.3d		[version::qv("1.2.3")]		001.002.003
%-v3d		"\01\02\03"					1  .2  .3  
%+-v3d		"\01\02\03"					+1 .2  .3  
%+-v3d		[version::qv("1.2.3")]		+1 .2  .3  
%v4.3d		"\01\02\03"					 001. 002. 003
%0v4.3d		"\01\02\03"					0001.0002.0003
%0*v2d		['-', "\0\7\14"]			00-07-12
%v.*d		["\01\02\03", 3]			001.002.003
%0v*d		["\01\02\03", 3]			001.002.003
%-v*d		["\01\02\03", 3]			1  .2  .3  
%+-v*d		["\01\02\03", 3]			+1 .2  .3  
%v*.*d		["\01\02\03", 4, 3]			 001. 002. 003
%0v*.*d		["\01\02\03", 4, 3]			0001.0002.0003
%0*v*d		['-', "\0\7\13", 2]			00-07-11
%0*v*d		['-', version::qv("0.7.11"), 2]	00-07-11
%e			1234.875		1.234875e+03
%e			0.000012345		1.234500e-05
%e			1234567E96		1.234567e+102
%e			0				0.000000e+00
%e			.1234567E-101	1.234567e-102
%+e			1234.875		+1.234875e+03
%#e			1234.875		1.234875e+03
%e			-1234.875		-1.234875e+03
%+e			-1234.875		-1.234875e+03
%#e			-1234.875		-1.234875e+03
%.0e		1234.875		1e+03
%#.0e		1234.875		1.e+03
%.0e		1.875			2e+00
%.0e		0.875			9e-01
%.*e		[0, 1234.875]	1e+03
%.1e		1234.875		1.2e+03
%-12.4e		1234.875		1.2349e+03  
%12.4e		1234.875		  1.2349e+03
%+-12.4e	1234.875		+1.2349e+03 
%+12.4e		1234.875		 +1.2349e+03
%+-12.4e	-1234.875		-1.2349e+03 
%+12.4e		-1234.875		 -1.2349e+03
%e			1234567E96		1.234567e+102		exponent too big skip: os390
%e			.1234567E-101	1.234567e-102		exponent too small skip: os390
%f			1234.875		1234.875000
%+f			1234.875		+1234.875000
%#f			1234.875		1234.875000
%f			-1234.875		-1234.875000
%+f			-1234.875		-1234.875000
%#f			-1234.875		-1234.875000
%6f			1234.875		1234.875000
%*f			[6, 1234.875]	1234.875000
%.0f		-0.1			-0					C library bug: no minus skip: VMS
%.0f		1234.875		1235
%.1f		1234.875		1234.9
%-8.1f		1234.875		1234.9  
%8.1f		1234.875		  1234.9
%+-8.1f		1234.875		+1234.9 
%+8.1f		1234.875		 +1234.9
%+-8.1f		-1234.875		-1234.9 
%+8.1f		-1234.875		 -1234.9
%*.*f		[5, 2, 12.3456]	12.35
%f			0				0.000000
%.0f		0				0
%.0f		2**38			274877906944		Should have exact int'l rep'n
%.0f		0.1				0
%.0f		0.6				1					Known to fail with sfio, (irix|nonstop-ux|powerux); -DHAS_LDBL_SPRINTF_BUG may fix
%.0f		-0.6			-1					Known to fail with sfio, (irix|nonstop-ux|powerux); -DHAS_LDBL_SPRINTF_BUG may fix
%.0f		1.6	2
%.0f		-1.6			-2
%.0f		1				1
%#.0f		1				1.
%.0lf		1				1					'l' should have no effect
%.0hf		1				%.0hf INVALID		'h' should be rejected
%g			12345.6789		12345.7
%+g			12345.6789		+12345.7
%#g			12345.6789		12345.7
%.0g		-0.0			-0					C99 standard mandates minus sign but C89 does not skip: MSWin32 VMS hpux:10.20 openbsd netbsd:1.5 irix
%.0g		12345.6789		1e+04
%#.0g		12345.6789		1.e+04
%.2g		12345.6789		1.2e+04
%.*g		[2, 12345.6789]	1.2e+04
%.9g		12345.6789		12345.6789
%12.9g		12345.6789		  12345.6789
%012.9g		12345.6789		0012345.6789
%-12.9g		12345.6789		12345.6789  
%*.*g		[-12, 9, 12345.6789]	12345.6789  
%-012.9g		12345.6789	12345.6789  
%g			-12345.6789		-12345.7
%+g			-12345.6789		-12345.7
%g			1234567.89		1.23457e+06
%+g			1234567.89		+1.23457e+06
%#g			1234567.89		1.23457e+06
%g			-1234567.89		-1.23457e+06
%+g			-1234567.89		-1.23457e+06
%#g			-1234567.89		-1.23457e+06
%g			0.00012345		0.00012345
%g			0.000012345		1.2345e-05
%g			1234567E96		1.23457e+102
%g			.1234567E-101	1.23457e-102
%g			0				0
%13g		1234567.89		  1.23457e+06
%+13g		1234567.89		 +1.23457e+06
%013g		1234567.89		001.23457e+06
%-13g		1234567.89		1.23457e+06  
%g			.1234567E-101	1.23457e-102	exponent too small skip: os390
%g			1234567E96		1.23457e+102	exponent too big skip: os390
%h			''				%h INVALID
%i			123456.789		123456	Synonym for %d
%j			''				%j INVALID
%k			''				%k INVALID
%l			''				%l INVALID
%m			''				%m INVALID
%s			sprintf('%%n%n %d', $n, $n)	%n 2	Slight sneakiness to test %n
%o			2**32-1			37777777777
%+o			2**32-1			37777777777
%#o			2**32-1			037777777777
%o			642				1202			check smaller octals across platforms
%+o			642				1202
%#o			642				01202
%d	$p=sprintf('%p',$p);$p=~/^[0-9a-f]+$/	1	Coarse hack: hex from %p?
%d	$p=sprintf('%-8p',$p);$p=~/^[0-9a-f]+\s*$/	1	Coarse hack: hex from %p?
%#p	''	%#p INVALID
%q	''	%q INVALID
%r	''	%r INVALID
%s	'string'	string
%10s	'string'	    string
%+10s	'string'	    string
%#10s	'string'	    string
%010s	'string'	0000string
%0*s	[10, 'string']	0000string
%-10s	'string'	string    
%3s	'string'	string
%.3s	'string'	str
%.*s	[3, 'string']	str
%t	''	%t INVALID
%u	2**32-1	4294967295
%+u	2**32-1	4294967295
%#u	2**32-1	4294967295
%12u	2**32-1	  4294967295
%012u	2**32-1	004294967295
%-12u	2**32-1	4294967295  
%-012u	2**32-1	4294967295  
%v	''	%v INVALID
%w	''	%w INVALID
%x	2**32-1	ffffffff
%+x	2**32-1	ffffffff
%#x	2**32-1	0xffffffff
%10x	2**32-1	  ffffffff
%010x	2**32-1	00ffffffff
%-10x	2**32-1	ffffffff  
%-010x	2**32-1	ffffffff  
%0-10x	2**32-1	ffffffff  
%0*x	[-10, ,2**32-1]	ffffffff  
%vx	[version::qv("1.2.3")]	1.2.3
%vx	[version::qv("1.20.300")]	1.14.12c
%y	''	%y INVALID
%z	''	%z INVALID
%2$d %1$d	[12, 34]	34 12
%*2$d	[12, 3]	 12
%2$d %d	[12, 34]	34 12
%2$d %d %d	[12, 34]	34 12 34
%3$d %d %d	[12, 34, 56]	56 12 34
%2$*3$d %d	[12, 34, 3]	 34 12
%*3$2$d %d	[12, 34, 3]	%*3$2$d 12 INVALID
%2$d	12	0 UNINIT
%0$d	12	%0$d INVALID
%1$$d	12	%1$$d INVALID
%1$1$d	12	%1$1$d INVALID
%*2$*2$d	[12, 3]	%*2$*2$d INVALID
%*2*2$d	[12, 3]	%*2*2$d INVALID
%*2$1d	[12, 3]	%*2$1d INVALID
%0v2.2d	''	
%vc,%d	[63, 64, 65]	%vc,63 INVALID
%v%,%d	[63, 64, 65]	%v%,63 INVALID
%vd,%d	["\x1", 2, 3]	1,2
%vf,%d	[1, 2, 3]	%vf,1 INVALID
%vF,%d	[1, 2, 3]	%vF,1 INVALID
%ve,%d	[1, 2, 3]	%ve,1 INVALID
%vE,%d	[1, 2, 3]	%vE,1 INVALID
%vg,%d	[1, 2, 3]	%vg,1 INVALID
%vG,%d	[1, 2, 3]	%vG,1 INVALID
%vp	''	%vp INVALID
%vn	''	%vn INVALID
%vs,%d	[1, 2, 3]	%vs,1 INVALID
%v_	''	%v_ INVALID
%v#x	''	%v#x INVALID
%v02x	"\x66\x6f\x6f\012"	66.6f.6f.0a
%#v.8b	"\141\000\142"	0b01100001.00000000.0b01100010	perl #39530
%#v.4o	"\141\000\142"	0141.0000.0142	perl #39530
%#v.3i	"\141\000\142"	097.000.098	perl #39530
%#v.2x	"\141\000\142"	0x61.00.0x62	perl #39530
%#v.2X	"\141\000\142"	0X61.00.0X62	perl #39530
%#v.8b	"\141\017\142"	0b01100001.0b00001111.0b01100010	perl #39530
%#v.4o	"\141\017\142"	0141.0017.0142	perl #39530
%#v.3i	"\141\017\142"	097.015.098	perl #39530
%#v.2x	"\141\017\142"	0x61.0x0f.0x62	perl #39530
%#v.2X	"\141\017\142"	0X61.0X0F.0X62	perl #39530
%#*v.8b	["][", "\141\000\142"]	0b01100001][00000000][0b01100010	perl #39530
%#*v.4o	["][", "\141\000\142"]	0141][0000][0142	perl #39530
%#*v.3i	["][", "\141\000\142"]	097][000][098	perl #39530
%#*v.2x	["][", "\141\000\142"]	0x61][00][0x62	perl #39530
%#*v.2X	["][", "\141\000\142"]	0X61][00][0X62	perl #39530
%#*v.8b	["][", "\141\017\142"]	0b01100001][0b00001111][0b01100010	perl #39530
%#*v.4o	["][", "\141\017\142"]	0141][0017][0142	perl #39530
%#*v.3i	["][", "\141\017\142"]	097][015][098	perl #39530
%#*v.2x	["][", "\141\017\142"]	0x61][0x0f][0x62	perl #39530
%#*v.2X	["][", "\141\017\142"]	0X61][0X0F][0X62	perl #39530
%#v.8b	"\141\x{1e01}\000\142\x{1e03}"	0b01100001.0b1111000000001.00000000.0b01100010.0b1111000000011	perl #39530
%#v.4o	"\141\x{1e01}\000\142\x{1e03}"	0141.017001.0000.0142.017003	perl #39530
%#v.3i	"\141\x{1e01}\000\142\x{1e03}"	097.7681.000.098.7683	perl #39530
%#v.2x	"\141\x{1e01}\000\142\x{1e03}"	0x61.0x1e01.00.0x62.0x1e03	perl #39530
%#v.2X	"\141\x{1e01}\000\142\x{1e03}"	0X61.0X1E01.00.0X62.0X1E03	perl #39530
%#v.8b	"\141\x{1e01}\017\142\x{1e03}"	0b01100001.0b1111000000001.0b00001111.0b01100010.0b1111000000011	perl #39530
%#v.4o	"\141\x{1e01}\017\142\x{1e03}"	0141.017001.0017.0142.017003	perl #39530
%#v.3i	"\141\x{1e01}\017\142\x{1e03}"	097.7681.015.098.7683	perl #39530
%#v.2x	"\141\x{1e01}\017\142\x{1e03}"	0x61.0x1e01.0x0f.0x62.0x1e03	perl #39530
%#v.2X	"\141\x{1e01}\017\142\x{1e03}"	0X61.0X1E01.0X0F.0X62.0X1E03	perl #39530
%V-%s	["Hello"]	%V-Hello INVALID
%K %d %d	[13, 29]	%K 13 29 INVALID
%*.*K %d	[13, 29, 76]	%*.*K 13 INVALID
%4$K %d	[45, 67]	%4$K 45 INVALID
%d %K %d	[23, 45]	23 %K 45 INVALID
%*v*999\$d %d %d	[11, 22, 33]	%*v*999\$d 11 22 INVALID
%#b	0	0
%#o	0	0
%#x	0	0
%2147483647$v2d	''	
%*2147483647$v2d	''	 UNINIT

# vim: sw=4 et
