Skip to content

Commit

Permalink
Testes funções sucesso
Browse files Browse the repository at this point in the history
  • Loading branch information
samuelrvg committed Feb 21, 2024
1 parent 980169a commit 6c98641
Showing 1 changed file with 35 additions and 37 deletions.
72 changes: 35 additions & 37 deletions testes/avaliador-sintatico.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,41 @@ describe('Avaliador sintático', () => {

expect(retornoAvaliadorSintatico.erros.length).toBeGreaterThanOrEqual(0);
});

it('Função retorna vazio mas tem retorno de valores', async () => {
const retornoLexador = lexador.mapear(
[
'funcao executar(valor1, valor2): vazio {',
' var resultado = valor1 + valor2',
' retorna resultado',
'}',
],
-1
);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

expect(retornoAvaliadorSintatico.erros.length).toBeGreaterThanOrEqual(0);
});

it('Retorno texto sem retorno dentro da função', async () => {
const retornoLexador = lexador.mapear(
['funcao executar(valor1, valor2): texto {', ' var resultado = valor1 + valor2', '}'],
-1
);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

expect(retornoAvaliadorSintatico.erros.length).toBeGreaterThanOrEqual(0);
});

it('Função com retorno de vetor', () => {
const retornoLexador = lexador.mapear(
['funcao executar(): texto[] {', ' retorna ["1", "2"]', '}'],
-1
);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

expect(retornoAvaliadorSintatico).toBeTruthy();
});
})

describe('Declarações de tuplas', () => {
Expand Down Expand Up @@ -382,43 +417,6 @@ describe('Avaliador sintático', () => {
);
});

describe('Funções Anônimas', () => {
it('Função retorna vazio mas tem retorno de valores', async () => {
const retornoLexador = lexador.mapear(
[
'funcao executar(valor1, valor2): vazio {',
' var resultado = valor1 + valor2',
' retorna resultado',
'}',
],
-1
);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

expect(retornoAvaliadorSintatico.erros.length).toBeGreaterThanOrEqual(0);
});

it('Retorno texto sem retorno dentro da função', async () => {
const retornoLexador = lexador.mapear(
['funcao executar(valor1, valor2): texto {', ' var resultado = valor1 + valor2', '}'],
-1
);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

expect(retornoAvaliadorSintatico.erros.length).toBeGreaterThanOrEqual(0);
});

it('Função com retorno de vetor', () => {
const retornoLexador = lexador.mapear(
['funcao executar(): texto[] {', ' retorna ["1", "2"]', '}'],
-1
);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);

expect(retornoAvaliadorSintatico).toBeTruthy();
});
});

it('Declaração `tente`', () => {
const retornoLexador = lexador.mapear(['tente { i = i + 1 } pegue (erro) { escreva(erro) }'], -1);
const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);
Expand Down

0 comments on commit 6c98641

Please sign in to comment.