diff --git a/src/test/java/de/ids_mannheim/korap/index/TestDistanceIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestDistanceIndex.java
index 6a5753e..57d9d9a 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestDistanceIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestDistanceIndex.java
@@ -129,7 +129,7 @@
         sq = createQuery("s:b", "s:c", 0, 1, true);
         kr = ki.search(sq, (short) 10);
         //        System.out.println(sq);
-        assertEquals(kr.getTotalResults(), 2);
+        assertEquals(2, kr.getTotalResults());
         assertEquals(0, kr.getMatch(0).startPos);
         assertEquals(1, kr.getMatch(0).endPos);
         assertEquals(1, kr.getMatch(1).startPos);
@@ -139,7 +139,7 @@
         sq = createQuery("s:b", "s:c", 2, 2, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 2);
+        assertEquals(2, kr.getTotalResults());
         assertEquals(0, kr.getMatch(0).startPos);
         assertEquals(3, kr.getMatch(0).endPos);
         assertEquals(1, kr.getMatch(1).startPos);
@@ -149,7 +149,7 @@
         sq = createQuery("s:b", "s:c", 2, 3, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 3);
+        assertEquals(3, kr.getTotalResults());
 
         ki.close();
     }
@@ -209,7 +209,7 @@
         sq = createQuery("s:c", "s:d", 3, 3, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 2);
+        assertEquals(2, kr.getTotalResults());
     }
 
 
@@ -232,7 +232,7 @@
         SpanQuery sq = createQuery("s:b", "s:c", 1, 2, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 3);
+        assertEquals(3, kr.getTotalResults());
         assertEquals(0, kr.getMatch(0).startPos);
         assertEquals(3, kr.getMatch(0).endPos);
         assertEquals(1, kr.getMatch(1).startPos);
@@ -254,7 +254,7 @@
         SpanQuery sq = createElementQuery("x", "y", 0, 0, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 4);
+        assertEquals(4, kr.getTotalResults());
         assertEquals(2, kr.getMatch(0).startPos);
         assertEquals(7, kr.getMatch(0).endPos);
         assertEquals(3, kr.getMatch(1).startPos);
@@ -266,7 +266,7 @@
         sq = createElementQuery("y", "x", 1, 1, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 1);
+        assertEquals(1, kr.getTotalResults());
         assertEquals(5, kr.getMatch(0).startPos);
         assertEquals(10, kr.getMatch(0).endPos);
 
@@ -274,7 +274,7 @@
         sq = createElementQuery("y", "x", 1, 2, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 2);
+        assertEquals(2, kr.getTotalResults());
         assertEquals(4, kr.getMatch(0).startPos);
         assertEquals(9, kr.getMatch(0).endPos);
         assertEquals(5, kr.getMatch(1).startPos);
@@ -284,7 +284,7 @@
         sq = createElementQuery("x", "x", 1, 2, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 2);
+        assertEquals(2, kr.getTotalResults());
     }
 
 
@@ -298,7 +298,7 @@
         SpanQuery firstClause = createQuery("s:d", "s:e", 3, 4, true);
         kr = ki.search(firstClause, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 3);
+        assertEquals(3, kr.getTotalResults());
         assertEquals(0, kr.getMatch(0).getLocalDocID());
         assertEquals(2, kr.getMatch(0).startPos);
         assertEquals(6, kr.getMatch(0).endPos);
@@ -314,7 +314,7 @@
                 createElementQuery("y", "x", 1, 2, true));
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 1);
+        assertEquals(1, kr.getTotalResults());
         assertEquals(4, kr.getMatch(0).startPos);
         assertEquals(9, kr.getMatch(0).endPos);
     }
@@ -349,7 +349,7 @@
         SpanQuery sq = createQuery("s:c", "s:c", 1, 2, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 3);
+        assertEquals(3, kr.getTotalResults());
         assertEquals(0, kr.getMatch(0).startPos);
         assertEquals(3, kr.getMatch(0).endPos);
         assertEquals(2, kr.getMatch(1).startPos);
@@ -364,13 +364,13 @@
         sq = createQuery("s:e", "s:e", 1, 1, true);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 1);
+        assertEquals(1, kr.getTotalResults());
 
         // without order
         sq = createQuery("s:e", "s:e", 1, 1, false);
         kr = ki.search(sq, (short) 10);
 
-        assertEquals(kr.getTotalResults(), 2);
+        assertEquals(2, kr.getTotalResults());
     }
 
     /** doc() cannot be called when SpanOr has reached an end.
@@ -429,7 +429,7 @@
             new DistanceConstraint(0, 1, true, false), true);
 
         kr = ki.search(sq, (short) 10);
-        assertEquals(kr.getTotalResults(), 8);
+        assertEquals(8, kr.getTotalResults());
     }
     
     @Test
