public void GetIdStructure() { var ga1 = new StructureGenerator("H2O", 100, 2000, 0.20); var molecule1 = ga1.FindSolution(); var idStructure1 = _linkService.GetIdStructure(molecule1.LinkEdges); Assert.AreEqual("HO2-OH2", idStructure1); var ga2 = new StructureGenerator("C2H6O", 100, 2000, 0.20); var molecule2 = ga2.FindSolution(); var idStructure2 = _linkService.GetIdStructure(molecule2.LinkEdges); Assert.AreEqual("CC2-CH5-CO1-HC5-HO1-OC1-OH1", idStructure2); }
private void StartSearch() { try { CancelSearch(); ClearCharts(); var populationSize = Int32.Parse(this.txtPopulationSize.Text); var maxGenerations = Int32.Parse(this.txtMaxGenerations.Text); var mutationRate = Double.Parse(this.txtMutationRate.Text); var nomenclature = this.txtNomenclature.Text; StartTimer(); this.searchThread = new Thread(() => { SetStatus("Iniciando população..."); ga = new StructureGenerator(nomenclature, populationSize, maxGenerations, mutationRate); StartWatchers(); SetStatus("Procurando estrutura molecular..."); MoleculeGraph molecule = ga.FindSolution(); SetDataSource(gridResult, molecule.LinkEdges.Select(x => new { From = x.From.ToString(), To = x.To.ToString() }).ToList()); SetStatus("Fim!"); }); searchThread.Start(); new Task(() => { while (searchThread != null && searchThread.IsAlive) { Thread.Sleep(500); } SetEnabled(btnCancel, false); SetEnabled(btnSearch, true); timer1.Enabled = false; }).Start(); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.Message); } }