public static Random CreateRandom(int seedFactor, SeedVariatorType seedVariatorType) { EnsureInitialized(); MethodBase caller = null; int seed = unchecked (seedFactor + globalSeedFactor + GetSeedVariatorFactor(seedVariatorType, ref caller)); if (DebugInfo.IsRunningOnBuildServer) { TestLog.Info("RandomManager: Created Random has seed {0}.", seed); #if DEBUG if (caller == null) { caller = GetCallingMethod(); } TestLog.Info("RandomManager: Caller: {0}.{1}.", caller.DeclaringType.Name, caller.Name); #endif } return(new Random(seed)); }
private static int GetSeedVariatorFactor(SeedVariatorType seedVariatorType, ref MethodBase caller) { if (seedVariatorType == SeedVariatorType.None) { return(0); } int seedFactor = 0; if ((seedVariatorType & SeedVariatorType.CallingAssembly) != 0) { seedFactor += Path.GetFileName(Assembly.GetCallingAssembly().Location).GetHashCode(); } caller = null; if ((seedVariatorType & SeedVariatorType.CallingMethod) != 0) { if (caller == null) { caller = GetCallingMethod(); } seedFactor += caller.Name.GetHashCode(); } if ((seedVariatorType & SeedVariatorType.CallingMethod) != 0 || (seedVariatorType & SeedVariatorType.CallingType) != 0) { if (caller == null) { caller = GetCallingMethod(); } seedFactor += caller.DeclaringType.FullName.GetHashCode(); } if ((seedVariatorType & SeedVariatorType.Day) != 0) { seedFactor += DateTime.Today.DayOfYear; } return(seedFactor); }
public override Random CreateRandom2(SeedVariatorType variatorType) { return(RandomManager.CreateRandom(variatorType)); }
public virtual Random CreateRandom2(SeedVariatorType variatorType) { return(RandomManager.CreateRandom(variatorType)); }
public static Random CreateRandom(SeedVariatorType seedVariatorType) { return(CreateRandom(0, seedVariatorType)); }