public void ExecutarCrossOver() { var sw = new Stopwatch(); sw.Start(); var helper = new JavascriptHelper(Path.Combine(Environment.CurrentDirectory, "Require"), true, false); var scriptCode = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "Require", "global.js")); helper.ConfigurarGeracao(); var ast = helper.GerarAst(scriptCode); int no = new Random().Next(0, helper.ContarNos(ast)); var astNova = helper.ExecutarMutacaoExclusao(ast, no); sw.Stop(); Console.WriteLine("ExecutarMutacaoExclusao {0}", sw.Elapsed.ToString(@"hh\:mm\:ss\.ffff")); Assert.AreNotEqual(ast, astNova); sw.Reset(); sw.Start(); string astFilho1, astFilho2; helper.ExecutarCrossOver(ast, astNova, 348, 456, out astFilho1, out astFilho2); sw.Stop(); Console.WriteLine("ExecutarCrossOver {0}", sw.Elapsed.ToString(@"hh\:mm\:ss\.ffff")); var codigo = helper.GerarCodigo(astFilho1); var codigoNovo = helper.GerarCodigo(astFilho2); Assert.AreNotEqual(codigo, codigoNovo); File.WriteAllText("codigo.txt", codigo); File.WriteAllText("codigoNovo.txt", codigoNovo); }
public void GerarCodigo() { const string diretorioExecucao = "Require"; //var scriptCode = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, diretorioExecucao, "global.js")).Replace("\n\n", "").Replace("\n", "").Replace(" ", ""); var astMoment = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, diretorioExecucao, "astUnderscore.txt")); var helper = new JavascriptHelper(Path.Combine(Environment.CurrentDirectory, diretorioExecucao), false, false); helper.ConfigurarGeracao(); var codigo = helper.GerarCodigo(astMoment); //.Replace("\n\n", "").Replace("\n", "").Replace(" ", ""); //Assert.AreEqual(scriptCode, codigo, "Código Inválido"); Assert.AreEqual(codigo, helper.Codigo, "Código Inválido"); }
public void GerarCodigoDoMoment() { const string diretorioExecucao = "Require"; var helper = new JavascriptHelper(Path.Combine(Environment.CurrentDirectory, diretorioExecucao), false, false); helper.ConfigurarGeracao(); var scriptCode = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, diretorioExecucao, "global.js")); var astMoment = helper.GerarAst(scriptCode); File.WriteAllText("astMoment.txt", helper.FormatarStringJson(astMoment)); var codigo = helper.GerarCodigo(astMoment); File.WriteAllText("codigo.txt", scriptCode); File.WriteAllText("codigoNovo.txt", codigo); Assert.AreEqual(scriptCode, helper.Codigo, "Código Inválido"); }
public void ExecutarTestesUnderscoreMutanteComFalha() { var diretorioFontes = Path.Combine(Environment.CurrentDirectory, "Require"); var jhelper = new JavascriptHelper(diretorioFontes, true, true); jhelper.ConfigurarGeracao(); var caminhoJs = string.Format("{0}\\{1}", diretorioFontes, "underscore.js"); var caminhoTestes = string.Format("{0}\\{1}", diretorioFontes, "underscoreTests.js"); var codigo = File.ReadAllText(caminhoJs); var ast = jhelper.GerarAst(codigo); var fit = jhelper.ExecutarTestes(caminhoJs, caminhoTestes); jhelper.ConfigurarMelhorFit(fit); jhelper.ReiniciarEngine(); var novaAst = jhelper.ExecutarMutacaoExclusao(ast, 1190); //continua válido mas falha nos testes [ 4 testes com falha] var novoCodigo = jhelper.GerarCodigo(novaAst); var caminhoNovoJs = string.Format("{0}\\{1}", diretorioFontes, "Novo.js"); File.WriteAllText(caminhoNovoJs, novoCodigo); var novaFit = jhelper.ExecutarTestes(caminhoNovoJs, caminhoTestes); Assert.IsNotEmpty(novoCodigo); Assert.AreNotEqual(fit, novaFit); Assert.Greater(jhelper.TestesComFalha, 0); }