Wolfgang Thallergcc 15.1.0ada185d1 year agoHistory
116 lines · 2.5 KB · D
RawDownload
/**For testing only.Contains tests related to member privacy that cannot be verified insidestd.range itself.*/module std.internal.test.range; // Note: currently can't be @safe because RefCounted, which is used by chunks,// isn't.@system /*@safe*/ unittest{    import std.algorithm.comparison : equal;    import std.range : chunks;     struct R    {        int state = 0;        @property bool empty() { return state >= 5; }        @property int front() { return state; }        void popFront() { state++; }    }     auto r = R().chunks(3);    assert(r.equal!equal([[ 0, 1, 2 ], [ 3, 4 ]]));} // https://issues.dlang.org/show_bug.cgi?id=24415@safe unittest{    import std.range : only;     static struct S(T)    {        T i;         this(ref return scope inout(S) rhs) scope @safe inout pure nothrow        {            i = rhs.i;        }    }    {        auto a = only(S!int(42));        auto b = a;        assert(!b.empty);        assert(b.front == S!int(42));         a.popFront();        auto c = a;        assert(c.empty);    }    {        auto a = only(S!(const int)(42));        auto b = a;        assert(!b.empty);        assert(b.front == S!(const int)(42));         a.popFront();        auto c = a;        assert(c.empty);    }    {        auto a = only(S!(immutable int)(42));        auto b = a;        assert(!b.empty);        assert(b.front == S!(immutable int)(42));         a.popFront();        auto c = a;        assert(c.empty);    }    {        auto a = only(S!int(42), S!int(192));        auto b = a;        assert(!b.empty);        assert(b.front == S!int(42));         a.popFront();        auto c = a;        assert(!c.empty);        assert(c.front == S!int(192));         a.popFront();        auto d = a;        assert(d.empty);    }    {        auto a = only(S!(const int)(42), S!(const int)(192));        auto b = a;        assert(!b.empty);        assert(b.front == S!(const int)(42));         a.popFront();        auto c = a;        assert(!c.empty);        assert(c.front == S!(const int)(192));         a.popFront();        auto d = a;        assert(d.empty);    }    {        auto a = only(S!(immutable int)(42), S!(immutable int)(192));        auto b = a;        assert(!b.empty);        assert(b.front == S!(immutable int)(42));         a.popFront();        auto c = a;        assert(!c.empty);        assert(c.front == S!(immutable int)(192));         a.popFront();        auto d = a;        assert(d.empty);    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t