| 
									
										
										
										
											2001-04-13 08:09:50 +00:00
										 |  |  | from test_support import verbose | 
					
						
							|  |  |  | import locale | 
					
						
							| 
									
										
										
										
											2001-04-15 13:15:56 +00:00
										 |  |  | import sys | 
					
						
							| 
									
										
										
										
											2001-04-13 08:09:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | oldlocale = locale.setlocale(locale.LC_NUMERIC) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-04-15 13:15:56 +00:00
										 |  |  | tloc = "en_US" | 
					
						
							|  |  |  | if sys.platform[:3] == "win": | 
					
						
							|  |  |  |     tloc = "en" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-04-13 08:09:50 +00:00
										 |  |  | try: | 
					
						
							| 
									
										
										
										
											2001-04-15 13:15:56 +00:00
										 |  |  |     locale.setlocale(locale.LC_NUMERIC, tloc) | 
					
						
							| 
									
										
										
										
											2001-04-13 08:09:50 +00:00
										 |  |  | except locale.Error: | 
					
						
							| 
									
										
										
										
											2001-04-15 13:15:56 +00:00
										 |  |  |     raise ImportError, "test locale %s not supported" % tloc | 
					
						
							| 
									
										
										
										
											2001-04-13 08:09:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | def testformat(formatstr, value, grouping = 0, output=None): | 
					
						
							|  |  |  |     if verbose: | 
					
						
							|  |  |  |         if output: | 
					
						
							|  |  |  |             print "%s %% %s =? %s ..." %\ | 
					
						
							|  |  |  |                 (repr(formatstr), repr(value), repr(output)), | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             print "%s %% %s works? ..." % (repr(formatstr), repr(value)), | 
					
						
							|  |  |  |     result = locale.format(formatstr, value, grouping = grouping) | 
					
						
							|  |  |  |     if output and result != output: | 
					
						
							|  |  |  |         if verbose: | 
					
						
							|  |  |  |             print 'no' | 
					
						
							|  |  |  |         print "%s %% %s == %s != %s" %\ | 
					
						
							|  |  |  |               (repr(formatstr), repr(value), repr(result), repr(output)) | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         if verbose: | 
					
						
							|  |  |  |             print "yes" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try: | 
					
						
							|  |  |  |     testformat("%f", 1024, grouping=1, output='1,024.000000') | 
					
						
							|  |  |  |     testformat("%f", 102, grouping=1, output='102.000000') | 
					
						
							|  |  |  |     testformat("%f", -42, grouping=1, output='-42.000000') | 
					
						
							|  |  |  |     testformat("%+f", -42, grouping=1, output='-42.000000') | 
					
						
							|  |  |  |     testformat("%20.f", -42, grouping=1, output='                 -42') | 
					
						
							|  |  |  |     testformat("%+10.f", -4200, grouping=1, output='    -4,200')     | 
					
						
							|  |  |  |     testformat("%-10.f", 4200, grouping=1, output='4,200     ')     | 
					
						
							|  |  |  | finally: | 
					
						
							|  |  |  |     locale.setlocale(locale.LC_NUMERIC, oldlocale) |