hashdiff
hashdiff copied to clipboard
Getting (+-) instead of diff (tilde) when comparing arrays
Hello. I find the following behavior (using Hashdiff 1.0.1) somewhat unexpected:
Hashdiff.diff(%w[a b c], %w[a b d])
=> [["-", "[2]", "c"], ["+", "[2]", "d"]]
Would not it be better to get
Hashdiff.diff(%w[a b c], %w[a b d])
=> [["~", "[2]", "c", "d"]]
?
Is there an option to get this behavior ?
Thanks for reading!
I think it's possible to achieve that. It will be much appreciated if someone can give a hand on this.
This does it:
Hashdiff.diff(%w[a b c], %w[a b d], use_lcs: false)
This does it:
Hashdiff.diff(%w[a b c], %w[a b d], use_lcs: false)
This is a workaround. I'm wondering if it is possible to make the algorithm smarter. Conceptually, it seems possible.
Does LCS algorithm have a strict specification?
Does LCS algorithm have a strict specification?
I don't think it has. The tests + implementation are the de facto spec. In this case, the algorithm performs better, it might be acceptable to users even if it differs from previous results.