grouping: The expectation is that if there is a virtual clump of length N, then each iteration through that clump there are N elements available. This patch breaks that assumption.

Revert "change clump when the group size is greater than the sequence length"

This reverts commit baedb316c5.

Conflicts:
	basis/grouping/grouping-docs.factor
	basis/grouping/grouping-tests.factor
	basis/grouping/grouping.factor
db4
Doug Coleman 2012-10-29 09:47:15 -07:00
parent 93cf443f32
commit 0c5d70e881
3 changed files with 5 additions and 5 deletions

View File

@ -117,7 +117,7 @@ $nl
HELP: clump
{ $values { "seq" "a sequence" } { "n" "a non-negative integer" } { "array" "a sequence of sequences" } }
{ $description "Splits the sequence into overlapping clumps of " { $snippet "n" } " elements and collects the clumps into a new array." }
{ $notes "For an empty sequence, the result is an empty sequence. For a non empty sequence with a length smaller than " { $snippet "n" } ", the result will be a sequence with one element: the input sequence " { $snippet "seq" } "." }
{ $notes "For an empty sequence, the result is an empty sequence. For a non empty sequence with a length smaller than " { $snippet "n" } ", the result will be an empty sequence." }
{ $examples
{ $example "USING: grouping prettyprint ;" "{ 3 1 3 3 7 } 2 clump ." "{ { 3 1 } { 1 3 } { 3 3 } { 3 7 } }" }
} ;

View File

@ -13,11 +13,11 @@ IN: grouping.tests
] unit-test
[ 0 ] [ { } 2 <clumps> length ] unit-test
[ 1 ] [ { 1 } 2 <clumps> length ] unit-test
[ 0 ] [ { 1 } 2 <clumps> length ] unit-test
[ 1 ] [ { 1 2 } 2 <clumps> length ] unit-test
[ 2 ] [ { 1 2 3 } 2 <clumps> length ] unit-test
{ { { 1 } } } [ { 1 } 2 clump ] unit-test
{ { } } [ { 1 } 2 clump ] unit-test
{ { { 1 2 } } } [ { 1 2 } 2 clump ] unit-test
{ { { 1 2 } { 2 3 } } } [ { 1 2 3 } 2 clump ] unit-test

View File

@ -45,14 +45,14 @@ INSTANCE: abstract-clumps sequence
M: abstract-clumps length
dup seq>> length [ drop 0 ] [
swap [ 1 + ] [ n>> ] bi* - 1 max
swap [ 1 + ] [ n>> ] bi* [-]
] if-zero ; inline
M: abstract-clumps set-length
[ n>> + 1 - ] [ seq>> ] bi set-length ; inline
M: abstract-clumps group@
[ [ n>> over + ] [ seq>> length ] bi min ] [ seq>> ] bi ; inline
[ n>> over + ] [ seq>> ] bi ; inline
TUPLE: chunking-seq { seq read-only } { n read-only } ;