def question_test(self, addition_env, npi_runner, question): addition_env.reset() self.reset() try: run_npi(addition_env, npi_runner, self.program_set.ADD, question) if question['correct']: return True except StopIteration: pass return False
def main(stdscr, filename: str, num: int, result_logger: ResultLogger): terminal = Terminal(stdscr, create_char_map()) terminal.init_window(FIELD_WIDTH, FIELD_ROW) program_set = AdditionProgramSet() addition_env = AdditionEnv(FIELD_ROW, FIELD_WIDTH, FIELD_DEPTH) questions = create_questions(num) teacher = AdditionTeacher(program_set) npi_runner = TerminalNPIRunner(terminal, teacher) npi_runner.verbose = DEBUG_MODE steps_list = [] for data in questions: addition_env.reset() q = copy(data) run_npi(addition_env, npi_runner, program_set.ADD, data) steps_list.append({"q": q, "steps": npi_runner.step_list}) result_logger.write(data) terminal.add_log(data) if filename: with open(filename, 'wb') as f: pickle.dump(steps_list, f, protocol=pickle.HIGHEST_PROTOCOL)
def main(stdscr, model_path: str, num: int, result_logger: ResultLogger): terminal = Terminal(stdscr, create_char_map()) terminal.init_window(FIELD_WIDTH, FIELD_ROW) program_set = AdditionProgramSet() addition_env = AdditionEnv(FIELD_ROW, FIELD_WIDTH, FIELD_DEPTH) questions = create_questions(num) if DEBUG_MODE: questions = questions[-num:] system = RuntimeSystem(terminal=terminal) npi_model = AdditionNPIModel(system, model_path, program_set) npi_runner = TerminalNPIRunner(terminal, npi_model, recording=False) npi_runner.verbose = DEBUG_MODE correct_count = wrong_count = 0 for data in questions: addition_env.reset() run_npi(addition_env, npi_runner, program_set.ADD, data) result_logger.write(data) terminal.add_log(data) if data["correct"]: correct_count += 1 else: wrong_count += 1 return correct_count, wrong_count
def main(stdscr, model_path: str, num: int, result_logger: ResultLogger): terminal = Terminal(stdscr, create_char_map()) terminal.init_window(FIELD_WIDTH, FIELD_ROW) program_set = AdditionProgramSet() addition_env = AdditionEnv(FIELD_ROW, FIELD_WIDTH, FIELD_DEPTH) questions = create_questions(num) if DEBUG_MODE: questions = questions[-num:] system = RuntimeSystem(terminal=terminal) npi_model = AdditionNPIModel(system, model_path, program_set) npi_runner = TerminalNPIRunner(terminal, npi_model, recording=False) npi_runner.verbose = DEBUG_MODE correct_count = wrong_count = 0 for data in questions: addition_env.reset() run_npi(addition_env, npi_runner, program_set.ADD, data) result_logger.write(data) terminal.add_log(data) if data['correct']: correct_count += 1 else: wrong_count += 1 return correct_count, wrong_count