1#! /usr/bin/env python 2 3from __future__ import print_function 4from openturns import * 5 6TESTPREAMBLE() 7 8try: 9 # Test the initialization method 10 RandomGenerator.SetSeed(0) 11 12 # Test the state accessor for reading 13 initialState = RandomGenerator.GetState() 14 print("initialState=", repr(initialState)) 15 # Test the generation of one realization 16 realization = RandomGenerator.Generate() 17 print("one realization=%.6f" % realization) 18 state = RandomGenerator.GetState() 19 print("state=", repr(state)) 20 print("new state index=", state.getIndex()) 21 22 # Test the generation of several realizations 23 size = 10000 24 several = RandomGenerator.Generate(size) 25 print(size, " realizations, first=%.6f" % 26 several[0], ", last=%.6f" % several[size - 1]) 27 28 # Test the state accessor for writing 29 RandomGenerator.SetState(initialState) 30 print("restoring initial state, one realization=%.6f" % 31 RandomGenerator.Generate()) 32 # Test the uniformity of the random generator 33 size = 100000 34 manyPoints = RandomGenerator.Generate(size) 35 slice = 10 36 frequencies = Point(slice, 0.0) 37 mean = 0.0 38 for i in range(size): 39 frequencies[int(slice * manyPoints[i])] = frequencies[ 40 int(slice * manyPoints[i])] + 1 41 mean = mean + manyPoints[i] 42 43 mean = mean / size 44 print("mean of", size, "realizations= %.12f" % mean) 45 for i in range(slice): 46 frequencies[i] = frequencies[i] / size 47 print("frequency in slice [", ( 48 1.0 * i) / slice, ",", (i + 1.0) / slice, "]=", frequencies[i]) 49 50 print("One integer generation in [[0, ", slice - 1, "]]=", 51 RandomGenerator.IntegerGenerate(slice)) 52 print("Another integer generation in [[0, ", slice - 1, "]]=", 53 RandomGenerator.IntegerGenerate(slice)) 54 manyUnsignedInteger = RandomGenerator.IntegerGenerate(size, slice) 55 frequencies = Point(slice, 0.0) 56 mean = 0.0 57 for i in range(size): 58 frequencies[manyUnsignedInteger[i]] = frequencies[ 59 manyUnsignedInteger[i]] + 1 60 mean = mean + manyUnsignedInteger[i] 61 62 mean = mean / size 63 print("mean of ", size, " integer realizations=", mean) 64 for i in range(slice): 65 frequencies[i] = frequencies[i] / size 66 print("frequency for value ", i, "=", frequencies[i]) 67 68except: 69 import sys 70 print("t_RandomGenerator.py", sys.exc_info()[0], sys.exc_info()[1]) 71