import ngraph as ng
from ngraph.impl import Shape, Type
from tests.test_ngraph.util import run_op_node, run_op_numeric_data
-from tests import xfail_issue_35929, xfail_issue_34323
+from tests import xfail_issue_35929, xfail_issue_34323, xfail_issue_36483
@xfail_issue_35929
result = run_op_node([input_data], ng_api_fn)
assert np.allclose(result, expected, rtol=0.001)
+
+@xfail_issue_35929
+@pytest.mark.parametrize(
+ "ng_api_fn, numpy_fn, range_start, range_end",
+ [
+ (ng.absolute, np.abs, -1, 1),
+ (ng.abs, np.abs, -1, 1),
+ (ng.acos, np.arccos, -1, 1),
+ (ng.asin, np.arcsin, -1, 1),
+ (ng.atan, np.arctan, -100.0, 100.0),
+ (ng.ceiling, np.ceil, -100.0, 100.0),
+ (ng.ceil, np.ceil, -100.0, 100.0),
+ (ng.cos, np.cos, -100.0, 100.0),
+ (ng.cosh, np.cosh, -100.0, 100.0),
+ (ng.exp, np.exp, -100.0, 100.0),
+ (ng.floor, np.floor, -100.0, 100.0),
+ (ng.log, np.log, 0, 100.0),
+ (ng.relu, lambda x: np.maximum(0, x), -100.0, 100.0),
+ (ng.sign, np.sign, -100.0, 100.0),
+ (ng.sin, np.sin, -100.0, 100.0),
+ (ng.sinh, np.sinh, -100.0, 100.0),
+ (ng.sqrt, np.sqrt, 0.0, 100.0),
+ (ng.tan, np.tan, -1.0, 1.0),
+ (ng.tanh, np.tanh, -100.0, 100.0),
+ ],
+)
+def test_unary_op_array_using_constants(ng_api_fn, numpy_fn, range_start, range_end):
+ np.random.seed(133391)
+ input_data = range_start + np.random.rand(2, 3, 4) * (range_end - range_start)
+ expected = numpy_fn(input_data)
+
result = run_op_numeric_data(input_data, ng_api_fn)
assert np.allclose(result, expected, rtol=0.001)
+@pytest.mark.skip(reason="Segmentation fault")
+@pytest.mark.parametrize(
+ "ng_api_fn, numpy_fn, input_data",
+ [
+ pytest.param(ng.absolute, np.abs, np.float32(-3)),
+ pytest.param(ng.abs, np.abs, np.float32(-3)),
+ pytest.param(ng.acos, np.arccos, np.float32(-0.5)),
+ pytest.param(ng.asin, np.arcsin, np.float32(-0.5)),
+ pytest.param(ng.atan, np.arctan, np.float32(-0.5)),
+ pytest.param(ng.ceiling, np.ceil, np.float32(1.5), marks=xfail_issue_36483),
+ pytest.param(ng.ceil, np.ceil, np.float32(1.5), marks=xfail_issue_36483),
+ pytest.param(ng.cos, np.cos, np.float32(np.pi / 4.0)),
+ pytest.param(ng.cosh, np.cosh, np.float32(np.pi / 4.0)),
+ pytest.param(ng.exp, np.exp, np.float32(1.5)),
+ pytest.param(ng.floor, np.floor, np.float32(1.5)),
+ pytest.param(ng.log, np.log, np.float32(1.5)),
+ pytest.param(ng.relu, lambda x: np.maximum(0, x), np.float32(-0.125)),
+ pytest.param(ng.sign, np.sign, np.float32(0.0)),
+ pytest.param(ng.sin, np.sin, np.float32(np.pi / 4.0)),
+ pytest.param(ng.sinh, np.sinh, np.float32(0.0)),
+ pytest.param(ng.sqrt, np.sqrt, np.float32(3.5)),
+ pytest.param(ng.tan, np.tan, np.float32(np.pi / 4.0)),
+ pytest.param(ng.tanh, np.tanh, np.float32(0.1234)),
+ ],
+)
+def test_unary_op_scalar(ng_api_fn, numpy_fn, input_data):
+ expected = numpy_fn(input_data)
+
+ result = run_op_node([input_data], ng_api_fn)
+ assert np.allclose(result, expected)
+
+
@xfail_issue_34323
@pytest.mark.parametrize(
"ng_api_fn, numpy_fn, input_data",
(ng.tanh, np.tanh, np.float32(0.1234)),
],
)
-def test_unary_op_scalar(ng_api_fn, numpy_fn, input_data):
+def test_unary_op_scalar_using_constants(ng_api_fn, numpy_fn, input_data):
expected = numpy_fn(input_data)
- result = run_op_node([input_data], ng_api_fn)
- assert np.allclose(result, expected)
-
result = run_op_numeric_data(input_data, ng_api_fn)
assert np.allclose(result, expected)
-@xfail_issue_34323
@pytest.mark.parametrize(
- "input_data", [(np.array([True, False, True, False])), (np.array(True)), (np.array(False))]
+ "input_data", [(np.array([True, False, True, False])), (np.array([True])), (np.array([False]))]
)
def test_logical_not(input_data):
expected = np.logical_not(input_data)
result = run_op_node([input_data], ng.logical_not)
-
assert np.allclose(result, expected)
+
+
+@xfail_issue_34323
+@pytest.mark.parametrize(
+ "input_data", [(np.array([True, False, True, False])), (np.array([True])), (np.array([False]))]
+)
+def test_logical_not_using_constants(input_data):
+ expected = np.logical_not(input_data)
+
result = run_op_numeric_data(input_data, ng.logical_not)
assert np.allclose(result, expected)
-@xfail_issue_34323
def test_sigmoid():
input_data = np.array([-3.14, -1.0, 0.0, 2.71001, 1000.0], dtype=np.float32)
result = run_op_node([input_data], ng.sigmoid)
assert np.allclose(result, expected)
-@xfail_issue_34323
def test_erf():
input_tensor = np.array([-1.0, 0.0, 1.0, 2.5, 3.14, 4.0], dtype=np.float32)
expected = [-0.842701, 0.0, 0.842701, 0.999593, 0.999991, 1.0]
result = run_op_node([input_tensor], ng.erf)
assert np.allclose(result, expected)
+
+@xfail_issue_34323
+def test_erf_using_constants():
+ input_tensor = np.array([-1.0, 0.0, 1.0, 2.5, 3.14, 4.0], dtype=np.float32)
+ expected = [-0.842701, 0.0, 0.842701, 0.999593, 0.999991, 1.0]
+
result = run_op_numeric_data(input_tensor, ng.erf)
assert np.allclose(result, expected)