[Git][noosfero/noosfero][master] fix logic of equivalent assertion for arrays with same size and elements duplicated

Leandro Nunes gitlab at mg.gitlab.com
Tue Dec 15 18:25:38 BRST 2015


Leandro Nunes pushed to branch master at Noosfero / noosfero


Commits:
cf372b23 by Leandro Nunes dos Santos at 2015-12-15T16:59:28Z
fix logic of equivalent assertion for arrays with same size and elements duplicated

- - - - -


2 changed files:

- test/test_helper.rb
- + test/unit/helper_test.rb


Changes:

=====================================
test/test_helper.rb
=====================================
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -87,8 +87,8 @@ class ActiveSupport::TestCase
   alias :ok :assert_block
 
   def assert_equivalent(enum1, enum2)
-    norm1 = enum1.to_a
-    norm2 = enum2.to_a
+    norm1 = enum1.group_by{|e|e}.values
+    norm2 = enum2.group_by{|e|e}.values
     assert_equal norm1.size, norm2.size, "Size mismatch: #{enum1.inspect} vs #{enum2.inspect}"
     assert_equal [], norm1 - norm2
     assert_equal [], norm2 - norm1


=====================================
test/unit/helper_test.rb
=====================================
--- /dev/null
+++ b/test/unit/helper_test.rb
@@ -0,0 +1,62 @@
+require_relative "../test_helper"
+
+class HelperTest < ActiveSupport::TestCase
+
+  should 'assert_equivalent be true for the same arrays' do
+    a1 = [1,2,3]
+    a2 = [1,2,3]
+    assert_equivalent a1, a2
+  end
+
+  should 'assert_equivalent be true for equivalent arrays' do
+    a1 = [1,2,3]
+    a2 = [3,2,1]
+    assert_equivalent a1, a2
+  end
+
+  should 'assert_equivalent be true for equivalent arrays independent of parameter order' do
+    a1 = [1,2,3]
+    a2 = [3,2,1]
+    assert_equivalent a2, a1
+  end
+
+  should 'assert_equivalent be false for different arrays' do
+    a1 = [1,2,3]
+    a2 = [4,2,1]
+    assert_raise Minitest::Assertion do
+      assert_equivalent(a1, a2)
+    end
+  end
+
+  should 'assert_equivalent be false for different arrays independent of parameter order' do
+    a1 = [1,2,3]
+    a2 = [4,2,1]
+    assert_raise Minitest::Assertion do
+      assert_equivalent(a2, a1)
+    end
+  end
+
+  should 'assert_equivalent be false for arrays with different sizes' do
+    a1 = [1,2,3]
+    a2 = [1,2,3,4]
+    assert_raise Minitest::Assertion do
+      assert_equivalent(a1, a2)
+    end
+  end
+
+  should 'assert_equivalent be false for arrays with same elements duplicated' do
+    a1 = [2,2,3]
+    a2 = [2,3,3]
+    assert_raise Minitest::Assertion do
+      assert_equivalent(a1, a2)
+    end
+  end
+
+  should 'assert_equivalent be false for arrays with same elements duplicated of different sizes' do
+    a1 = [2,2,3]
+    a2 = [2,3,3,3]
+    assert_raise Minitest::Assertion do
+      assert_equivalent(a1, a2)
+    end
+  end
+end



View it on GitLab: https://gitlab.com/noosfero/noosfero/commit/cf372b23a2d085a50ed807ee46f06ea806984ae2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20151215/ef53a681/attachment-0001.html>


More information about the Noosfero-dev mailing list