我发现一个没有意义的案例。深层复制在工作台系统中总是失败
我有以下特点:
test_array_deep_copy: BOOLEAN
local
imp, old_imp: ARRAY[STRING]
do
comment("Test of a deep copy.")
create {ARRAY[STRING]} imp.make_empty
imp.force ("Alan", 1)
imp.force ("Mark", 2)
imp.force ("Tom", 3)
old_imp := imp.deep_twin
imp[2] := "Jim"
Result :=
across
1 |..| imp.count as j
all
j.item /= 2 implies imp [j.item] = old_imp [j.item]
end
check not Result end
end
既然是深拷贝,这意味着IMP地址和old_imp是不同的,以及其在这两个两个属性也指不同的地址。
因此,跨越循环后的这个“结果”应该是错误的,因为imp和old_imp中的地址在同一个索引处是不同的。
所以当我调试这段代码时,它说结果跨循环完成后设置为false。
问题是,“检查不结果”不会使false为真。
我不知道为什么。在“check not Result”语句中的“Result”之前的“not”应该使其全部检查为真,因此它应该在工作台系统中表示“PASSED”,但是它失败。
这是为什么?