public void ParseArguments_ValidArguments_DoesNotThrowException() { var args = "-x 15.0 -y 10.0 -r 0.0 -n -s 1x2 InvertedF.xml".Split(); var options = new Options(); Assert.DoesNotThrow(delegate { options.ParseArguments(args); }); }
public void ParseArguments_DutFilenameMissing_ThrowsException() { var args = "-x 10.0 -y 0.0 -r 0.0 -s 1x2 -n".Split(); var options = new Options(); var exception = Assert.Throws<ArgumentException>(delegate { options.ParseArguments(args); }); Assert.True(exception.Message.Contains("specified"), "Incorrect exception message: " + exception.Message); }
public void ParseArguments_BothNoEndoandSarDefined_ThrowsException() { var args = "-x 15.0 -y 10.0 -r 0.0 -n --sar -s 1x2 InvertedF.xml".Split(); var options = new Options(); var exception = Assert.Throws<ArgumentException>(delegate { options.ParseArguments(args); }); Assert.True(exception.Message.Contains("no-endo") && exception.Message.ToLower().Contains("sar"), "Incorrect exception message: " + exception.Message); }
public void ParseArguments_BothSlotIndexAndAllSlotsDefined_ThrowsException() { var args = "-x 15.0 -y 10.0 -r 0.0 -i 2 -a -s 1x2 InvertedF.xml".Split(); var options = new Options(); var exception = Assert.Throws<ArgumentException>(delegate { options.ParseArguments(args); }); Assert.True(exception.Message.Contains("slot-index") && exception.Message.Contains("all-slots"), "Incorrect exception message: " + exception.Message); }
public void ParseArguments_ModuleDoesNotFitSlot_ThrowsException() { var args = "-x 10.0 -y 0.0 -r 0.0 -i 0 -s 2x2 InvertedF.xml".Split(); var options = new Options(); var exception = Assert.Throws<ArgumentException>(delegate { options.ParseArguments(args); }); Assert.True(exception.Message.Contains("does not fit"), "Incorrect exception message: " + exception.Message); }
public SimulationSetup(Options options) { inputFile = options.inputFile; outputDirectory = options.outputDirectory; excludeEndo = options.excludeEndo; slotIndex = (options.slotIndex == null) ? 0 : (uint)options.slotIndex; // FIXME x = options.x; y = options.y; rot = options.rot / 180 * Math.PI; frequency = options.frequency * 1e6; bandwidth = options.bandwidth * 1e6; lambda = c0 / frequency; lambdaMin = c0 / (frequency + bandwidth); moduleSize = options.moduleSize; impedance = options.impedance; }
public static void Run(Options options) { int[] slotIndeces = null; if (options.allSlots == true) { slotIndeces = Endo.slotIndeces[options.moduleSize]; } else { slotIndeces = new int[] { (int)options.slotIndex }; } foreach (int i in slotIndeces) { var t = new SimulationSetup(options); t.slotIndex = (uint)i; t.Initialize(); string suffix; if (options.excludeEndo == true) { suffix = options.moduleSize; } else { suffix = i.ToString(); } JobHandler jh = new JobHandler(); if (options.sarMode) { Console.WriteLine("Generating simulation files in '" + Path.Combine(options.outputDirectory, "sar-" + suffix) + "'"); t.GenerateSarSimulationInput(Path.Combine(options.outputDirectory, "sar-" + suffix)); jh.RunScript(Path.GetFullPath(Path.Combine("sar-" + suffix, "run_sar.cmd"))); } else { Console.WriteLine("Generating simulation files in '" + Path.Combine(options.outputDirectory, "dir-" + suffix) + "'"); t.GenerateFarFieldSimulationInput(Path.Combine(options.outputDirectory, "dir-" + suffix)); jh.RunScript(Path.GetFullPath(Path.Combine("dir-" + suffix, "run_farfield.cmd"))); } } }
static int Main(string[] args) { var options = new Options(); try { options.ParseArguments(args); } catch (ArgumentException e) { Console.Error.WriteLine(Environment.NewLine + "ERROR: " + e.Message); Console.Error.Write(options.GetUsage()); return -1; } options.Print(); Run(options); return 0; }