1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410 | from evaluator import *
DESCRIPTION = "Test if a model can decompile a long (300 line) python bytecode function back to python."
TAGS = ['code', 'python']
question = """
Disassemble the following python into a function called foo:
2 0 LOAD_CONST 1 (16)
2 STORE_FAST 2 (PH)
4 4 LOAD_CONST 2 (0)
6 STORE_FAST 3 (extra)
5 8 LOAD_CONST 2 (0)
10 STORE_FAST 4 (col)
6 12 BUILD_LIST 0
14 STORE_FAST 5 (pivots)
8 16 LOAD_CONST 3 (<code object <listcomp> at 0x101093660, file "/private/tmp/a.py", line 8>)
18 LOAD_CONST 4 ('rref.<locals>.<listcomp>')
20 MAKE_FUNCTION 0
22 LOAD_GLOBAL 0 (range)
24 LOAD_FAST 0 (matrix)
26 LOAD_ATTR 1 (shape)
28 LOAD_CONST 2 (0)
30 BINARY_SUBSCR
32 CALL_FUNCTION 1
34 GET_ITER
36 CALL_FUNCTION 1
38 STORE_FAST 6 (used_for_row)
10 40 LOAD_FAST 0 (matrix)
42 LOAD_FAST 2 (PH)
44 BINARY_MODULO
46 STORE_FAST 0 (matrix)
11 >> 48 LOAD_FAST 4 (col)
50 LOAD_FAST 3 (extra)
52 BINARY_ADD
54 LOAD_FAST 0 (matrix)
56 LOAD_ATTR 1 (shape)
58 LOAD_CONST 5 (1)
60 BINARY_SUBSCR
62 LOAD_CONST 5 (1)
64 BINARY_SUBTRACT
66 COMPARE_OP 0 (<)
68 EXTENDED_ARG 2
70 POP_JUMP_IF_FALSE 628
72 LOAD_FAST 4 (col)
74 LOAD_FAST 0 (matrix)
76 LOAD_ATTR 1 (shape)
78 LOAD_CONST 2 (0)
80 BINARY_SUBSCR
82 COMPARE_OP 0 (<)
84 EXTENDED_ARG 2
86 POP_JUMP_IF_FALSE 628
13 88 LOAD_FAST 0 (matrix)
90 LOAD_FAST 4 (col)
92 LOAD_FAST 4 (col)
94 LOAD_FAST 3 (extra)
96 BINARY_ADD
98 BUILD_TUPLE 2
100 BINARY_SUBSCR
102 LOAD_CONST 2 (0)
104 COMPARE_OP 2 (==)
106 EXTENDED_ARG 1
108 POP_JUMP_IF_FALSE 262
14 110 LOAD_GLOBAL 2 (np)
112 LOAD_METHOD 3 (all)
114 LOAD_FAST 0 (matrix)
116 LOAD_CONST 0 (None)
118 LOAD_CONST 0 (None)
120 BUILD_SLICE 2
122 LOAD_FAST 4 (col)
124 BUILD_TUPLE 2
126 BINARY_SUBSCR
128 LOAD_CONST 2 (0)
130 COMPARE_OP 2 (==)
132 CALL_METHOD 1
134 POP_JUMP_IF_FALSE 146
15 136 LOAD_FAST 3 (extra)
138 LOAD_CONST 5 (1)
140 INPLACE_ADD
142 STORE_FAST 3 (extra)
16 144 JUMP_ABSOLUTE 48
17 >> 146 LOAD_GLOBAL 2 (np)
148 LOAD_METHOD 4 (argwhere)
150 LOAD_FAST 0 (matrix)
152 LOAD_CONST 0 (None)
154 LOAD_CONST 0 (None)
156 BUILD_SLICE 2
158 LOAD_FAST 4 (col)
160 LOAD_FAST 3 (extra)
162 BINARY_ADD
164 BUILD_TUPLE 2
166 BINARY_SUBSCR
168 LOAD_CONST 2 (0)
170 COMPARE_OP 3 (!=)
172 CALL_METHOD 1
174 LOAD_METHOD 5 (flatten)
176 CALL_METHOD 0
178 LOAD_CONST 6 (-1)
180 BINARY_SUBSCR
182 STORE_FAST 7 (other)
18 184 LOAD_FAST 7 (other)
186 LOAD_FAST 4 (col)
188 COMPARE_OP 0 (<)
190 POP_JUMP_IF_FALSE 202
19 192 LOAD_FAST 3 (extra)
194 LOAD_CONST 5 (1)
196 INPLACE_ADD
198 STORE_FAST 3 (extra)
20 200 JUMP_ABSOLUTE 48
22 >> 202 LOAD_GLOBAL 6 (list)
204 LOAD_FAST 0 (matrix)
206 LOAD_FAST 7 (other)
208 BINARY_SUBSCR
210 CALL_FUNCTION 1
212 LOAD_GLOBAL 6 (list)
214 LOAD_FAST 0 (matrix)
216 LOAD_FAST 4 (col)
218 BINARY_SUBSCR
220 CALL_FUNCTION 1
222 ROT_TWO
224 LOAD_FAST 0 (matrix)
226 LOAD_FAST 4 (col)
228 STORE_SUBSCR
230 LOAD_FAST 0 (matrix)
232 LOAD_FAST 7 (other)
234 STORE_SUBSCR
23 236 LOAD_FAST 6 (used_for_row)
238 LOAD_FAST 7 (other)
240 BINARY_SUBSCR
242 LOAD_FAST 6 (used_for_row)
244 LOAD_FAST 4 (col)
246 BINARY_SUBSCR
248 ROT_TWO
250 LOAD_FAST 6 (used_for_row)
252 LOAD_FAST 4 (col)
254 STORE_SUBSCR
256 LOAD_FAST 6 (used_for_row)
258 LOAD_FAST 7 (other)
260 STORE_SUBSCR
25 >> 262 LOAD_FAST 5 (pivots)
264 LOAD_METHOD 7 (append)
266 LOAD_FAST 4 (col)
268 LOAD_FAST 3 (extra)
270 BINARY_ADD
272 CALL_METHOD 1
274 POP_TOP
26 276 LOAD_FAST 0 (matrix)
278 LOAD_FAST 4 (col)
280 LOAD_FAST 4 (col)
282 LOAD_FAST 3 (extra)
284 BINARY_ADD
286 BUILD_TUPLE 2
288 BINARY_SUBSCR
290 STORE_FAST 8 (pivot)
27 292 LOAD_FAST 4 (col)
294 LOAD_FAST 3 (extra)
296 BINARY_ADD
298 LOAD_FAST 1 (graphlen)
300 COMPARE_OP 0 (<)
302 EXTENDED_ARG 1
304 POP_JUMP_IF_FALSE 348
28 306 LOAD_GLOBAL 2 (np)
308 LOAD_METHOD 8 (abs)
310 LOAD_FAST 8 (pivot)
312 CALL_METHOD 1
314 LOAD_CONST 5 (1)
316 COMPARE_OP 2 (==)
318 EXTENDED_ARG 1
320 POP_JUMP_IF_TRUE 396
322 LOAD_GLOBAL 2 (np)
324 LOAD_METHOD 8 (abs)
326 LOAD_FAST 8 (pivot)
328 CALL_METHOD 1
330 LOAD_FAST 2 (PH)
332 LOAD_CONST 5 (1)
334 BINARY_SUBTRACT
336 COMPARE_OP 2 (==)
338 EXTENDED_ARG 1
340 POP_JUMP_IF_TRUE 396
342 LOAD_ASSERTION_ERROR
344 RAISE_VARARGS 1
346 JUMP_FORWARD 48 (to 396)
30 >> 348 LOAD_GLOBAL 2 (np)
350 LOAD_METHOD 8 (abs)
352 LOAD_FAST 8 (pivot)
354 CALL_METHOD 1
356 LOAD_CONST 7 (2)
358 COMPARE_OP 2 (==)
360 EXTENDED_ARG 1
362 POP_JUMP_IF_TRUE 388
364 LOAD_GLOBAL 2 (np)
366 LOAD_METHOD 8 (abs)
368 LOAD_FAST 8 (pivot)
370 CALL_METHOD 1
372 LOAD_FAST 2 (PH)
374 LOAD_CONST 7 (2)
376 BINARY_SUBTRACT
378 COMPARE_OP 2 (==)
380 EXTENDED_ARG 1
382 POP_JUMP_IF_TRUE 388
384 LOAD_ASSERTION_ERROR
386 RAISE_VARARGS 1
31 >> 388 LOAD_FAST 8 (pivot)
390 LOAD_CONST 7 (2)
392 INPLACE_FLOOR_DIVIDE
394 STORE_FAST 8 (pivot)
32 >> 396 LOAD_FAST 0 (matrix)
398 LOAD_FAST 4 (col)
400 DUP_TOP_TWO
402 BINARY_SUBSCR
404 LOAD_FAST 8 (pivot)
406 INPLACE_MULTIPLY
408 ROT_THREE
410 STORE_SUBSCR
33 412 LOAD_FAST 0 (matrix)
414 LOAD_FAST 4 (col)
416 DUP_TOP_TWO
418 BINARY_SUBSCR
420 LOAD_FAST 2 (PH)
422 INPLACE_MODULO
424 ROT_THREE
426 STORE_SUBSCR
35 428 LOAD_GLOBAL 2 (np)
430 LOAD_METHOD 4 (argwhere)
432 LOAD_FAST 0 (matrix)
434 LOAD_CONST 0 (None)
436 LOAD_CONST 0 (None)
438 BUILD_SLICE 2
440 LOAD_FAST 4 (col)
442 LOAD_FAST 3 (extra)
444 BINARY_ADD
446 BUILD_TUPLE 2
448 BINARY_SUBSCR
450 CALL_METHOD 1
452 LOAD_METHOD 5 (flatten)
454 CALL_METHOD 0
456 STORE_FAST 9 (others)
37 458 LOAD_FAST 9 (others)
460 GET_ITER
>> 462 FOR_ITER 154 (to 618)
464 STORE_FAST 10 (i)
38 466 LOAD_FAST 10 (i)
468 LOAD_FAST 4 (col)
470 COMPARE_OP 2 (==)
472 EXTENDED_ARG 1
474 POP_JUMP_IF_FALSE 480
476 EXTENDED_ARG 1
478 JUMP_ABSOLUTE 462
39 >> 480 LOAD_FAST 6 (used_for_row)
482 LOAD_FAST 10 (i)
484 DUP_TOP_TWO
486 BINARY_SUBSCR
488 LOAD_FAST 6 (used_for_row)
490 LOAD_FAST 4 (col)
492 BINARY_SUBSCR
494 INPLACE_OR
496 ROT_THREE
498 STORE_SUBSCR
40 500 LOAD_FAST 4 (col)
502 LOAD_FAST 1 (graphlen)
504 COMPARE_OP 0 (<)
506 EXTENDED_ARG 2
508 POP_JUMP_IF_FALSE 548
41 510 LOAD_FAST 0 (matrix)
512 LOAD_FAST 10 (i)
514 DUP_TOP_TWO
516 BINARY_SUBSCR
518 LOAD_FAST 0 (matrix)
520 LOAD_FAST 4 (col)
522 BINARY_SUBSCR
524 LOAD_FAST 0 (matrix)
526 LOAD_FAST 10 (i)
528 LOAD_FAST 4 (col)
530 LOAD_FAST 3 (extra)
532 BINARY_ADD
534 BUILD_TUPLE 2
536 BINARY_SUBSCR
538 BINARY_MULTIPLY
540 INPLACE_SUBTRACT
542 ROT_THREE
544 STORE_SUBSCR
546 JUMP_FORWARD 50 (to 598)
43 >> 548 LOAD_FAST 0 (matrix)
550 LOAD_FAST 10 (i)
552 LOAD_FAST 4 (col)
554 LOAD_FAST 3 (extra)
556 BINARY_ADD
558 BUILD_TUPLE 2
560 BINARY_SUBSCR
562 LOAD_CONST 2 (0)
564 COMPARE_OP 3 (!=)
566 EXTENDED_ARG 2
568 POP_JUMP_IF_FALSE 598
44 570 LOAD_FAST 0 (matrix)
572 LOAD_FAST 10 (i)
574 BINARY_SUBSCR
576 LOAD_FAST 0 (matrix)
578 LOAD_FAST 4 (col)
580 BINARY_SUBSCR
582 BINARY_SUBTRACT
584 LOAD_FAST 2 (PH)
586 BINARY_MODULO
588 LOAD_FAST 0 (matrix)
590 LOAD_FAST 10 (i)
592 STORE_SUBSCR
594 EXTENDED_ARG 2
596 JUMP_ABSOLUTE 548
45 >> 598 LOAD_FAST 0 (matrix)
600 LOAD_FAST 10 (i)
602 DUP_TOP_TWO
604 BINARY_SUBSCR
606 LOAD_FAST 2 (PH)
608 INPLACE_MODULO
610 ROT_THREE
612 STORE_SUBSCR
614 EXTENDED_ARG 1
616 JUMP_ABSOLUTE 462
47 >> 618 LOAD_FAST 4 (col)
620 LOAD_CONST 5 (1)
622 INPLACE_ADD
624 STORE_FAST 4 (col)
626 JUMP_ABSOLUTE 48
49 >> 628 LOAD_GLOBAL 2 (np)
630 LOAD_METHOD 9 (array)
632 LOAD_FAST 0 (matrix)
634 CALL_METHOD 1
636 LOAD_FAST 2 (PH)
638 BINARY_MODULO
640 STORE_FAST 0 (matrix)
50 642 LOAD_CONST 8 (<code object <listcomp> at 0x101093b30, file "/private/tmp/a.py", line 50>)
644 LOAD_CONST 4 ('rref.<locals>.<listcomp>')
646 MAKE_FUNCTION 0
648 LOAD_FAST 6 (used_for_row)
650 GET_ITER
652 CALL_FUNCTION 1
654 RETURN_VALUE
Disassembly of <code object <listcomp> at 0x101093660, file "/private/tmp/a.py", line 8>:
8 0 BUILD_LIST 0
2 LOAD_FAST 0 (.0)
>> 4 FOR_ITER 14 (to 20)
6 STORE_FAST 1 (i)
8 LOAD_GLOBAL 0 (set)
10 LOAD_FAST 1 (i)
12 BUILD_LIST 1
14 CALL_FUNCTION 1
16 LIST_APPEND 2
18 JUMP_ABSOLUTE 4
>> 20 RETURN_VALUE
Disassembly of <code object <listcomp> at 0x101093b30, file "/private/tmp/a.py", line 50>:
50 0 BUILD_LIST 0
2 LOAD_FAST 0 (.0)
>> 4 FOR_ITER 12 (to 18)
6 STORE_FAST 1 (x)
8 LOAD_GLOBAL 0 (sorted)
10 LOAD_FAST 1 (x)
12 CALL_FUNCTION 1
14 LIST_APPEND 2
16 JUMP_ABSOLUTE 4
>> 18 RETURN_VALUE
"""
test_case, answer = make_python_test([("foo(arr, 37)", "[[0, 38], [0, 38], [0, 6, 28, 35, 38], [0, 6, 18, 21, 28, 35, 38], [0, 6, 28, 35, 38], [0, 6, 21, 28, 35, 38], [0, 5, 10, 23, 38], [0, 5, 10, 23, 38], [0, 5, 10, 23, 38], [0, 5, 9, 10, 23, 38], [0, 5, 9, 10, 13, 17, 23, 30, 38], [0, 5, 9, 10, 11, 23, 27, 38], [0, 5, 9, 10, 11, 23, 27, 38], [0, 5, 9, 10, 11, 23, 25, 27, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 24, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 5, 7, 8, 9, 10, 11, 12, 15, 16, 19, 23, 25, 26, 27, 34, 38], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 23, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 23, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 23, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 23, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 23, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 23, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38], [0, 5, 9, 10, 13, 17, 23, 30, 38], [0, 5, 9, 10, 13, 17, 23, 30, 38], [0, 5, 9, 10, 13, 17, 23, 30, 32, 38], [0, 5, 9, 10, 13, 17, 23, 30, 32, 33, 38], [0, 22, 29, 38], [0, 22, 29, 38], [0, 6, 28, 35, 38], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 23, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38], [14, 18, 21, 28, 35]]")], header="arr = np.array([[1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20], [0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11], [0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, -30], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, -20], [1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14], [0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, -30], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10], [0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11], [0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, -20], [0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13], [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, -10], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11], [0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, -20], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -40], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])")
TestDisasRref = question >> LLMRun() >> ExtractCode() >> PythonRun(test_case) >> SubstringEvaluator(answer)
if __name__ == "__main__":
print(run_test(TestDisasRref))
|