Skip to content

Commit

Permalink
Fix and test idempotent updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Whitaker committed Mar 21, 2014
1 parent 97d63c9 commit fc93888
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
16 changes: 16 additions & 0 deletions raco/cev_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,19 @@ def test_cev(self):

for i in range(5, 12):
self.assertEquals(cev.get_equivalent_columns(i), {i})

def test_cev_idempotent(self):
cev = physprop.ColumnEquivalenceClassSet(12)

cev.merge(2, 1)
cev.merge(4, 3)
cev.merge(3, 2)
cev.merge(2, 1)
cev.merge(4, 3)
cev.merge(3, 2)

for i in range(1, 5):
self.assertEquals(cev.get_equivalent_columns(i), {1, 2, 3, 4})

for i in range(5, 12):
self.assertEquals(cev.get_equivalent_columns(i), {i})
4 changes: 4 additions & 0 deletions raco/physprop.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ def merge(self, col1, col2):

min_rep = self.member_dict[_min]
max_rep = self.member_dict[_max]

if min_rep == max_rep:
return

min_members = self.rep_dict[min_rep]
max_members = self.rep_dict[max_rep]

Expand Down

0 comments on commit fc93888

Please sign in to comment.