Changeset 18040
- Timestamp:
- 08/04/21 17:19:05 (3 years ago)
- Location:
- branches/3026_IntegrationIntoSymSpace
- Files:
-
- 2 added
- 1 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
r17198 r18040 269 269 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start).", new DoubleValue(0))); 270 270 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorUpperBound", "The upper bound of the comparison factor (end).", new DoubleValue(1))); 271 Parameters.Add(new OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier>("ComparisonFactorModifier", "The operator used to modify the comparison factor.", new ItemSet<IDiscreteDoubleValueModifier>( new IDiscreteDoubleValueModifier[] { new LinearDiscreteDoubleValueModifier() }), new LinearDiscreteDoubleValueModifier()));271 Parameters.Add(new OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier>("ComparisonFactorModifier", "The operator used to modify the comparison factor.", new ItemSet<IDiscreteDoubleValueModifier>())); 272 272 Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumSelectionPressure", "The maximum selection pressure that terminates the algorithm.", new DoubleValue(100))); 273 273 Parameters.Add(new ValueLookupParameter<BoolValue>("OffspringSelectionBeforeMutation", "True if the offspring selection step should be applied before mutation, false if it should be applied after mutation.", new BoolValue(false))); -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueParameterConverter.cs
r17843 r18040 16 16 IParameter parameter = value as IParameter; 17 17 18 if (parameter.ActualValue == null) 19 parameter.ActualValue = Instantiate(parameter.DataType); 20 21 if(parameter.ActualValue != null) { 22 if (data.Children == null || data.Children.Count() == 0) 23 root.Inject(parameter.ActualValue, data, root); 24 else 25 root.Inject(parameter.ActualValue, data, root); 26 18 if (!(data is EmptyJsonItem)) { 19 if (parameter.ActualValue == null) 20 parameter.ActualValue = Instantiate(parameter.DataType); 21 root.Inject(parameter.ActualValue, data, root); 27 22 } 28 23 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj
r17924 r18040 90 90 <Compile Include="JsonItems\EmptyJsonItem.cs" /> 91 91 <Compile Include="JsonItems\IntervalRestrictedArrayJsonItem.cs" /> 92 <Compile Include="JsonItems\IntervalRestrictedJsonItem.cs" /> 92 93 <Compile Include="JsonItems\IntervalRestrictedMatrixJsonItem.cs" /> 93 94 <Compile Include="JsonItems\IntervalRestrictedValueJsonItem.cs" /> -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItems/IntervalRestrictedValueJsonItem.cs
r17828 r18040 3 3 4 4 namespace HeuristicLab.JsonInterface { 5 public abstract class IntervalRestrictedValueJsonItem<T> : ValueJsonItem<T>, IIntervalRestrictedJsonItem<T> 5 public abstract class IntervalRestrictedValueJsonItem<T> : ValueJsonItem<T>, IIntervalRestrictedJsonItem<T> // TODO: intervalrestriction before value? 6 6 where T : IComparable { 7 7 public T Minimum { get; set; } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItems/RangedJsonItem.cs
r18031 r18040 4 4 5 5 namespace HeuristicLab.JsonInterface { 6 public abstract class RangedJsonItem<T> : IntervalRestricted ValueJsonItem<T>, IRangedJsonItem<T>6 public abstract class RangedJsonItem<T> : IntervalRestrictedJsonItem<T>, IRangedJsonItem<T> 7 7 where T : IComparable { 8 8 public T MinValue { get; set; } 9 9 10 public T MaxValue { get; set; } 10 11 -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonTemplateGenerator.cs
r18030 r18040 50 50 serializer.Serialize(optimizer, hlFilePath); 51 51 // overwrite string for relative path 52 hlFilePath = Path.Combine($". {Path.DirectorySeparatorChar}", $"{templateName}.hl");52 hlFilePath = Path.Combine($".", $"{templateName}.hl"); 53 53 #endregion 54 54 -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonTemplateInstantiator.cs
r18039 r18040 50 50 51 51 #region Parse Files 52 string templateFileFullPath = Path.GetFullPath(templateFile); 52 53 Template = JToken.Parse(File.ReadAllText(templateFile)); 53 54 if(!string.IsNullOrEmpty(configFile)) 54 Config = JArray.Parse(File.ReadAllText( configFile));55 Config = JArray.Parse(File.ReadAllText(Path.GetFullPath(configFile))); 55 56 #endregion 56 57 … … 61 62 relativePath = relativePath.Remove(0, 2); // remove first 2 chars -> indicates the current directory 62 63 63 string hLFileLocation = $"{Path.GetDirectoryName(templateFile)}{Path.DirectorySeparatorChar}{relativePath}"; 64 64 string hLFileLocation = Path.Combine(Path.GetDirectoryName(templateFileFullPath), relativePath); 65 65 #region Deserialize HL File 66 66 ProtoBufSerializer serializer = new ProtoBufSerializer(); -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.PluginInfrastructure/3.3/Main.cs
r18035 r18040 23 23 using System.IO; 24 24 using System.Linq; 25 using System.Reflection; 25 26 using System.Windows.Forms; 26 27 using HeuristicLab.PluginInfrastructure.Manager; … … 55 56 56 57 public static void HeadlessRun(string[] args) { 57 string pluginPath = Path.GetFullPath( Application.StartupPath);58 string pluginPath = Path.GetFullPath(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); 58 59 var pluginManager = new PluginManager(pluginPath); 59 60 pluginManager.DiscoverAndCheckPlugins(); -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs
r17180 r18040 39 39 // jkarder: skip this test for the SymbolicDataAnalysisModelMathView (and for views that derive from it) 40 40 // reason: our new build agent cannot create an instance of this view due to the use of System.Windows.Forms.WebBrowser 41 if (typeof( HeuristicLab.Problems.DataAnalysis.Symbolic.Views.SymbolicDataAnalysisModelMathView).IsAssignableFrom(viewType))41 if (typeof(Problems.DataAnalysis.Symbolic.Views.SymbolicDataAnalysisModelMathView).IsAssignableFrom(viewType)) 42 42 continue; 43 43 -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab-3.3/DeepCloneableCloningTest.cs
r17180 r18040 44 44 public DeepCloneableCloningTest() { 45 45 excludedTypes = new HashSet<Type> { 46 typeof ( HeuristicLab.Problems.DataAnalysis.Dataset),47 typeof ( HeuristicLab.Problems.TravelingSalesman.DistanceMatrix),48 typeof ( HeuristicLab.Problems.DataAnalysis.ClassificationEnsembleSolution),49 typeof ( HeuristicLab.Problems.DataAnalysis.RegressionEnsembleSolution),50 typeof ( HeuristicLab.Problems.Orienteering.DistanceMatrix),51 typeof ( HeuristicLab.Problems.PTSP.DistanceMatrix)46 typeof (Problems.DataAnalysis.Dataset), 47 typeof (Problems.TravelingSalesman.DistanceMatrix), 48 typeof (Problems.DataAnalysis.ClassificationEnsembleSolution), 49 typeof (Problems.DataAnalysis.RegressionEnsembleSolution), 50 typeof (Problems.Orienteering.DistanceMatrix), 51 typeof (Problems.PTSP.DistanceMatrix) 52 52 }; 53 53 excludedTypes.Add(typeof(SymbolicExpressionGrammar).Assembly.GetType("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.EmptySymbolicExpressionTreeGrammar")); 54 55 foreach (var symbolType in ApplicationManager.Manager.GetTypes(typeof( HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbol)))54 55 foreach (var symbolType in ApplicationManager.Manager.GetTypes(typeof(Encodings.SymbolicExpressionTreeEncoding.Symbol))) 56 56 excludedTypes.Add(symbolType); 57 57 // SimpleSymbol is a non-discoverable type and thus needs to be added manually 58 excludedTypes.Add(typeof( HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.SimpleSymbol));59 foreach (var grammarType in ApplicationManager.Manager.GetTypes(typeof( HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.SymbolicExpressionGrammarBase)))58 excludedTypes.Add(typeof(Encodings.SymbolicExpressionTreeEncoding.SimpleSymbol)); 59 foreach (var grammarType in ApplicationManager.Manager.GetTypes(typeof(Encodings.SymbolicExpressionTreeEncoding.SymbolicExpressionGrammarBase))) 60 60 excludedTypes.Add(grammarType); 61 61 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPMultiplexerSampleTest.cs
r17180 r18040 57 57 58 58 public static OffspringSelectionGeneticAlgorithm CreateGpMultiplexerSample() { 59 var problem = new HeuristicLab.Problems.GeneticProgramming.Boolean.MultiplexerProblem();59 var problem = new Problems.GeneticProgramming.Boolean.MultiplexerProblem(); 60 60 problem.Name = "11-Multiplexer Problem"; 61 61 problem.Encoding.TreeLength = 50; -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GeSymbolicRegressionSampleTest.cs
r17180 r18040 60 60 61 61 #region Problem Configuration 62 var problem = new HeuristicLab.Problems.GrammaticalEvolution.GEArtificialAntProblem();62 var problem = new Problems.GrammaticalEvolution.GEArtificialAntProblem(); 63 63 #endregion 64 64 #region Algorithm Configuration … … 99 99 100 100 #region Problem Configuration 101 var problem = new HeuristicLab.Problems.GrammaticalEvolution.GESymbolicRegressionSingleObjectiveProblem();101 var problem = new Problems.GrammaticalEvolution.GESymbolicRegressionSingleObjectiveProblem(); 102 102 103 103 #endregion -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab-3.3/Samples/LocalSearchKnapsackSampleTest.cs
r17180 r18040 61 61 KnapsackProblem problem = new KnapsackProblem(); 62 62 problem.BestKnownQuality = new DoubleValue(362); 63 problem.BestKnownSolution = new HeuristicLab.Encodings.BinaryVectorEncoding.BinaryVector(new bool[] {63 problem.BestKnownSolution = new Encodings.BinaryVectorEncoding.BinaryVector(new bool[] { 64 64 true , false, false, true , true , true , true , true , false, true , true , true , true , true , true , false, true , false, true , true , false, true , true , false, true , false, true , true , true , false, true , true , false, true , true , false, true , false, true , true , true , true , true , true , true , true , true , true , true , true , true , false, true , false, false, true , true , false, true , true , true , true , true , true , true , true , false, true , false, true , true , true , true , false, true , true , true , true , true , true , true , true}); 65 65 problem.EvaluatorParameter.Value = new KnapsackEvaluator(); -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/SupportVectorMachineTest.cs
r17180 r18040 59 59 var cv = new CrossValidation(); 60 60 cv.Algorithm = new SupportVectorRegression(); 61 var rand = new HeuristicLab.Random.MersenneTwister();61 var rand = new Random.MersenneTwister(); 62 62 double[,] data = GenerateData(1000, rand); 63 63 List<string> variables = new List<string>() { "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "y" }; -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab.JsonInterface/GeneratorInstantiatorTest.cs
r17353 r18040 1 1 using System; 2 using System.Collections.Generic; 2 3 using System.IO; 3 4 using System.Linq; … … 7 8 using HeuristicLab.Operators; 8 9 using HeuristicLab.Optimization; 10 using HeuristicLab.PluginInfrastructure.Manager; 9 11 using HeuristicLab.Problems.TravelingSalesman; 10 12 using Microsoft.VisualStudio.TestTools.UnitTesting; 13 using Newtonsoft.Json.Linq; 11 14 12 15 namespace HeuristicLab.JsonInterface.Tests { 13 16 [TestClass] 14 17 public class GeneratorInstantiatorTest { 15 private string templateFilePath = Directory.GetCurrentDirectory()+"\\Template.json"; 16 private string configFilePath = Directory.GetCurrentDirectory() + "\\Config.json"; 18 private string TmpDirectoryPath => Path.Combine(Directory.GetCurrentDirectory(), "JsonInterfaceTestEnvironment"); 19 private string TemplateName => Path.Combine(TmpDirectoryPath, "Template"); 20 private string TemplateFilePath => $"{TemplateName}.json"; 21 private string ConfigFilePath => Path.Combine(TmpDirectoryPath, "Config.json"); 22 private string OutFilePath => Path.Combine(TmpDirectoryPath, "out.json"); 17 23 18 24 [TestInitialize()] 19 25 public void CreateTempFiles() { 26 string pluginPath = Path.GetFullPath(Directory.GetCurrentDirectory()); 27 var pluginManager = new PluginManager(pluginPath); 28 pluginManager.DiscoverAndCheckPlugins(); 29 30 31 Directory.CreateDirectory(TmpDirectoryPath); 32 20 33 GeneticAlgorithm alg = new GeneticAlgorithm(); 34 alg.PopulationSize.Value = 200; 21 35 alg.Problem = new TravelingSalesmanProblem(); 22 //File.WriteAllText(@"C:\Workspace\Template.json", gen.GenerateTemplate(alg, tsp)); 23 File.WriteAllText(templateFilePath, JCGenerator.GenerateTemplate(alg)); 24 File.WriteAllText(configFilePath, "["+ 25 "{\"Name\": \"Seed\",\"Default\": 55555,\"Path\": \"Genetic Algorithm (GA).Seed\"},"+ 26 "{\"Name\": \"Crossover\", \"Path\": \"Genetic Algorithm (GA).Crossover\", \"Default\": \"MultiPermutationCrossover\"}," + 27 "{\"Name\": \"Elites\", \"Path\": \"Genetic Algorithm (GA).Elites\", \"Default\": 5,\"Range\":[-2147483648,2147483647]}" + 28 "]"); 36 37 var rootItem = JsonItemConverter.Extract(alg); 38 foreach (var item in rootItem) 39 item.Active = true; //activate all items 40 JsonTemplateGenerator.GenerateTemplate(TemplateName, alg, rootItem); 41 42 43 var populationItem = 44 (IntJsonItem)rootItem.Where(x => x.Name.Contains("PopulationSize")).FirstOrDefault(); 45 46 populationItem.Value = 500; 47 48 JArray configItems = new JArray(); 49 configItems.Add(populationItem.GenerateJObject()); 50 51 File.WriteAllText(ConfigFilePath, SingleLineArrayJsonWriter.Serialize(configItems)); 52 29 53 } 30 31 [TestCleanup()] 32 public void ClearTempFiles() { 33 File.Delete(templateFilePath); 34 File.Delete(configFilePath); 54 55 private void CreateTestEnvironment(IOptimizer optimizer, Func<IJsonItem,IEnumerable<IJsonItem>> selectConfigItems, Action body) { 56 // initialization 57 Directory.CreateDirectory(TmpDirectoryPath); 58 59 var rootItem = JsonItemConverter.Extract(optimizer); 60 foreach (var item in rootItem) 61 item.Active = true; //activate all items 62 JsonTemplateGenerator.GenerateTemplate(TemplateName, optimizer, rootItem); 63 64 JArray configItemsJArray = new JArray(); 65 var configItems = selectConfigItems(rootItem); 66 67 foreach(var item in configItems) { 68 configItemsJArray.Add(item.GenerateJObject()); 69 } 70 File.WriteAllText(ConfigFilePath, SingleLineArrayJsonWriter.Serialize(configItemsJArray)); 71 72 // execute test 73 body(); 74 75 // cleanup 76 var files = Directory.GetFiles(TmpDirectoryPath); 77 foreach (var file in files) 78 File.Delete(file); 79 Directory.Delete(TmpDirectoryPath); 35 80 } 36 81 37 82 [TestMethod] 38 public void TestInstantiator() { 39 GeneticAlgorithm alg = (GeneticAlgorithm)JCInstantiator.Instantiate(templateFilePath, configFilePath); 83 public void TestGATSP() { 84 var ga = new GeneticAlgorithm(); 85 ga.PopulationSize.Value = 200; 86 ga.Problem = new TravelingSalesmanProblem(); 40 87 41 Assert.AreEqual(55555, alg.Seed.Value); 42 Assert.IsTrue(alg.Crossover is MultiPermutationCrossover); 43 Assert.AreEqual(5, alg.Elites.Value); 88 CreateTestEnvironment(ga, 89 r => r.Where(x => x.Name.Contains("PopulationSize")) 90 .Cast<IntJsonItem>() 91 .Select(x => { x.Value = 500; return x; }), 92 () => { 93 var result = JsonTemplateInstantiator.Instantiate(TemplateFilePath, ConfigFilePath); 94 var optimizer = (GeneticAlgorithm)result.Optimizer; 95 Assert.AreEqual(500, optimizer.PopulationSize.Value); 96 97 PluginInfrastructure.Main.HeadlessRun(new string[] { "/start:JsonInterface", TemplateFilePath, ConfigFilePath, OutFilePath }); 98 Assert.IsTrue(File.Exists(OutFilePath)); 99 100 var runs = JArray.Parse(File.ReadAllText(OutFilePath)); 101 var results = (JObject)runs[0]; 102 results.Property("Generations"); 103 }); 44 104 } 45 105 46 106 [TestMethod] 47 [ExpectedException(typeof(ArgumentOutOfRangeException))] 48 public void TestRangeChangeWithConfig() { 49 File.WriteAllText(configFilePath, "[{\"Name\": \"MutationProbability\", \"Path\": \"Genetic Algorithm (GA).MutationProbability\", \"Default\": 2.0,\"Range\":[0.0,2.0]}]"); 50 GeneticAlgorithm alg = (GeneticAlgorithm)JCInstantiator.Instantiate(templateFilePath, configFilePath); 107 public void TestGASymReg() { 108 var ga = new GeneticAlgorithm(); 109 ga.PopulationSize.Value = 200; 110 ga.Problem = new Problems.DataAnalysis.Symbolic.Regression.SymbolicRegressionSingleObjectiveProblem(); 111 112 CreateTestEnvironment(ga, 113 r => r.Where(x => x.Name.Contains("PopulationSize")) 114 .Cast<IntJsonItem>() 115 .Select(x => { x.Value = 500; return x; }), 116 () => { 117 var result = JsonTemplateInstantiator.Instantiate(TemplateFilePath, ConfigFilePath); 118 var optimizer = (GeneticAlgorithm)result.Optimizer; 119 Assert.AreEqual(500, optimizer.PopulationSize.Value); 120 121 PluginInfrastructure.Main.HeadlessRun(new string[] { "/start:JsonInterface", TemplateFilePath, ConfigFilePath, OutFilePath }); 122 Assert.IsTrue(File.Exists(OutFilePath)); 123 124 var runs = JArray.Parse(File.ReadAllText(OutFilePath)); 125 var results = (JObject)runs[0]; 126 results.Property("Generations"); 127 }); 128 } 129 130 [TestMethod] 131 public void TestOSGASymReg() { 132 var osga = new Algorithms.OffspringSelectionGeneticAlgorithm.OffspringSelectionGeneticAlgorithm(); 133 osga.PopulationSize.Value = 200; 134 osga.Problem = new Problems.DataAnalysis.Symbolic.Regression.SymbolicRegressionSingleObjectiveProblem(); 135 136 CreateTestEnvironment(osga, 137 r => r.Where(x => x.Name.Contains("PopulationSize")) 138 .Cast<IntJsonItem>() 139 .Select(x => { x.Value = 500; return x; }), 140 () => { 141 var result = JsonTemplateInstantiator.Instantiate(TemplateFilePath, ConfigFilePath); 142 var optimizer = (Algorithms.OffspringSelectionGeneticAlgorithm.OffspringSelectionGeneticAlgorithm)result.Optimizer; 143 Assert.AreEqual(500, optimizer.PopulationSize.Value); 144 145 PluginInfrastructure.Main.HeadlessRun(new string[] { "/start:JsonInterface", TemplateFilePath, ConfigFilePath, OutFilePath }); 146 Assert.IsTrue(File.Exists(OutFilePath)); 147 148 var runs = JArray.Parse(File.ReadAllText(OutFilePath)); 149 var results = (JObject)runs[0]; 150 results.Property("Generations"); 151 }); 152 } 153 154 [TestMethod] 155 public void TestOSGATSP() { 156 var osga = new Algorithms.OffspringSelectionGeneticAlgorithm.OffspringSelectionGeneticAlgorithm(); 157 osga.PopulationSize.Value = 200; 158 osga.Problem = new TravelingSalesmanProblem(); 159 160 CreateTestEnvironment(osga, 161 r => r.Where(x => x.Name.Contains("PopulationSize")) 162 .Cast<IntJsonItem>() 163 .Select(x => { x.Value = 500; return x; }), 164 () => { 165 var result = JsonTemplateInstantiator.Instantiate(TemplateFilePath, ConfigFilePath); 166 var optimizer = (Algorithms.OffspringSelectionGeneticAlgorithm.OffspringSelectionGeneticAlgorithm)result.Optimizer; 167 Assert.AreEqual(500, optimizer.PopulationSize.Value); 168 169 PluginInfrastructure.Main.HeadlessRun(new string[] { "/start:JsonInterface", TemplateFilePath, ConfigFilePath, OutFilePath }); 170 Assert.IsTrue(File.Exists(OutFilePath)); 171 172 var runs = JArray.Parse(File.ReadAllText(OutFilePath)); 173 var results = (JObject)runs[0]; 174 results.Property("Generations"); 175 }); 51 176 } 52 177 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab.Tests.csproj
r18027 r18040 443 443 <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 444 444 <Private>false</Private> 445 </Reference> 446 <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> 447 <HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> 445 448 </Reference> 446 449 <Reference Include="System" /> … … 596 599 <Compile Include="HeuristicLab.IGraph\IGraphWrappersVectorTest.cs" /> 597 600 <Compile Include="HeuristicLab.JsonInterface\GeneratorInstantiatorTest.cs" /> 598 <Compile Include="HeuristicLab.JsonInterface\ConvertableChecks.cs" />599 601 <Compile Include="HeuristicLab.Persistence-3.3\StorableAttributeTests.cs" /> 600 602 <Compile Include="HeuristicLab.Persistence-3.3\UseCases.cs" /> … … 695 697 </None> 696 698 <None Include="HeuristicLab.snk" /> 699 <None Include="packages.config" /> 697 700 <None Include="Test Resources\GA_SymbReg.hl"> 698 701 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> -
branches/3026_IntegrationIntoSymSpace/HeuristicLab/3.3/Program.cs
r18035 r18040 21 21 22 22 using System; 23 using System.IO; 24 using System.Reflection; 23 25 24 26 namespace HeuristicLab { … … 27 29 static void Main(string[] args) { 28 30 if ((args.Length >= 1) && (args[0] == "/start:JsonInterface")) { 29 HeuristicLab.PluginInfrastructure.Main.HeadlessRun(args); 31 try { 32 HeuristicLab.PluginInfrastructure.Main.HeadlessRun(args); 33 } catch (Exception e) { 34 File.WriteAllText(@"C:\Users\David\Desktop\GP_JsonInterface_Example\log.txt", e.Message); 35 } 36 File.WriteAllText(@"C:\Users\David\Desktop\GP_JsonInterface_Example\done.txt", Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); 30 37 } else { 31 38 HeuristicLab.PluginInfrastructure.Main.Run(args);
Note: See TracChangeset
for help on using the changeset viewer.