iassignHelpers.js 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import { setTestCases, getTestCases } from "../visualUI/functions";
  2. import { generate } from "../visualUI/code_generator";
  3. import { IVProgAssessment } from "../assessment/ivprogAssessment";
  4. import { TestConsole } from "./testConsole";
  5. export function prepareActivityToStudentHelper (ilm_cont) {
  6. const content = JSON.parse(ilm_cont.split('\n::algorithm::')[0]);
  7. const testCases = content.testcases;
  8. setTestCases(testCases);
  9. const settingsDataTypes = content.settings_data_types;
  10. const settingsCommands = content.settings_commands;
  11. const settingsFunctions = content.settings_functions;
  12. let algorithm_in_ilm = null;
  13. if (ilm_cont.split('\n::algorithm::')[1]) {
  14. algorithm_in_ilm = ilm_cont.split('\n::algorithm::')[1].split('\n::logs::')[0];
  15. }
  16. return {
  17. settingsDataTypes: settingsDataTypes,
  18. settingsCommands: settingsCommands,
  19. settingsFunctions: settingsFunctions,
  20. algorithmInIlm: algorithm_in_ilm
  21. }
  22. }
  23. export function autoEval (callback) {
  24. const code = generate();
  25. if (code == null) {
  26. return callback(-1);
  27. } else {
  28. const autoAssessment = new IVProgAssessment(code, getTestCases(), new TestConsole([]));
  29. autoAssessment.runTest().then( grade => callback(grade)).catch(err => console.log(err))
  30. }
  31. }