Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/HeuristicLab.Tests/HeuristicLab.JsonInterface/GeneratorInstantiatorTest.cs @ 17330

Last change on this file since 17330 was 17330, checked in by dpiringe, 5 years ago

#3026

  • changed the access modifiers in Constants from public to internal
  • added comments in JCGenerator
  • the config file for JCInstantiator is now optional
  • added Runner.cs (forgot last commit)
File size: 2.4 KB
Line 
1using System;
2using System.IO;
3using System.Linq;
4using HeuristicLab.Algorithms.GeneticAlgorithm;
5using HeuristicLab.Encodings.PermutationEncoding;
6using HeuristicLab.JsonInterface;
7using HeuristicLab.Operators;
8using HeuristicLab.Optimization;
9using HeuristicLab.Problems.TravelingSalesman;
10using Microsoft.VisualStudio.TestTools.UnitTesting;
11
12namespace HeuristicLab.JsonInterface.Tests {
13  [TestClass]
14  public class GeneratorInstantiatorTest {
15    private string templateFilePath = Directory.GetCurrentDirectory()+"\\Template.json";
16    private string configFilePath = Directory.GetCurrentDirectory() + "\\Config.json";
17
18    [TestInitialize()]
19    public void CreateTempFiles() {
20      GeneticAlgorithm alg = new GeneticAlgorithm();
21      alg.Problem = new TravelingSalesmanProblem();
22      JCGenerator gen = new JCGenerator();
23      //File.WriteAllText(@"C:\Workspace\Template.json", gen.GenerateTemplate(alg, tsp));
24      File.WriteAllText(templateFilePath, gen.GenerateTemplate(alg));
25      File.WriteAllText(configFilePath, "["+
26        "{\"Name\": \"Seed\",\"Default\": 55555,\"Path\": \"Genetic Algorithm (GA).Seed\"},"+
27        "{\"Name\": \"Crossover\", \"Path\": \"Genetic Algorithm (GA).Crossover\", \"Default\": \"MultiPermutationCrossover\"}," +
28        "{\"Name\": \"Elites\", \"Path\": \"Genetic Algorithm (GA).Elites\", \"Default\": 5,\"Range\":[-2147483648,2147483647]}" +
29        "]");
30    }
31   
32    [TestCleanup()]
33    public void ClearTempFiles() {
34      File.Delete(templateFilePath);
35      File.Delete(configFilePath);
36    }
37
38    [TestMethod]
39    public void TestInstantiator() {
40      JCInstantiator configurator = new JCInstantiator();
41      GeneticAlgorithm alg = (GeneticAlgorithm)configurator.Instantiate(templateFilePath, configFilePath);
42
43      Assert.AreEqual(55555, alg.Seed.Value);
44      Assert.IsTrue(alg.Crossover is MultiPermutationCrossover);
45      Assert.AreEqual(5, alg.Elites.Value);
46    }
47
48    [TestMethod]
49    [ExpectedException(typeof(ArgumentOutOfRangeException))]
50    public void TestRangeChangeWithConfig() {
51      File.WriteAllText(configFilePath, "[{\"Name\": \"MutationProbability\", \"Path\": \"Genetic Algorithm (GA).MutationProbability\", \"Default\": 2.0,\"Range\":[0.0,2.0]}]");
52      JCInstantiator configurator = new JCInstantiator();
53      GeneticAlgorithm alg = (GeneticAlgorithm)configurator.Instantiate(templateFilePath, configFilePath);
54    }
55  }
56}
Note: See TracBrowser for help on using the repository browser.