changeset 305:c8a9bc5243a9

bug fix
author tatsuki
date Wed, 25 Jan 2017 06:15:48 +0900
parents b6118ca2c2c2
children 0d11fd054893
files src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/query/traverser/nodeiterator/RedBlackTreeNodeAndPathIterator.java src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/core/treeeditor/RedBlack/RedBlackTreeEditorNodeTest.java
diffstat 2 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/query/traverser/nodeiterator/RedBlackTreeNodeAndPathIterator.java	Wed Jan 25 05:53:48 2017 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/query/traverser/nodeiterator/RedBlackTreeNodeAndPathIterator.java	Wed Jan 25 06:15:48 2017 +0900
@@ -29,12 +29,14 @@
         Attributes attribute = target.getAttributes();
         ByteBuffer targetValue = attribute.get(key);
 
-        if (targetValue.hashCode() - searchValueBf.hashCode() < 0) {
+        long b1 = targetValue.hashCode();
+        long b2 = searchValueBf.hashCode();
+        if (b1 - b2 < 0) {
             Children children = target.getChildren();
             TreeNode child = children.at(0).b();
             currentPath = currentPath.add(0);
             return search(child, key, searchValueBf);
-        } else if (targetValue.hashCode() - searchValueBf.hashCode() > 0) {
+        } else if (b1 - b2 > 0) {
             Children children = target.getChildren();
             TreeNode child = children.at(1).b();
             currentPath = currentPath.add(1);
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/core/treeeditor/RedBlack/RedBlackTreeEditorNodeTest.java	Wed Jan 25 05:53:48 2017 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/core/treeeditor/RedBlack/RedBlackTreeEditorNodeTest.java	Wed Jan 25 06:15:48 2017 +0900
@@ -23,7 +23,7 @@
 
 public class RedBlackTreeEditorNodeTest {
 
-    int testCount = 20;
+    int testCount = 1000;
 
     @Test
     public void RedBlackTreeEditorNode() {
@@ -64,7 +64,7 @@
             Assert.assertEquals(expectCount, nodeCount);
 
             ColorlessTreeNode rootNode2 = (ColorlessTreeNode) rootNode; //test用methodを使うためにcastしている
-            //rootNode2.checkDepth(0, 0); //赤黒木のバランスが取れているかを調べる
+            rootNode2.checkDepth(0, 0); //赤黒木のバランスが取れているかを調べる
         }
 
         System.out.println("------------------------------------------- delete -----------------------------------------------------------------------------------");
@@ -103,6 +103,8 @@
 
             int expectCount = testCount - count;
             Assert.assertEquals(expectCount, nodeCount);
+            ColorlessTreeNode rootNode2 = (ColorlessTreeNode) rootNode; //test用methodを使うためにcastしている
+            rootNode2.checkDepth(0, 0); //赤黒木のバランスが取れているかを調べる
         }