Algorithm-SkipList

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Perl extension Algorithm::SkipList. (Changes which may
not be backwards compatible are marked with an asterisk '*'.)

1.02	Wed Jan  4 2005
	* removed validate_key and validate_value methods from node types
	- removed commented-out assertions
	- added _search_nodes method
	- keys and values methods rewritten, and can retrieve keys or
	  values between key ranges ranges 
	- copy method rewritten
	- corrected typo in error message
	- added missing test to MANIFEST
	- added additional tests
	- added SIGNATURE to distribution

1.01	Fri Sep  3 2004
	- minor correction to distribution

1.00    Fri Sep  3 2004
	- renamed distribution to Algorithm-SkipList
	- updated version numbers

Changes  view on Meta::CPAN

	- corrected typos in documentation
	- added tests for deleted greatest bug
	- fixed bug with greatest method when deleting last node
	- added _greatest_node method to find the last node as needed
	- other minor code changes

0.70_01 Sun Jun  6 2004 
	- tests rewritten (work in progress)
	- fixed bug with next_key checking node when key was deleted
	- uses Test::More for tests
	- fixed "Too late to run INIT block" error with Test::More
	  use_ok, $NULL is now set in import() method
	- fixed bug where level sometimes exceeded user-set max level
	- P and max_level can now be set dynamically
	- added tests for max_level and p
	- checks for error when setting max_level or P
	- fixed bug with definition of List::SkipList::Null
	- $NULL is now an 'our' variable and accessible from outside
	- level method was changed to autoload, since it was redundant
	- minor optimization of _search_with_finger and _search
	* header method in Node is read-only - it returns a pointer
	  which can be used to change values anyway
	* key method in Node is read-only - it should not be
          changed once it is inside a list
	- added _adjust_level_threshold method from code that was in
	  _new_node_level to adjust SIZE_THRESHOLD/SIZE_LEVEL

Changes  view on Meta::CPAN

	- added Build.PL to distribution
        - updated README
	- corrected and updated POD

0.31  Fri Feb 13 2004
	- removed memoized node example from POD
	- reformatted E-mail addresses in various files to foil
	  spam harvesters
	- changes calls to keys to CORE::keys [Bug 5317]
	- added version to List::SkipList::Node
	- corrected errors in POD formatting
	- corrected and updated POD
	- added META.yml file to distribution

0.30  Tue Dec  2 2003
	- ability to tie hashes
	- made some methods autoloading
	- added last_key and reset methods to allow auto-enumeration
	- added least, greatest, keys and values methods
	- added _first_node, merge, append and copy methods
	- insert now returns a finger

README  view on Meta::CPAN

REVISION HISTORY
    Changes since v1.01:

    1.02 Wed Jan  4 2005
	* removed validate_key and validate_value methods from node types
	- removed commented-out assertions
	- added _search_nodes method
	- keys and values methods rewritten, and can retrieve keys or
	  values between key ranges ranges 
	- copy method rewritten
	- corrected typo in error message
	- added missing test to MANIFEST
	- added additional tests
	- added SIGNATURE to distribution

    A detailed revision history is in the Changes file included with
    this distribution.

KNOWN ISSUES
  The following issues are known:

t/07-max_level.t  view on Meta::CPAN

  ok( defined $List );
  ok( $List->max_level == $level );

  my $size = ($level < 10) ? (1<<$level) : (1<<10);

  for (1..$size) { $List->insert($_); }
  ok( $List->max_level == $level );

  ok( $List->level == $List->list->level, "test level() method" ); 

  # This doesn't prove there's no error (since it's
  # non-deterministic), but it's worth checking anyway.

  ok( $List->list->level <= $level );

  $List->max_level( $List->list->level );
  ok( $List->list->level == $List->max_level );

  eval { $List->max_level( $List->list->level-1); };
  ok( $List->list->level == $List->max_level );

t/20-heavy.t  view on Meta::CPAN

#-*- mode: perl;-*-

package main;

use strict;
use warnings;

# use Pod::Coverage package => 'Algorithm::SkipList';

# These tests are redundant, but they are useful for "heavy" testing
# to find rare errors (since this is a non-deterministic algorithm)
# and for some informal benchmark comparisons.

# For "heavy" testing, change size to a larger value (100 or 1,000 or 10,000).

use constant SIZE => 20;

use Test::More tests => 6+(53*SIZE);

use Test::Warn;



( run in 0.263 second using v1.01-cache-2.11-cpan-65fba6d93b7 )