Skip to content

Commit cbf5f9d

Browse files
committed
Simplify 'equivalent' in TestUtils.jl
1 parent abe8ef0 commit cbf5f9d

1 file changed

Lines changed: 14 additions & 19 deletions

File tree

test/TestUtils.jl

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,6 @@ function equivalent(arg1::Real, arg2::Real)
3838
return arg1 == arg2
3939
end
4040

41-
function equivalent(left, right)
42-
left_ids, right_ids = dc.get_free_indices.((left, right))
43-
44-
return can_remap(left_ids, right_ids)
45-
end
46-
4741
function equivalent(left::Variable, right::Variable)
4842
left_ids, right_ids = dc.get_free_indices.((left, right))
4943

@@ -58,23 +52,24 @@ function equivalent(left::Zero, right::Zero)
5852
return can_remap(dc.get_free_indices(left), dc.get_free_indices(right))
5953
end
6054

61-
function equivalent(left::BinaryOperation, right::BinaryOperation)
62-
if typeof(left) != typeof(right)
63-
return false
64-
end
55+
function equivalent(left::BinaryOperation{T}, right::BinaryOperation{T}) where {T}
56+
return equivalent(left.arg1, right.arg1) && equivalent(left.arg2, right.arg2)
57+
end
6558

66-
same_types =
67-
(
68-
typeof(left.arg1) == typeof(right.arg1) &&
69-
typeof(left.arg2) == typeof(right.arg2)
70-
) ||
71-
(typeof(left.arg1) == typeof(right.arg2) && typeof(left.arg2) == typeof(right.arg1))
59+
function equivalent(left::BinaryOperation{dc.Mult}, right::BinaryOperation{dc.Mult})
60+
return (equivalent(left.arg1, right.arg1) && equivalent(left.arg2, right.arg2)) ||
61+
(equivalent(left.arg1, right.arg2) && equivalent(left.arg2, right.arg1))
62+
end
7263

73-
return same_types &&
74-
(equivalent(left.arg1, right.arg1) && equivalent(left.arg2, right.arg2)) ||
64+
function equivalent(left::BinaryOperation{dc.Add}, right::BinaryOperation{dc.Add})
65+
return (equivalent(left.arg1, right.arg1) && equivalent(left.arg2, right.arg2)) ||
7566
(equivalent(left.arg1, right.arg2) && equivalent(left.arg2, right.arg1))
7667
end
7768

78-
function equivalent(arg1::T, arg2::T) where {T<:UnaryOperation}
69+
function equivalent(arg1::UnaryOperation{T}, arg2::UnaryOperation{T}) where {T}
7970
return equivalent(arg1.arg, arg2.arg)
8071
end
72+
73+
function equivalent(arg1::T1, arg2::T2) where {T1,T2}
74+
return false
75+
end

0 commit comments

Comments
 (0)