Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 82260 invoked from network); 16 Mar 2008 05:44:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Mar 2008 05:44:48 -0000 Received: (qmail 56488 invoked by uid 500); 16 Mar 2008 05:44:45 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 56458 invoked by uid 500); 16 Mar 2008 05:44:45 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 56443 invoked by uid 99); 16 Mar 2008 05:44:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 15 Mar 2008 22:44:45 -0700 X-ASF-Spam-Status: No, hits=-1999.6 required=10.0 tests=ALL_TRUSTED,SUBJECT_FUZZY_TION X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 16 Mar 2008 05:44:15 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id C7EC01A9832; Sat, 15 Mar 2008 22:44:26 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r637544 - /directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java Date: Sun, 16 Mar 2008 05:44:26 -0000 To: commits@directory.apache.org From: akarasulu@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080316054426.C7EC01A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: akarasulu Date: Sat Mar 15 22:44:24 2008 New Revision: 637544 URL: http://svn.apache.org/viewvc?rev=637544&view=rev Log: added more tests to dups cursor for 100% code coverage Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java?rev=637544&r1=637543&r2=637544&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java Sat Mar 15 22:44:24 2008 @@ -338,7 +338,14 @@ { for ( int ii = 0; ii < SIZE*3-1; ii++ ) { - table.put( ii, ii ); + if ( ii < 2 + SIZE ) // keys with multiple values + { + table.put( 0, ii ); + } + else // keys with single values + { + table.put( ii, ii ); + } } Cursor> cursor = table.cursor(); @@ -346,8 +353,16 @@ while ( cursor.next() ) { Tuple tuple = cursor.get(); - assertEquals( ii, ( int ) tuple.getKey() ); - assertEquals( ii, ( int ) tuple.getValue() ); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } ii++; } @@ -357,8 +372,16 @@ do { Tuple tuple = cursor.get(); - assertEquals( ii, ( int ) tuple.getKey() ); - assertEquals( ii, ( int ) tuple.getValue() ); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } ii++; } while ( cursor.next() ); @@ -368,8 +391,247 @@ while ( cursor.previous() ) { Tuple tuple = cursor.get(); - assertEquals( ii, ( int ) tuple.getKey() ); - assertEquals( ii, ( int ) tuple.getValue() ); + + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii--; + } + + // now advance to last and go backwards again + cursor.last(); + ii = SIZE*3-2; + do + { + Tuple tuple = cursor.get(); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii--; + } + while ( cursor.previous() ); + + // advance to first then last and go backwards again + cursor.beforeFirst(); + cursor.afterLast(); + ii = SIZE*3-2; + while ( cursor.previous() ) + { + Tuple tuple = cursor.get(); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii--; + } + } + + + @Test + public void testFirstOverDupLimit() throws Exception + { + for ( int ii = 0; ii < SIZE*3-1; ii++ ) + { + if ( ii < 2 + SIZE ) // keys with multiple values + { + table.put( 0, ii ); + } + else // keys with single values + { + table.put( ii, ii ); + } + } + Cursor> cursor = table.cursor(); + + int ii = 0; + while ( cursor.next() ) + { + Tuple tuple = cursor.get(); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii++; + } + + // now go back to first and traverse all over again + cursor.first(); + ii = 0; + do + { + Tuple tuple = cursor.get(); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii++; + } + while ( cursor.next() ); + + // now go backwards + ii = SIZE*3-2; + while ( cursor.previous() ) + { + Tuple tuple = cursor.get(); + + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii--; + } + + // now advance to last and go backwards again + cursor.last(); + ii = SIZE*3-2; + do + { + Tuple tuple = cursor.get(); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii--; + } + while ( cursor.previous() ); + + // advance to first then last and go backwards again + cursor.beforeFirst(); + cursor.afterLast(); + ii = SIZE*3-2; + while ( cursor.previous() ) + { + Tuple tuple = cursor.get(); + if ( ii < 2 + SIZE ) + { + assertEquals( 0, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii--; + } + } + + + + + @Test + public void testLastOverDupLimit() throws Exception + { + for ( int ii = 0; ii < SIZE*3-1; ii++ ) + { + if ( ii > 2 + SIZE ) // keys with multiple values + { + table.put( 3 + SIZE, ii ); + } + else // keys with single values + { + table.put( ii, ii ); + } + } + Cursor> cursor = table.cursor(); + + int ii = 0; + while ( cursor.next() ) + { + Tuple tuple = cursor.get(); + if ( ii > 2 + SIZE ) + { + assertEquals( 3 + SIZE, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii++; + } + + // now go back to first and traverse all over again + cursor.first(); + ii = 0; + do + { + Tuple tuple = cursor.get(); + if ( ii > 2 + SIZE ) + { + assertEquals( 3 + SIZE, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + ii++; + } + while ( cursor.next() ); + + // now go backwards + ii = SIZE*3-2; + while ( cursor.previous() ) + { + Tuple tuple = cursor.get(); + + if ( ii > 2 + SIZE ) + { + assertEquals( 3 + SIZE, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } ii--; } @@ -379,8 +641,16 @@ do { Tuple tuple = cursor.get(); - assertEquals( ii, ( int ) tuple.getKey() ); - assertEquals( ii, ( int ) tuple.getValue() ); + if ( ii > 2 + SIZE ) + { + assertEquals( 3 + SIZE, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } ii--; } while ( cursor.previous() ); @@ -392,8 +662,16 @@ while ( cursor.previous() ) { Tuple tuple = cursor.get(); - assertEquals( ii, ( int ) tuple.getKey() ); - assertEquals( ii, ( int ) tuple.getValue() ); + if ( ii > 2 + SIZE ) + { + assertEquals( 3 + SIZE, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } + else + { + assertEquals( ii, ( int ) tuple.getKey() ); + assertEquals( ii, ( int ) tuple.getValue() ); + } ii--; } }