# HG changeset patch # User tatsuki # Date 1485292548 -32400 # Node ID c8a9bc5243a94d436231c3f19ebc65237780ac4c # Parent b6118ca2c2c22a6464b15b6ea6629a06d825ad91 bug fix diff -r b6118ca2c2c2 -r c8a9bc5243a9 src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/query/traverser/nodeiterator/RedBlackTreeNodeAndPathIterator.java --- 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); diff -r b6118ca2c2c2 -r c8a9bc5243a9 src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/core/treeeditor/RedBlack/RedBlackTreeEditorNodeTest.java --- 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); //赤黒木のバランスが取れているかを調べる }