|  | @@ -0,0 +1,32 @@
 | 
	
		
			
				|  |  | +import { IVProgParser } from './../js/ast/ivprogParser';
 | 
	
		
			
				|  |  | +import { SemanticAnalyser } from './../js/processor/semantic/semanticAnalyser';
 | 
	
		
			
				|  |  | +import { LanguageService } from '../js/services/languageService';
 | 
	
		
			
				|  |  | +import { OutputTest } from '../js/util/outputTest';
 | 
	
		
			
				|  |  | +import { IVProgProcessor } from '../js/processor/ivprogProcessor';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +describe('A Math lib function ', function () {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const code = `programa {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    funcao inicio() {
 | 
	
		
			
				|  |  | +      real a = 1.0
 | 
	
		
			
				|  |  | +      escreva(Matematica.trocar_sinal(a))
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }`;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  localStorage.setItem('ivprog.lang', 'pt');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const lexer = LanguageService.getCurrentLexer();
 | 
	
		
			
				|  |  | +  const out = new OutputTest();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  it(`should be executed with no exception`, function (done) {
 | 
	
		
			
				|  |  | +    const parser = new IVProgParser(code, lexer);
 | 
	
		
			
				|  |  | +    const sem = new SemanticAnalyser(parser.parseTree());
 | 
	
		
			
				|  |  | +    const exec = new IVProgProcessor(sem.analyseTree());
 | 
	
		
			
				|  |  | +    exec.registerOutput(out);
 | 
	
		
			
				|  |  | +    exec.interpretAST().then(_ => {
 | 
	
		
			
				|  |  | +      expect(out.list).toEqual(['-1.0']);
 | 
	
		
			
				|  |  | +      done();
 | 
	
		
			
				|  |  | +    }).catch(err => done(err));
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +});
 |