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 = BubblesortProgramSet() Bubblesort_env = BubblesortEnv(FIELD_ROW, FIELD_WIDTH, FIELD_DEPTH) questions = create_questions(num) if DEBUG_MODE: questions = questions[-num:] system = RuntimeSystem(terminal=terminal) npi_model = BubblesortNPIModel(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: Bubblesort_env.reset() try: run_npi(Bubblesort_env, npi_runner, program_set.BUBBLESORT, data) if data['correct']: correct_count += 1 else: wrong_count += 1 except StopIteration: wrong_count += 1 pass result_logger.write(data) terminal.add_log(data) 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 = MultiplicationProgramSet() multiplyition_env = MultiplicationEnv(FIELD_ROW, FIELD_WIDTH, FIELD_DEPTH) questions = create_questions(num) if DEBUG_MODE: questions = questions[-num:] system = RuntimeSystem(terminal=terminal) npi_model = MultiplicationNPIModel(system, terminal, 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: multiplyition_env.reset() run_npi(multiplyition_env, npi_runner, program_set.ADD, data) result_logger.write(data) terminal.multiply_log(data) if data['correct']: correct_count += 1 else: wrong_count += 1 return correct_count, wrong_count
def main(filename: str, model_path: str): system = RuntimeSystem() program_set = BubblesortProgramSet() with open(filename, 'rb') as f: steps_list = pickle.load(f) npi_model = BubblesortNPIModel(system, model_path, program_set) npi_model.fit(steps_list)
def main(stdscr, output_filename, filename: str, model_path: str): system = RuntimeSystem() program_set = MultiplicationProgramSet() with open(filename, 'rb') as f: steps_list = pickle.load(f) for step in steps_list: for s in step["steps"]: print(s) input("press enter to continue") ## for debug purpose terminal = Terminal(stdscr, create_char_map()) terminal.init_window(FIELD_WIDTH, FIELD_ROW) npi_model = MultiplicationNPIModel(system, terminal, model_path, program_set)
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 = BubblesortProgramSet() Bubblesort_env = BubblesortEnv(FIELD_ROW, FIELD_WIDTH, FIELD_DEPTH) questions = create_questions(num) if DEBUG_MODE: questions = questions[-num:] system = RuntimeSystem(terminal=terminal) npi_model = BubblesortNPIModel(system, model_path, program_set) npi_runner = TerminalNPIRunner(terminal, npi_model, recording=False) npi_runner.verbose = DEBUG_MODE correct_count = wrong_count = 0 slot_num = 10 # 10 means 10 slots, each # slot's size is 0.1 for i in range(slot_num): arr.append([]) # Put array elements in different buckets for j in x: index_b = int(slot_num * j) arr[index_b].append(j) # Sort individual buckets for i in range(slot_num): Bubblesort_env.reset() try: run_npi(Bubblesort_env, npi_runner, program_set.BUBBLESORT, data) if data['correct']: correct_count += 1 else: wrong_count += 1 except StopIteration: wrong_count += 1 pass result_logger.write(data) terminal.add_log(data) return correct_count, wrong_count # concatenate the result k = 0 for i in range(slot_num): for j in range(len(arr[i])): x[k] = arr[i][j] k += 1 return x