| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- import {SemanticAnalyser} from './../processor/semantic/semanticAnalyser';
 
- import {IVProgProcessor} from './../processor/ivprogProcessor';
 
- import { InputTest } from './inputTest';
 
- import { OutputTest } from './outputTest';
 
- import { LocalizedStrings } from './../services/localizedStringsService'
 
- export function autoGenerateTestCaseOutput (program_text, testCases) {
 
-   let copyTestCases = testCases.map((test) => Object.assign({}, test));
 
-   try {
 
-     const program = SemanticAnalyser.analyseFromSource(program_text);
 
-     const resultList = testCases.map((test, id) => {
 
-       const input = new InputTest(test.input);
 
-       const output = new OutputTest();
 
-       const exec =  new IVProgProcessor(program);
 
-       exec.registerInput(input);
 
-       exec.registerOutput(output);
 
-       return exec.interpretAST().then(_ => {
 
-         return {id: id, program: exec};
 
-       });
 
-     });
 
-     return Promise.all(resultList).then(result_final => {
 
-       for(let i = 0; i < result_final.length; ++i) {
 
-         const result = result_final[i];
 
-         const output = result.program.output.list;
 
-         const input = result.program.input;
 
-         if(input.index != input.inputList.length) {
 
-           window.showAlert(LocalizedStrings.getMessage("testcase_autogen_unused_input", [result.id+1]));
 
-           return Promise.resolve(false);
 
-         }
 
-         if(output.length == 0) {
 
-           window.showAlert(LocalizedStrings.getMessage("testcase_autogen_empty", [result.id+1]));
 
-         }
 
-         copyTestCases[result.id].output = output;
 
-       }
 
-       window.outputGenerated(copyTestCases);
 
-       return Promise.resolve(true);
 
-     });
 
-   }catch (error) {
 
-     return Promise.reject(error)
 
-   }
 
- }
 
 
  |