mirror of
https://github.com/dlang/phobos.git
synced 2025-05-14 08:55:54 +03:00
Delay release of std.range.slides until 2.076
This commit is contained in:
parent
42c3b6b751
commit
23bbadc4f4
2 changed files with 7 additions and 36 deletions
|
@ -1,33 +0,0 @@
|
||||||
`std.range.slide` (a fixed-size sliding window range) was added
|
|
||||||
|
|
||||||
$(REF slide, std, range) allows to iterate a range in sliding windows:
|
|
||||||
|
|
||||||
---
|
|
||||||
import std.array : array;
|
|
||||||
import std.algorithm.comparison : equal;
|
|
||||||
|
|
||||||
assert([0, 1, 2, 3].slide(2).equal!equal(
|
|
||||||
[[0, 1], [1, 2], [2, 3]]
|
|
||||||
));
|
|
||||||
assert(5.iota.slide(3).equal!equal(
|
|
||||||
[[0, 1, 2], [1, 2, 3], [2, 3, 4]]
|
|
||||||
));
|
|
||||||
|
|
||||||
assert(iota(7).slide(2, 2).equal!equal([[0, 1], [2, 3], [4, 5]]));
|
|
||||||
assert(iota(12).slide(2, 4).equal!equal([[0, 1], [4, 5], [8, 9]]));
|
|
||||||
|
|
||||||
// set a custom stepsize (default 1)
|
|
||||||
assert(6.iota.slide(1, 2).equal!equal(
|
|
||||||
[[0], [2], [4]]
|
|
||||||
));
|
|
||||||
|
|
||||||
assert(6.iota.slide(2, 4).equal!equal(
|
|
||||||
[[0, 1], [4, 5]]
|
|
||||||
));
|
|
||||||
|
|
||||||
// allow slide with less elements than the window size
|
|
||||||
assert(3.iota.slide!(No.withFewerElements)(4).empty);
|
|
||||||
assert(3.iota.slide!(Yes.withFewerElements)(4).equal!equal(
|
|
||||||
[[0, 1, 2]]
|
|
||||||
));
|
|
||||||
---
|
|
|
@ -161,12 +161,14 @@ $(BOOKTABLE ,
|
||||||
$(TD Similar to $(D recurrence), except that a random-access _range is
|
$(TD Similar to $(D recurrence), except that a random-access _range is
|
||||||
created.
|
created.
|
||||||
))
|
))
|
||||||
|
$(COMMENT Explicitly undocumented to delay the release until 2.076
|
||||||
$(TR $(TD $(D $(LREF slide)))
|
$(TR $(TD $(D $(LREF slide)))
|
||||||
$(TD Creates a _range that returns a fixed-size sliding window
|
$(TD Creates a _range that returns a fixed-size sliding window
|
||||||
over the original _range. Unlike chunks,
|
over the original _range. Unlike chunks,
|
||||||
it advances a configurable number of items at a time,
|
it advances a configurable number of items at a time,
|
||||||
not one chunk at a time.
|
not one chunk at a time.
|
||||||
))
|
))
|
||||||
|
)
|
||||||
$(TR $(TD $(LREF stride))
|
$(TR $(TD $(LREF stride))
|
||||||
$(TD Iterates a _range with stride $(I n).
|
$(TD Iterates a _range with stride $(I n).
|
||||||
))
|
))
|
||||||
|
@ -7414,7 +7416,7 @@ if (isForwardRange!Source && hasLength!Source)
|
||||||
assert(equal(chunks, [[1], [2], [3], [], []]));
|
assert(equal(chunks, [[1], [2], [3], [], []]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
A fixed-sized sliding window iteration
|
A fixed-sized sliding window iteration
|
||||||
of size `windowSize` over a `source` range by a custom `stepSize`.
|
of size `windowSize` over a `source` range by a custom `stepSize`.
|
||||||
|
|
||||||
|
@ -7438,6 +7440,8 @@ Returns: Range of all sliding windows with propagated bi-directionality,
|
||||||
|
|
||||||
See_Also: $(LREF chunks)
|
See_Also: $(LREF chunks)
|
||||||
*/
|
*/
|
||||||
|
// Explicitly set to private to delay the release until 2.076
|
||||||
|
private
|
||||||
auto slide(Flag!"withFewerElements" f = Yes.withFewerElements,
|
auto slide(Flag!"withFewerElements" f = Yes.withFewerElements,
|
||||||
Source)(Source source, size_t windowSize, size_t stepSize = 1)
|
Source)(Source source, size_t windowSize, size_t stepSize = 1)
|
||||||
if (isForwardRange!Source)
|
if (isForwardRange!Source)
|
||||||
|
@ -7812,7 +7816,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
//
|
||||||
@safe pure nothrow unittest
|
@safe pure nothrow unittest
|
||||||
{
|
{
|
||||||
import std.algorithm.comparison : equal;
|
import std.algorithm.comparison : equal;
|
||||||
|
@ -7844,7 +7848,7 @@ public:
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// count k-mers
|
// count k-mers
|
||||||
@safe pure nothrow unittest
|
@safe pure nothrow unittest
|
||||||
{
|
{
|
||||||
import std.algorithm.comparison : equal;
|
import std.algorithm.comparison : equal;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue