使用不同的等效实例的数组差异([array] - [other array])

时间:2010-09-25 04:54:17

标签: ruby arrays

我正在尝试使用差异方法(array1 - array2),但它没有按预期工作。

我的单元测试:

a = DeepsEdge.new(Set[1,2])
b = DeepsEdge.new(Set[3,4])
c = DeepsEdge.new(Set[3,4])
assert a != b, "these are equal and should not be"
assert_equal c, b
assert_not_equal a, b
assert_not_same c, b
x = [a,b]
y = [c]
assert_equal x, [a,c]
assert_equal y, [b]
assert b.eql?(c), 'b not eql? to c' #tests up to and including this line pass
assert_equal x-y, [a] #does not pass  

我不确定这里发生了什么。 DeepsEdge类包含可比性。我已经超载< =>和eql?如何让x-y返回[a]而不是[a,c]?

1 个答案:

答案 0 :(得分:1)

我的猜测是,当您覆盖eql?时,您忘记覆盖hash