Skip to content
Snippets Groups Projects
Commit a60e1746 authored by tbuckworth's avatar tbuckworth
Browse files

created Task class

parent 60d89fb9
No related branches found
No related tags found
No related merge requests found
......@@ -13,11 +13,8 @@ class TaskTester(unittest.TestCase):
cls.task_dict = load_task()#"data/training/0b148d64.json")
cls.task = Task(cls.task_dict)
# Example of accessing input/output grids for the first example
cls.input_grid = cls.task_dict['train'][0]['input']
cls.output_grid = cls.task_dict['train'][0]['output']
cls.in_preds = grid2FOL(cls.input_grid, "input")
cls.out_preds = grid2FOL(cls.output_grid, "output")
cls.output_grid = cls.task.train_examples[0].output_grid.grid
cls.out_preds = cls.task.train_examples[0].output_grid.preds
def test_ordering(self):
out_preds = copy.deepcopy(self.out_preds)
......@@ -31,27 +28,13 @@ class TaskTester(unittest.TestCase):
out_grid = FOL2grid(out_FOL_array)
self.assertTrue((out_grid == self.output_grid).all())
def test_prolog_program(self):
in_prolog = FOL2prolog(self.in_preds)
with open('prolog/input_example_1.pl', 'w') as file:
file.write(in_prolog)
program = "[input_example_1], [solution_1], [background_knowledge], print_results, halt."
out_prolog = run_prolog_program(program=program, curr_dir='./prolog')
out_FOL_array = prolog2FOL_array(out_prolog)
out_grid = FOL2grid(out_FOL_array)
array_and_plot_grid(self.output_grid)
array_and_plot_grid(out_grid)
self.assertTrue((out_grid == self.output_grid).all())
def test_task_class(self):
solution = "solution_1"
res = self.task.try_solution(solution)
self.assertTrue(res)
print(res)
def test_task_empty(self):
res = self.task.try_solution("empty_solution")
self.assertFalse(res)
if __name__ == '__main__':
unittest.main()
all_rows(Rs):-
setof(R, C^Colour^input_colour(R,C,Colour), Rs).
all_cols(Cs):-
setof(C, R^Colour^input_colour(R,C,Colour), Cs).
row(R):-
all_rows(Rs),
member(R,Rs).
column(C):-
all_cols(Cs),
member(C,Cs).
output_colour(Row,Column,black):-
row(Row),
column(Column).
import numpy as np
from main import colour_lookup, run_prolog_program, prolog2FOL_array, FOL2grid, grid2FOL, FOL2prolog
from main import run_prolog_program, prolog2FOL_array, FOL2grid, grid2FOL, FOL2prolog
class Grid:
......@@ -24,7 +24,10 @@ class Example:
out_FOL_array = prolog2FOL_array(out_prolog)
out_grid = FOL2grid(out_FOL_array)
result = (out_grid == self.output_grid.grid).all()
same = out_grid == self.output_grid.grid
result = same.all()
if not result:
print(f"output incorrect due to {(~same).sum()}/{np.prod(same.shape)} cells")
return result
class Task:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment