- Timestamp:
- 02/17/20 17:29:52 (4 years ago)
- Location:
- branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/HeuristicLab.JsonInterface.App.csproj
r17439 r17442 38 38 </PropertyGroup> 39 39 <ItemGroup> 40 <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> 41 <HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> 42 </Reference> 40 43 <Reference Include="System" /> 41 44 <Reference Include="System.Core" /> … … 49 52 <ItemGroup> 50 53 <None Include="HeuristicLab.snk" /> 54 <None Include="packages.config" /> 51 55 <None Include="Plugin.cs.frame" /> 52 56 <Compile Include="Runner.cs" /> -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/Plugin.cs.frame
r17330 r17442 38 38 public class HeuristicLabJsonInterfaceAppApplication : ApplicationBase { 39 39 public override void Run(ICommandLineArgument[] args) { 40 if(args.Length == 3 && args[1] is OpenArgument && args[2] is OpenArgument) {41 Runner.Run(args[1].Value.ToString(), args[2].Value.ToString() );40 if(args.Length == 4 && args[1] is OpenArgument && args[2] is OpenArgument && (args[3] is StringArgument || args[3] is OpenArgument)) { 41 Runner.Run(args[1].Value.ToString(), args[2].Value.ToString(), args[3].Value.ToString()); 42 42 } 43 43 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/Runner.cs
r17439 r17442 8 8 using HeuristicLab.Optimization; 9 9 using HeuristicLab.SequentialEngine; 10 using Newtonsoft.Json.Linq; 10 11 11 12 namespace HeuristicLab.JsonInterface.App { 12 13 internal static class Runner { 13 internal static void Run(string template, string config, string outputFile = @"C:\Workspace\test.txt") {14 IOptimizer optimizer = JsonTemplateInstantiator.Instantiate(template, config );14 internal static void Run(string template, string config, string outputFile) { 15 IOptimizer optimizer = JsonTemplateInstantiator.Instantiate(template, config, out IEnumerable<string> allowedResultNames); 15 16 if(optimizer is EngineAlgorithm e) 16 17 e.Engine = new SequentialEngine.SequentialEngine(); … … 18 19 Task task = optimizer.StartAsync(); 19 20 while(!task.IsCompleted) { 20 WriteResultsToFile(outputFile, optimizer );21 WriteResultsToFile(outputFile, optimizer, allowedResultNames); 21 22 Thread.Sleep(100); 22 23 } 23 WriteResultsToFile(outputFile, optimizer );24 WriteResultsToFile(outputFile, optimizer, allowedResultNames); 24 25 } 25 26 26 private static void WriteResultsToFile(string file, IOptimizer optimizer ) =>27 File.WriteAllText(file, FetchResults(optimizer ));27 private static void WriteResultsToFile(string file, IOptimizer optimizer, IEnumerable<string> allowedResultNames) => 28 File.WriteAllText(file, FetchResults(optimizer, allowedResultNames)); 28 29 29 private static string FetchResults(IOptimizer optimizer) { 30 StringBuilder sb = new StringBuilder(); 30 private static string FetchResults(IOptimizer optimizer, IEnumerable<string> allowedResultNames) { 31 JArray arr = new JArray(); 32 31 33 foreach (var run in optimizer.Runs) { 32 sb.AppendLine($"--- {run.ToString()} ---"); 34 JObject obj = new JObject(); 35 arr.Add(obj); 36 obj.Add("Run", JToken.FromObject(run.ToString())); 33 37 foreach (var res in run.Results) { 34 sb.AppendLine($"{res.Key}: {res.Value}"); 38 if (allowedResultNames.Contains(res.Key)) 39 obj.Add(res.Key, JToken.FromObject(res.Value.ToString())); 35 40 } 36 41 } 37 return sb.ToString();42 return SingleLineArrayJsonWriter.Serialize(arr); 38 43 } 39 44 }
Note: See TracChangeset
for help on using the changeset viewer.