Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
flybirding10011
DI-treetensor
提交
e5ed1297
D
DI-treetensor
项目概览
flybirding10011
/
DI-treetensor
与 Fork 源项目一致
Fork自
OpenDILab开源决策智能平台 / DI-treetensor
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DI-treetensor
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e5ed1297
编写于
9月 11, 2021
作者:
HansBug
😆
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test(hansbug): add full unittest for treetensor.numpy
上级
d330d3bd
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
210 addition
and
0 deletion
+210
-0
test/numpy/test_numpy.py
test/numpy/test_numpy.py
+200
-0
treetensor/numpy/numpy.py
treetensor/numpy/numpy.py
+10
-0
未找到文件。
test/numpy/test_numpy.py
浏览文件 @
e5ed1297
import
numpy
as
np
import
pytest
from
treetensor.common
import
TreeObject
from
treetensor.numpy
import
TreeNumpy
# noinspection DuplicatedCode
@
pytest
.
mark
.
unittest
class
TestNumpyNumpy
:
_DEMO_1
=
TreeNumpy
({
...
...
@@ -15,11 +17,209 @@ class TestNumpyNumpy:
}
})
_DEMO_2
=
TreeNumpy
({
'a'
:
np
.
array
([[
1
,
22
,
3
],
[
4
,
5
,
6
]]),
'b'
:
np
.
array
([
1
,
3
,
5
,
7
]),
'x'
:
{
'c'
:
np
.
array
([[
11
],
[
0
]]),
'd'
:
np
.
array
([
3
,
9
,
11.0
])
}
})
_DEMO_3
=
TreeNumpy
({
'a'
:
np
.
array
([[
0
,
0
,
0
],
[
0
,
0
,
0
]]),
'b'
:
np
.
array
([
0
,
0
,
0
,
0
]),
'x'
:
{
'c'
:
np
.
array
([[
0
],
[
0
]]),
'd'
:
np
.
array
([
0
,
0
,
0.0
])
}
})
def
test_size
(
self
):
assert
self
.
_DEMO_1
.
size
==
15
assert
self
.
_DEMO_2
.
size
==
15
assert
self
.
_DEMO_3
.
size
==
15
def
test_nbytes
(
self
):
assert
self
.
_DEMO_1
.
nbytes
==
120
assert
self
.
_DEMO_2
.
nbytes
==
120
assert
self
.
_DEMO_3
.
nbytes
==
120
def
test_sum
(
self
):
assert
self
.
_DEMO_1
.
sum
()
==
94.0
assert
self
.
_DEMO_2
.
sum
()
==
91.0
assert
self
.
_DEMO_3
.
sum
()
==
0.0
def
test_all
(
self
):
assert
self
.
_DEMO_1
.
all
()
assert
not
self
.
_DEMO_2
.
all
()
assert
not
self
.
_DEMO_3
.
all
()
assert
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
True
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
True
]]),
'd'
:
np
.
array
([
True
,
True
,
True
])
}
}).
all
()
assert
not
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
True
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
True
]]),
'd'
:
np
.
array
([
True
,
True
,
False
])
}
}).
all
()
assert
not
TreeNumpy
({
'a'
:
np
.
array
([[
False
,
False
,
False
],
[
False
,
False
,
False
]]),
'b'
:
np
.
array
([
False
,
False
,
False
,
False
]),
'x'
:
{
'c'
:
np
.
array
([[
False
],
[
False
]]),
'd'
:
np
.
array
([
False
,
False
,
False
])
}
}).
all
()
def
test_any
(
self
):
assert
self
.
_DEMO_1
.
any
()
assert
self
.
_DEMO_2
.
any
()
assert
not
self
.
_DEMO_3
.
any
()
assert
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
True
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
True
]]),
'd'
:
np
.
array
([
True
,
True
,
True
])
}
}).
any
()
assert
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
True
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
True
]]),
'd'
:
np
.
array
([
True
,
True
,
False
])
}
}).
any
()
assert
not
TreeNumpy
({
'a'
:
np
.
array
([[
False
,
False
,
False
],
[
False
,
False
,
False
]]),
'b'
:
np
.
array
([
False
,
False
,
False
,
False
]),
'x'
:
{
'c'
:
np
.
array
([[
False
],
[
False
]]),
'd'
:
np
.
array
([
False
,
False
,
False
])
}
}).
any
()
def
test_eq
(
self
):
assert
(
self
.
_DEMO_1
==
self
.
_DEMO_1
).
all
()
assert
(
self
.
_DEMO_2
==
self
.
_DEMO_2
).
all
()
assert
not
(
self
.
_DEMO_1
==
self
.
_DEMO_2
).
all
()
def
test_ne
(
self
):
assert
not
(
self
.
_DEMO_1
!=
self
.
_DEMO_1
).
any
()
assert
not
(
self
.
_DEMO_2
!=
self
.
_DEMO_2
).
any
()
assert
(
self
.
_DEMO_1
==
self
.
_DEMO_2
).
any
()
def
test_gt
(
self
):
assert
not
(
self
.
_DEMO_1
>
self
.
_DEMO_1
).
any
()
assert
not
(
self
.
_DEMO_2
>
self
.
_DEMO_2
).
any
()
assert
((
self
.
_DEMO_1
>
self
.
_DEMO_2
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
False
,
False
,
False
],
[
False
,
False
,
False
]]),
'b'
:
np
.
array
([
False
,
False
,
False
,
False
]),
'x'
:
{
'c'
:
np
.
array
([[
False
],
[
True
]]),
'd'
:
np
.
array
([
False
,
False
,
False
])
}
})).
all
()
assert
((
self
.
_DEMO_2
>
self
.
_DEMO_1
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
False
,
True
,
False
],
[
False
,
False
,
False
]]),
'b'
:
np
.
array
([
False
,
False
,
False
,
False
]),
'x'
:
{
'c'
:
np
.
array
([[
False
],
[
False
]]),
'd'
:
np
.
array
([
False
,
False
,
False
])
}
})).
all
()
def
test_ge
(
self
):
assert
(
self
.
_DEMO_1
>=
self
.
_DEMO_1
).
all
()
assert
(
self
.
_DEMO_2
>=
self
.
_DEMO_2
).
all
()
assert
((
self
.
_DEMO_1
>=
self
.
_DEMO_2
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
False
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
True
]]),
'd'
:
np
.
array
([
True
,
True
,
True
])
}
})).
all
()
assert
((
self
.
_DEMO_2
>=
self
.
_DEMO_1
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
True
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
False
]]),
'd'
:
np
.
array
([
True
,
True
,
True
])
}
})).
all
()
def
test_lt
(
self
):
assert
not
(
self
.
_DEMO_1
<
self
.
_DEMO_1
).
any
()
assert
not
(
self
.
_DEMO_2
<
self
.
_DEMO_2
).
any
()
assert
((
self
.
_DEMO_1
<
self
.
_DEMO_2
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
False
,
True
,
False
],
[
False
,
False
,
False
]]),
'b'
:
np
.
array
([
False
,
False
,
False
,
False
]),
'x'
:
{
'c'
:
np
.
array
([[
False
],
[
False
]]),
'd'
:
np
.
array
([
False
,
False
,
False
])
}
})).
all
()
assert
((
self
.
_DEMO_2
<
self
.
_DEMO_1
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
False
,
False
,
False
],
[
False
,
False
,
False
]]),
'b'
:
np
.
array
([
False
,
False
,
False
,
False
]),
'x'
:
{
'c'
:
np
.
array
([[
False
],
[
True
]]),
'd'
:
np
.
array
([
False
,
False
,
False
])
}
})).
all
()
def
test_le
(
self
):
assert
(
self
.
_DEMO_1
<=
self
.
_DEMO_1
).
all
()
assert
(
self
.
_DEMO_2
<=
self
.
_DEMO_2
).
all
()
assert
((
self
.
_DEMO_1
<=
self
.
_DEMO_2
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
True
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
False
]]),
'd'
:
np
.
array
([
True
,
True
,
True
])
}
})).
all
()
assert
((
self
.
_DEMO_2
<=
self
.
_DEMO_1
)
==
TreeNumpy
({
'a'
:
np
.
array
([[
True
,
False
,
True
],
[
True
,
True
,
True
]]),
'b'
:
np
.
array
([
True
,
True
,
True
,
True
]),
'x'
:
{
'c'
:
np
.
array
([[
True
],
[
True
]]),
'd'
:
np
.
array
([
True
,
True
,
True
])
}
})).
all
()
def
test_tolist
(
self
):
assert
self
.
_DEMO_1
.
tolist
()
==
TreeObject
({
'a'
:
[[
1
,
2
,
3
],
[
4
,
5
,
6
]],
'b'
:
[
1
,
3
,
5
,
7
],
'x'
:
{
'c'
:
[[
11
],
[
23
]],
'd'
:
[
3
,
9
,
11.0
],
}
})
assert
self
.
_DEMO_2
.
tolist
()
==
TreeObject
({
'a'
:
[[
1
,
22
,
3
],
[
4
,
5
,
6
]],
'b'
:
[
1
,
3
,
5
,
7
],
'x'
:
{
'c'
:
[[
11
],
[
0
]],
'd'
:
[
3
,
9
,
11.0
],
}
})
assert
self
.
_DEMO_3
.
tolist
()
==
TreeObject
({
'a'
:
[[
0
,
0
,
0
],
[
0
,
0
,
0
]],
'b'
:
[
0
,
0
,
0
,
0
],
'x'
:
{
'c'
:
[[
0
],
[
0
]],
'd'
:
[
0
,
0
,
0.0
],
}
})
treetensor/numpy/numpy.py
浏览文件 @
e5ed1297
...
...
@@ -37,3 +37,13 @@ class TreeNumpy(TreeData):
@
method_treelize
(
return_type
=
TreeObject
)
def
sum
(
self
:
np
.
ndarray
,
*
args
,
**
kwargs
):
return
self
.
sum
(
*
args
,
**
kwargs
)
@
ireduce
(
all
)
@
method_treelize
(
return_type
=
TreeObject
)
def
all
(
self
:
np
.
ndarray
,
*
args
,
**
kwargs
):
return
self
.
all
(
*
args
,
**
kwargs
)
@
ireduce
(
any
)
@
method_treelize
(
return_type
=
TreeObject
)
def
any
(
self
:
np
.
ndarray
,
*
args
,
**
kwargs
):
return
self
.
any
(
*
args
,
**
kwargs
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录