chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ruff: noqa: E712, F401
|
||||
import numpy as np
|
||||
import pytest
|
||||
import tvm_ffi
|
||||
|
||||
import tvm
|
||||
|
||||
|
||||
def test_array():
|
||||
a = tvm.runtime.convert([1, 2, 3])
|
||||
assert len(a) == 3
|
||||
assert a[-1] == 3
|
||||
a_slice = a[-3:-1]
|
||||
assert (a_slice[0], a_slice[1]) == (1, 2)
|
||||
|
||||
|
||||
def test_array_save_load_json():
|
||||
a = tvm.runtime.convert([1, 2, 3.5, True])
|
||||
json_str = tvm.ir.save_json(a)
|
||||
a_loaded = tvm.ir.load_json(json_str)
|
||||
assert a_loaded[1] == 2
|
||||
assert a_loaded[2] == 3.5
|
||||
assert a_loaded[3] == True
|
||||
assert isinstance(a_loaded[3], bool)
|
||||
|
||||
|
||||
def test_dir_array():
|
||||
a = tvm.runtime.convert([1, 2, 3])
|
||||
assert dir(a)
|
||||
|
||||
|
||||
def test_map():
|
||||
a = tvm.tirx.Var("a", "int32")
|
||||
b = tvm.tirx.Var("b", "int32")
|
||||
amap = tvm.runtime.convert({a: 2, b: 3})
|
||||
assert a in amap
|
||||
assert len(amap) == 2
|
||||
dd = dict(amap.items())
|
||||
assert a in dd
|
||||
assert b in dd
|
||||
assert a + 1 not in amap
|
||||
assert {x for x in amap} == {a, b}
|
||||
assert set(amap.keys()) == {a, b}
|
||||
assert set(amap.values()) == {2, 3}
|
||||
|
||||
|
||||
def test_str_map():
|
||||
amap = tvm.runtime.convert({"a": 2, "b": 3})
|
||||
assert "a" in amap
|
||||
assert len(amap) == 2
|
||||
dd = dict(amap.items())
|
||||
assert amap["a"] == 2
|
||||
assert "a" in dd
|
||||
assert "b" in dd
|
||||
|
||||
|
||||
def test_map_save_load_json():
|
||||
a = tvm.tirx.Var("a", "int32")
|
||||
b = tvm.tirx.Var("b", "int32")
|
||||
amap = tvm.runtime.convert({a: 2, b: 3})
|
||||
json_str = tvm.ir.save_json(amap)
|
||||
amap = tvm.ir.load_json(json_str)
|
||||
assert len(amap) == 2
|
||||
dd = {kv[0].name: kv[1] for kv in amap.items()}
|
||||
assert dd == {"a": 2, "b": 3}
|
||||
|
||||
|
||||
def test_dir_map():
|
||||
a = tvm.tirx.Var("a", "int32")
|
||||
b = tvm.tirx.Var("b", "int32")
|
||||
amap = tvm.runtime.convert({a: 2, b: 3})
|
||||
assert dir(amap)
|
||||
|
||||
|
||||
def test_getattr_map():
|
||||
a = tvm.tirx.Var("a", "int32")
|
||||
b = tvm.tirx.Var("b", "int32")
|
||||
amap = tvm.runtime.convert({a: 2, b: 3})
|
||||
assert isinstance(amap, tvm_ffi.Map)
|
||||
|
||||
|
||||
def test_in_container():
|
||||
arr = tvm.runtime.convert(["a", "b", "c"])
|
||||
assert "a" in arr
|
||||
assert "d" not in arr
|
||||
|
||||
|
||||
def test_tensor_container():
|
||||
x = tvm.runtime.tensor([1, 2, 3])
|
||||
arr = tvm.runtime.convert([x, x])
|
||||
assert arr[0].same_as(x)
|
||||
assert arr[1].same_as(x)
|
||||
assert isinstance(arr[0], tvm.runtime.Tensor)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tvm.testing.main()
|
||||
Reference in New Issue
Block a user