提交 1dc5b06e authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Work around Numba coverage issue by also evaluating results in pure Python

上级 f948e29b
from functools import partial from functools import partial
from unittest import mock
import numpy as np import numpy as np
import pytest import pytest
...@@ -57,6 +58,24 @@ def compare_numba_and_py( ...@@ -57,6 +58,24 @@ def compare_numba_and_py(
) )
numba_res = aesara_numba_fn(*inputs) numba_res = aesara_numba_fn(*inputs)
# We evaluate the Numba implementation in pure Python for coverage
# purposes.
def py_tuple_setitem(t, i, v):
l = list(t)
l[i] = v
return tuple(l)
with mock.patch("aesara.link.numba.dispatch.numba.njit", lambda x: x), mock.patch(
"aesara.link.numba.dispatch.numba.vectorize", lambda x: x
), mock.patch("aesara.link.numba.dispatch.tuple_setitem", py_tuple_setitem):
aesara_numba_fn = function(
fn_inputs,
fgraph.outputs,
mode=numba_mode,
accept_inplace=True,
)
_ = aesara_numba_fn(*inputs)
aesara_py_fn = function( aesara_py_fn = function(
fn_inputs, fgraph.outputs, mode=py_mode, accept_inplace=True fn_inputs, fgraph.outputs, mode=py_mode, accept_inplace=True
) )
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论