mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	and the .seed() and .whseed() methods failed to reset it. In other words, setting the seed didn't completely determine the sequence of results produced by random.gauss(). It does now. Programs repeatedly mixing calls to a seed method with calls to gauss() may see different results now. Bugfix candidate (random.gauss() has always been broken in this way), despite that it may change results.
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			550 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			550 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import test_support
 | 
						|
import random
 | 
						|
 | 
						|
# Ensure that the seed() method initializes all the hidden state.  In
 | 
						|
# particular, through 2.2.1 it failed to reset a piece of state used by
 | 
						|
# (and only by) the .gauss() method.
 | 
						|
 | 
						|
for seed in 1, 12, 123, 1234, 12345, 123456, 654321:
 | 
						|
    for seeder in random.seed, random.whseed:
 | 
						|
        seeder(seed)
 | 
						|
        x1 = random.random()
 | 
						|
        y1 = random.gauss(0, 1)
 | 
						|
 | 
						|
        seeder(seed)
 | 
						|
        x2 = random.random()
 | 
						|
        y2 = random.gauss(0, 1)
 | 
						|
 | 
						|
        test_support.vereq(x1, x2)
 | 
						|
        test_support.vereq(y1, y2)
 |