From ba61d8d7a768be573098fb9bdbe6a7d84c68476d Mon Sep 17 00:00:00 2001 From: ItaloCobains Date: Mon, 30 Oct 2023 14:40:32 -0300 Subject: [PATCH] =?UTF-8?q?refatora=C3=A7=C3=A3o(#536):=20Testando=20escre?= =?UTF-8?q?va=20em=20portugol-studio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 52 ++++++++++++++++++++ .vscode/settings.json | 3 +- testes/portugol-studio/interpretador.test.ts | 24 +++++++-- 3 files changed, 74 insertions(+), 5 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 85e4e026..932db8cd 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,6 +4,45 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { + "name": "Portugol-studio > Testes Interpretador", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "--inspect-brk", + "${workspaceRoot}/node_modules/jest/bin/jest.js", + "portugol-studio/interpretador.test.ts", + "--runInBand" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Potigol > Testes Interpretador", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "--inspect-brk", + "${workspaceRoot}/node_modules/jest/bin/jest.js", + "potigol/interpretador.test.ts", + "--runInBand" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Visualg > Testes Interpretador", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "--inspect-brk", + "${workspaceRoot}/node_modules/jest/bin/jest.js", + "visualg/interpretador.test.ts", + "--runInBand" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" + }, { "name": "BIRL > Testes Interpretador", "type": "node", @@ -52,6 +91,19 @@ "ts-node/register/transpile-only" ] }, + { + "name": "Delegua > Testes Interpretador", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "--inspect-brk", + "${workspaceRoot}/node_modules/jest/bin/jest.js", + "interpretador.test.ts", + "--runInBand" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" + }, { "type": "node", "request": "launch", diff --git a/.vscode/settings.json b/.vscode/settings.json index 5d41b3ad..a69f0938 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -20,5 +20,6 @@ "titleBar.inactiveForeground": "#e7e7e799" }, "peacock.color": "#000000", - "compile-hero.disable-compile-files-on-did-save-code": true + "compile-hero.disable-compile-files-on-did-save-code": true, + "nuxt.isNuxtApp": false } diff --git a/testes/portugol-studio/interpretador.test.ts b/testes/portugol-studio/interpretador.test.ts index fa19e7f7..a0ca62cd 100644 --- a/testes/portugol-studio/interpretador.test.ts +++ b/testes/portugol-studio/interpretador.test.ts @@ -1,6 +1,6 @@ import { AvaliadorSintaticoPortugolStudio } from '../../fontes/avaliador-sintatico/dialetos'; -import { LexadorPortugolStudio } from '../../fontes/lexador/dialetos'; import { InterpretadorPortugolStudio } from '../../fontes/interpretador/dialetos'; +import { LexadorPortugolStudio } from '../../fontes/lexador/dialetos'; describe('Interpretador (Portugol Studio)', () => { describe('interpretar()', () => { @@ -19,7 +19,7 @@ describe('Interpretador (Portugol Studio)', () => { const retornoLexador = lexador.mapear([ 'programa', '{', - ' ', + ' ', ' funcao inicio()', ' {', ' escreva("Olá Mundo")', @@ -28,6 +28,10 @@ describe('Interpretador (Portugol Studio)', () => { ], -1); const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1); + interpretador.funcaoDeRetorno = (saida: string) => { + expect(saida).toEqual("Olá Mundo") + } + const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes); expect(retornoInterpretador.erros).toHaveLength(0); @@ -56,6 +60,10 @@ describe('Interpretador (Portugol Studio)', () => { const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1); + interpretador.funcaoDeRetorno = (saida: string) => { + expect(saida).toEqual("15") + } + const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes); expect(retornoInterpretador.erros).toHaveLength(0); @@ -88,6 +96,10 @@ describe('Interpretador (Portugol Studio)', () => { const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1); + interpretador.funcaoDeRetorno = (saida: any) => { + expect(saida).toEqual("É igual a 1") + } + const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes); expect(retornoInterpretador.erros).toHaveLength(0); @@ -97,7 +109,7 @@ describe('Interpretador (Portugol Studio)', () => { const retornoLexador = lexador.mapear([ 'programa', '{', - ' ', + ' ', ' funcao inicio()', ' {', ' inteiro a = 2', @@ -109,6 +121,10 @@ describe('Interpretador (Portugol Studio)', () => { ], -1); const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1); + interpretador.funcaoDeRetorno = (saida: string) => { + expect(saida).toEqual("O resultado é: 5") + } + const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes); expect(retornoInterpretador.erros).toHaveLength(0); @@ -118,7 +134,7 @@ describe('Interpretador (Portugol Studio)', () => { const retornoLexador = lexador.mapear([ 'programa', '{', - ' ', + ' ', ' funcao inicio()', ' {', ' inteiro a = 2',