小编Ben*_*cis的帖子

如何在 Julia 中为自定义结构创建相等测试用例

我创建了一个结构体

mutable struct mystruct
    x::Float64
    i::Int
end
Run Code Online (Sandbox Code Playgroud)

现在,当我使用函数 x_init 初始化它时:

function x_init(x::Number,i::Int)::mystruct
    x = float(x)
    Z = mystruct(x,i)
    return Z
end
Run Code Online (Sandbox Code Playgroud)

运行这个函数时我得到

julia> x_init(2,3)
mystruct(2.0, 3)
Run Code Online (Sandbox Code Playgroud)

但在测试中@test x_init(2,3) == mystruct(2.0, 3)我得到false

我期望得到true.

有人可以解释一下为什么我得到了false以及我应该如何为此类功能编写测试用例吗?

我可以测试像

x_init(2,3).x == mystruct(2.0, 3).x && x_init(2,3).i == mystruct(2.0, 3).i
Run Code Online (Sandbox Code Playgroud)

但有没有更好的方法不涉及检查每个变量呢?

testing equality julia

4
推荐指数
1
解决办法
577
查看次数

标签 统计

equality ×1

julia ×1

testing ×1