Spaces:
Running
Running
# Copyright (c) ONNX Project Contributors | |
# | |
# SPDX-License-Identifier: Apache-2.0 | |
import numpy as np | |
import onnx | |
from onnx.backend.test.case.base import Base | |
from onnx.backend.test.case.node import expect | |
class BitShift(Base): | |
def export_right_unit8() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="RIGHT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint8) | |
y = np.array([1, 2, 3]).astype(np.uint8) | |
z = x >> y # expected output [8, 1, 0] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_right_uint8") | |
def export_right_unit16() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="RIGHT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint16) | |
y = np.array([1, 2, 3]).astype(np.uint16) | |
z = x >> y # expected output [8, 1, 0] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_right_uint16") | |
def export_right_unit32() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="RIGHT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint32) | |
y = np.array([1, 2, 3]).astype(np.uint32) | |
z = x >> y # expected output [8, 1, 0] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_right_uint32") | |
def export_right_unit64() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="RIGHT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint64) | |
y = np.array([1, 2, 3]).astype(np.uint64) | |
z = x >> y # expected output [8, 1, 0] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_right_uint64") | |
def export_left_unit8() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="LEFT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint8) | |
y = np.array([1, 2, 3]).astype(np.uint8) | |
z = x << y # expected output [32, 16, 8] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_left_uint8") | |
def export_left_unit16() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="LEFT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint16) | |
y = np.array([1, 2, 3]).astype(np.uint16) | |
z = x << y # expected output [32, 16, 8] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_left_uint16") | |
def export_left_unit32() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="LEFT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint32) | |
y = np.array([1, 2, 3]).astype(np.uint32) | |
z = x << y # expected output [32, 16, 8] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_left_uint32") | |
def export_left_unit64() -> None: | |
node = onnx.helper.make_node( | |
"BitShift", inputs=["x", "y"], outputs=["z"], direction="LEFT" | |
) | |
x = np.array([16, 4, 1]).astype(np.uint64) | |
y = np.array([1, 2, 3]).astype(np.uint64) | |
z = x << y # expected output [32, 16, 8] | |
expect(node, inputs=[x, y], outputs=[z], name="test_bitshift_left_uint64") | |