public bool Verify(SetupScript setup) { if (!VerifyListEquality(setup.GeneTypes.Select(x => x.Name).ToList(), Genes)) { return(false); } if (!VerifyListEquality(setup.Initializers.Select(x => x.Name).ToList(), Initializers)) { return(false); } if (!VerifyListEquality(setup.FitnessFunctions.Select(x => x.Name).ToList(), FitnessFunctions)) { return(false); } if (!VerifyListEquality(setup.Selectors.Select(x => x.Name).ToList(), Selectors)) { return(false); } if (!VerifyListEquality(setup.Recombiners.Select(x => x.Name).ToList(), Recombiners)) { return(false); } if (!VerifyListEquality(setup.Mutators.Select(x => x.Name).ToList(), Mutators)) { return(false); } if (!VerifyListEquality(setup.Terminators.Select(x => x.Name).ToList(), Terminators)) { return(false); } Debug.Log("Settings verified"); return(true); }
public void Launch() { if (generations != null) { generations.Reset(); } if (setup == null) { setup = GetComponent <SetupScript>(); } ui = GetComponent <UIManager>(); cars = setup.Setup(); carStates = new Dictionary <GameObject, CarState>(); carExecutors = new Dictionary <GameObject, GeneExecutor>(); generations = GetComponent <GenerationDB>(); fitness = (IFitnessFunction)System.Activator.CreateInstance(setup.FitnessFunctions.Where(type => type.Name.Equals(selectedFitnessFunction)).First()); terminator = (ITerminator)System.Activator.CreateInstance(setup.Terminators.Where(type => type.Name.Equals(selectedTerminator)).First()); mutator = (IMutator)System.Activator.CreateInstance(setup.Mutators.Where(type => type.Name.Equals(selectedMutator)).First()); foreach (string genetype in selectedGenes) { mutator.AssignGene(((IGene)System.Activator.CreateInstance(setup.GeneTypes.Where(type => type.Name.Equals(genetype)).First())).ID); } selector = (ISelector)System.Activator.CreateInstance(setup.Selectors.Where(type => type.Name.Equals(selectedSelector)).First()); recombiner = (IRecombiner)System.Activator.CreateInstance(setup.Recombiners.Where(type => type.Name.Equals(selectedRecombiner)).First()); init = (IInitializer)System.Activator.CreateInstance(setup.Initializers.Where(type => type.Name.Equals(selectedInitializer)).First()); foreach (string genetype in selectedGenes) { init.AssignGene(((IGene)System.Activator.CreateInstance(setup.GeneTypes.Where(type => type.Name.Equals(genetype)).First())).ID); } SetupCars(); simulation = StartCoroutine(FullSimulation()); }
public void ModifiesFolders() { // Given FileSystem fileSystem = new FileSystem { RootPath = @"C:/A", OutputPath = "C" }; fileSystem.InputPaths.Add("B"); PackagesCollection packages = new PackagesCollection(fileSystem); AssemblyCollection assemblies = new AssemblyCollection(); string setup = @" FileSystem.RootPath = @""C:\X""; FileSystem.InputPaths.Add(""Y""); FileSystem.OutputPath = ""Z""; "; SetupScript setupScript = new SetupScript(setup); setupScript.Compile(); // When setupScript.Invoke(packages, assemblies, fileSystem); // Then Assert.AreEqual(@"C:/X", fileSystem.RootPath.FullPath); Assert.AreEqual(@"Z", fileSystem.OutputPath.FullPath); CollectionAssert.AreEquivalent(new[] { "input", "B", "Y" }, fileSystem.InputPaths.Select(x => x.FullPath)); }
public SettingContainer(SetupScript setup) { Genes = setup.GeneTypes.Select(x => x.Name).ToList(); SelectedGenes = setup.GeneTypes.Select(x => x.Name).ToList(); Initializers = setup.Initializers.Select(x => x.Name).ToList(); FitnessFunctions = setup.FitnessFunctions.Select(x => x.Name).ToList(); Selectors = setup.Selectors.Select(x => x.Name).ToList(); Recombiners = setup.Recombiners.Select(x => x.Name).ToList(); Mutators = setup.Mutators.Select(x => x.Name).ToList(); Terminators = setup.Terminators.Select(x => x.Name).ToList(); SelectedInitializer = Initializers.First(); SelectedFitnessFunction = FitnessFunctions.First(); SelectedSelector = Selectors.First(); SelectedRecombiner = Recombiners.First(); SelectedMutator = Mutators.First(); SelectedTerminator = Terminators.First(); CarInstances = 50; GenerationSize = 200; SequenceLength = 10; GeneDuration = 10; }
// Use this for initialization void Start() { setupScript = GameObject.Find("SetupControl").GetComponent<SetupScript>(); Debug.Log(this.gameObject.name); }