Problems with shape result in cryptic error
ikamensh opened this issue · comments
I'm solving one of first puzzles:
def sum_spec(a, out):
out[0] = 0
for i in range(len(a)):
out[0] += a[i]
def sum(a: TT["i"]) -> TT[1]:
return (a @ ones(len(a)))
test_sum = make_test("sum", sum, sum_spec)
and I get this error below. changing code to (a @ ones(len(a)))[None] fixes it (I guess by giving it expected dimensions).
TypeError Traceback (most recent call last)
in <cell line: 10>()
8
9
---> 10 test_sum = make_test("sum", sum, sum_spec)
3 frames
/content/lib.py in make_test(name, problem, problem_spec, add_sizes, constraint)
184 examples.append(example)
185
--> 186 diagram = draw_examples(name, examples)
187 display(SVG(diagram.repr_svg()))
188
/content/lib.py in draw_examples(name, examples)
81 for k, v in example.items()}
82 for example in examples ] }
---> 83 return draw_example(data)
84
85
/content/lib.py in draw_example(data)
58 for ex in data["vals"]:
59 v2 = ex[k]
---> 60 mat.append(draw_matrix(v2))
61 cols.append(mat)
62
/content/lib.py in draw_matrix(mat)
33 return vcat((hcat((color(v)
34 for j, v in enumerate(inner)))
---> 35 for i, inner in enumerate(mat)))
36
37 def grid(diagrams):
TypeError: 'int' object is not iterable
@ikamensh (and anyone else who runs into this problem), you might try my fork of the puzzle library, which adds an extra check to avoid this error: https://github.com/noahlt/Tensor-Puzzles/tree/main