# ignite-437: fix random comparison mode

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/eeedf73a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/eeedf73a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/eeedf73a

Branch: refs/heads/sprint-3
Commit: eeedf73aa64f3d5299a93b482344ffee72e8a6f8
Parents: 0271114
Author: Artem Shutak <ashu...@gridgain.com>
Authored: Fri Mar 20 19:29:50 2015 +0300
Committer: Artem Shutak <ashu...@gridgain.com>
Committed: Fri Mar 20 19:29:50 2015 +0300

----------------------------------------------------------------------
 .../query/h2/sql/IgniteVsH2QueryTest.java       | 34 ++++++++++++++++++--
 1 file changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/eeedf73a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
index ce2b661..85319f3 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
@@ -476,9 +476,19 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
 
                 break;
             case RANDOM:
-                for (List<?> row1 : rs1)
-                    assertTrue("Actual result set has to contain row.\n" + 
"Result set=" + rs2 + "\n" + "Row=" + row1, 
-                        rs2.contains(row1));
+                Map<List<?>, Integer> rowsWithCnt1 = 
extractUniqueueRowsWithCounts(rs1);
+                Map<List<?>, Integer> rowsWithCnt2 = 
extractUniqueueRowsWithCounts(rs2);
+                
+                assertEquals("Uniqueue rows count has to be equal.", 
rowsWithCnt1.size(), rowsWithCnt2.size());
+
+                for (Map.Entry<List<?>, Integer> entry1 : 
rowsWithCnt1.entrySet()) {
+                    List<?> row = entry1.getKey();
+                    Integer cnt1 = entry1.getValue();
+
+                    Integer cnt2 = rowsWithCnt2.get(row);
+
+                    assertEquals("Row has different occurance number.\nRow=" + 
row, cnt1, cnt2);
+                }
                 
                 break;
             default: 
@@ -487,6 +497,24 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * @param rs Result set.
+     * @return Map of uniqueue rows at the result set to number of occuriances 
at the result set.
+     */
+    private Map<List<?>, Integer> 
extractUniqueueRowsWithCounts(Iterable<List<?>> rs) {
+        Map<List<?>, Integer> res = new HashMap<>();
+
+        for (List<?> row : rs) {
+            Integer cnt = res.get(row);
+            
+            if (cnt == null)
+                cnt = 0;
+            
+            res.put(row, cnt + 1);
+        }
+        return res;
+    }
+
+    /**
      * @throws Exception If failed.
      */
     private void checkAllDataEquals() throws Exception {

Reply via email to