private static string BufferToLine(Buffer buffer) { int[] firstEntries = { buffer.NumMachinesSurrounding, buffer.UpMachine, buffer.Up2Machine, buffer.DownMachine, buffer.Size }; var lastEntry = buffer.SelectionProbability; var values = Array.ConvertAll(firstEntries, v => v.ToString()).ToList(); values.Add(lastEntry.ToString(CultureInfo.InvariantCulture)); return(string.Join(" ", values)); }
public static FlowlineConfiguration Generate(int seed) { var rand = new Random(seed); var flc = new FlowlineConfiguration { RequiredRelativeMarginOfError = 0.005f, NumMachines = 4, NumBuffers = 3, // add 1 since Random.Next the ub is non inclusive! MilkRunCycleLength = rand.Next(30, 120 + 1) }; var variationMue = Utils.Uniform(rand, 0.0f, 0.2f); Machine GenerateMachine(int i) { return(Machine.ConstructDefaultMachine( Utils.Uniform(rand, 1.0f - variationMue, 1.0f + variationMue), (int)Math.Round(Utils.Uniform(rand, 0.5f, 1.5f) * flc.MilkRunCycleLength))); } var bufferMean = Utils.Uniform(rand, 0.0f, 40.0f); var bufferFactor = (float)rand.NextDouble(); Buffer GenerateBuffer(int i) { return(Buffer.ConstructDefaultBuffer( (int)Math.Round(Utils.Uniform(rand, bufferMean * (1 - bufferFactor), bufferMean * (1 + bufferFactor))), i)); } flc.Machines = Enumerable.Range(0, flc.NumMachines).Select(GenerateMachine).ToList(); flc.Buffers = Enumerable.Range(0, flc.NumBuffers).Select(GenerateBuffer).ToList(); return(flc); }