[ 
https://issues.apache.org/jira/browse/COLLECTIONS-525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13993528#comment-13993528
 ] 

zigler zhang edited comment on COLLECTIONS-525 at 5/9/14 4:41 PM:
------------------------------------------------------------------

I'm afraid there are two other places make the same mistake:
the test code as below:
                PatriciaTrie<String> aTree2 = new PatriciaTrie<String> ();
                aTree2.put("点评", "联盟");
                aTree2.put("点版", "定向");
                System.out.println(aTree2.prefixMap("点").values());



was (Author: zigler):
I'm afraid there are two other places make the same mistake:
in PrefixRangeEntrySet iterator

   } else if (delegate.lengthInBits >= prefixStart.bitIndex) {

and in subtree:

  if (current.bitIndex <= path.bitIndex || lengthInBits <= current.bitIndex) {

the former one and the second judgement of the second should both eliminate '='

the test code as below:
                PatriciaTrie<String> aTree2 = new PatriciaTrie<String> ();
                aTree2.put("点评", "联盟");
                aTree2.put("点版", "定向");
                System.out.println(aTree2.prefixMap("点").values());


> PatriciaTrie
> ------------
>
>                 Key: COLLECTIONS-525
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-525
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: Collection
>    Affects Versions: 4.0
>         Environment: android
>            Reporter: zigler zhang
>            Priority: Critical
>         Attachments: 525.patch
>
>
>  the result of trie tree prefixMap function is inconsistent. it would contain 
> a key but the size is 0;
> some unittest codes as below: 
>   PatriciaTrie<String> aTree =
>         new PatriciaTrie<String> ();
>     aTree.put("点评", "测试");
>     aTree.put("书评", "测试");
>     assertTrue(aTree.prefixMap("点").containsKey("点评")); //pass
>     assertEquals("测试", aTree.prefixMap("点").get("点评")); //pass
>     assertFalse(aTree.prefixMap("点").isEmpty());                 //fail
>     assertEquals(1, aTree.prefixMap("点").size());                 //fail 
> actural 0
>     assertEquals(1, aTree.prefixMap("点").keySet().size());   //fail actural 0
>     assertEquals(1, aTree.prefixMap("点").entrySet().size()); //fail actural 0
>     assertEquals(1, aTree.prefixMap("点评").values().size()); //fail actural 0



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to