1# SPDX-License-Identifier: Apache-2.0
2
3from __future__ import absolute_import
4from __future__ import division
5from __future__ import print_function
6from __future__ import unicode_literals
7
8import numpy as np  # type: ignore
9
10import onnx
11from ..base import Base
12from . import expect
13from typing import Sequence
14
15
16class SingleSign(Base):
17
18    @staticmethod
19    def export():  # type: () -> None
20        node = onnx.helper.make_node(
21            'Sign', ['x'], ['y'], name='test')
22
23        x = np.array([-1.0, 4.5, -4.5, 3.1, 0.0, 2.4, -5.5]).astype(np.float32)
24        y = np.array([-1.0, 1.0, -1.0, 1.0, 0.0, 1.0, -1.0]).astype(np.float32)
25
26        graph = onnx.helper.make_graph(
27            nodes=[node],
28            name='SingleSign',
29            inputs=[onnx.helper.make_tensor_value_info('x',
30                                                       onnx.TensorProto.FLOAT,
31                                                       [7])],
32            outputs=[onnx.helper.make_tensor_value_info('y',
33                                                        onnx.TensorProto.FLOAT,
34                                                        [7])])
35        model = onnx.helper.make_model(graph, producer_name='backend-test')
36        expect(model, inputs=[x], outputs=[y],
37               name='test_sign_model')
38