summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/numerics/rand/rand.util
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/numerics/rand/rand.util')
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/nothing_to_do.pass.cpp12
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp100
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/assign.fail.cpp23
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/copy.fail.cpp22
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/default.pass.cpp23
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/generate.pass.cpp805
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/initializer_list.pass.cpp33
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/iterator.pass.cpp32
-rw-r--r--libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/types.pass.cpp24
9 files changed, 1074 insertions, 0 deletions
diff --git a/libcxx/test/std/numerics/rand/rand.util/nothing_to_do.pass.cpp b/libcxx/test/std/numerics/rand/rand.util/nothing_to_do.pass.cpp
new file mode 100644
index 00000000000..b58f5c55b64
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/nothing_to_do.pass.cpp
@@ -0,0 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+int main()
+{
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
new file mode 100644
index 00000000000..7433e28e493
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
@@ -0,0 +1,100 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// template<class RealType, size_t bits, class URNG>
+// RealType generate_canonical(URNG& g);
+
+#include <random>
+#include <cassert>
+
+int main()
+{
+ {
+ typedef std::minstd_rand0 E;
+ typedef float F;
+ E r;
+ F f = std::generate_canonical<F, 0>(r);
+ assert(f == (16807 - E::min()) / (E::max() - E::min() + F(1)));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef float F;
+ E r;
+ F f = std::generate_canonical<F, 1>(r);
+ assert(f == (16807 - E::min()) / (E::max() - E::min() + F(1)));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef float F;
+ E r;
+ F f = std::generate_canonical<F, std::numeric_limits<F>::digits - 1>(r);
+ assert(f == (16807 - E::min()) / (E::max() - E::min() + F(1)));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef float F;
+ E r;
+ F f = std::generate_canonical<F, std::numeric_limits<F>::digits>(r);
+ assert(f == (16807 - E::min()) / (E::max() - E::min() + F(1)));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef float F;
+ E r;
+ F f = std::generate_canonical<F, std::numeric_limits<F>::digits + 1>(r);
+ assert(f == (16807 - E::min()) / (E::max() - E::min() + F(1)));
+ }
+
+ {
+ typedef std::minstd_rand0 E;
+ typedef double F;
+ E r;
+ F f = std::generate_canonical<F, 0>(r);
+ assert(f == (16807 - E::min()) / (E::max() - E::min() + F(1)));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef double F;
+ E r;
+ F f = std::generate_canonical<F, 1>(r);
+ assert(f == (16807 - E::min()) / (E::max() - E::min() + F(1)));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef double F;
+ E r;
+ F f = std::generate_canonical<F, std::numeric_limits<F>::digits - 1>(r);
+ assert(f ==
+ (16807 - E::min() +
+ (282475249 - E::min()) * (E::max() - E::min() + F(1))) /
+ ((E::max() - E::min() + F(1)) * (E::max() - E::min() + F(1))));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef double F;
+ E r;
+ F f = std::generate_canonical<F, std::numeric_limits<F>::digits>(r);
+ assert(f ==
+ (16807 - E::min() +
+ (282475249 - E::min()) * (E::max() - E::min() + F(1))) /
+ ((E::max() - E::min() + F(1)) * (E::max() - E::min() + F(1))));
+ }
+ {
+ typedef std::minstd_rand0 E;
+ typedef double F;
+ E r;
+ F f = std::generate_canonical<F, std::numeric_limits<F>::digits + 1>(r);
+ assert(f ==
+ (16807 - E::min() +
+ (282475249 - E::min()) * (E::max() - E::min() + F(1))) /
+ ((E::max() - E::min() + F(1)) * (E::max() - E::min() + F(1))));
+ }
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/assign.fail.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/assign.fail.cpp
new file mode 100644
index 00000000000..6b5d75042d3
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/assign.fail.cpp
@@ -0,0 +1,23 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// class seed_seq;
+
+// seed_seq();
+
+#include <random>
+
+int main()
+{
+ std::seed_seq s0;
+ std::seed_seq s;
+ s = s0;
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/copy.fail.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/copy.fail.cpp
new file mode 100644
index 00000000000..cf260fcc01e
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/copy.fail.cpp
@@ -0,0 +1,22 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// class seed_seq;
+
+// seed_seq();
+
+#include <random>
+
+int main()
+{
+ std::seed_seq s0;
+ std::seed_seq s(s0);
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/default.pass.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/default.pass.cpp
new file mode 100644
index 00000000000..bf4210aa995
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/default.pass.cpp
@@ -0,0 +1,23 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// class seed_seq;
+
+// seed_seq();
+
+#include <random>
+#include <cassert>
+
+int main()
+{
+ std::seed_seq s;
+ assert(s.size() == 0);
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/generate.pass.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/generate.pass.cpp
new file mode 100644
index 00000000000..9712f61d681
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/generate.pass.cpp
@@ -0,0 +1,805 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// class seed_seq;
+
+// template<class RandomAccessIterator>
+// void generate(RandomAccessIterator begin, RandomAccessIterator end);
+
+#include <random>
+#include <cassert>
+
+int main()
+{
+ {
+ // These numbers generated from a slightly altered version of dSFMT
+ // http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html
+ unsigned a[] =
+ {
+ 509928861u,
+ 482551238u,
+ 141770655u,
+ 3445468037u,
+ 1614807826u,
+ 3110698871u,
+ 809182926u,
+ 2644632325u,
+ 3885131857u,
+ 1278630374u,
+ 3648975313u,
+ 1217833759u,
+ 1509686260u,
+ 2817190507u,
+ 134525747u,
+ 250267852u,
+ 2559105345u,
+ 2416641579u,
+ 426100435u,
+ 486929906u,
+ 241178241u,
+ 3531539379u,
+ 704692991u,
+ 3001633456u,
+ 3990516671u,
+ 2619782509u,
+ 588842726u,
+ 2871949673u,
+ 621390331u,
+ 2304055997u,
+ 3809702625u,
+ 2471383485u,
+ 1630735687u,
+ 2167939898u,
+ 2070992669u,
+ 2826890739u,
+ 1714346061u,
+ 1912761420u,
+ 539780511u,
+ 716119356u,
+ 1342493369u,
+ 1216009367u,
+ 2864243850u,
+ 36288867u,
+ 2981095630u,
+ 2480586007u,
+ 1287539180u,
+ 1804977887u,
+ 2219960896u,
+ 297158412u,
+ 2839013626u,
+ 1971706101u,
+ 3588181149u,
+ 1387242816u,
+ 3713499635u,
+ 3408234160u,
+ 3179393218u,
+ 1359207226u,
+ 3119279997u,
+ 2777679329u,
+ 125221793u,
+ 902631799u,
+ 949389096u,
+ 3415339313u,
+ 4117407143u,
+ 3119227103u,
+ 1787026946u,
+ 3917387257u,
+ 3936044384u,
+ 2242085379u,
+ 1140709958u,
+ 2523265662u,
+ 3627073995u,
+ 3604398568u,
+ 1427913954u,
+ 2465898599u,
+ 3825653050u,
+ 2090876078u,
+ 232270946u,
+ 3116274782u,
+ 1252172657u,
+ 3197497894u,
+ 3983224490u,
+ 1939344836u,
+ 4158531887u,
+ 88050086u,
+ 2343094701u,
+ 1067025562u,
+ 3321491106u,
+ 3772162169u,
+ 909332669u,
+ 1671671873u,
+ 755193996u,
+ 978524521u,
+ 2164582730u,
+ 1757783103u,
+ 3411415001u,
+ 850017018u,
+ 3068762300u,
+ 555996984u,
+ 2404040146u,
+ 3397007611u,
+ 237680219u,
+ 245818821u,
+ 177824968u,
+ 3220945682u,
+ 304446762u,
+ 2267298065u,
+ 1878973555u,
+ 3050739800u,
+ 535731508u,
+ 1160102565u,
+ 4109066907u,
+ 984269821u,
+ 3681788896u,
+ 60254699u,
+ 3890962421u,
+ 2991673698u,
+ 3982271427u,
+ 3514243671u,
+ 1234870914u,
+ 2069958363u,
+ 3867828422u,
+ 1847469687u,
+ 503598128u,
+ 967934988u,
+ 289386211u,
+ 393279961u,
+ 835485527u,
+ 3708682854u,
+ 965218590u,
+ 4020339834u,
+ 2159101708u,
+ 2575134771u,
+ 376656690u,
+ 3499375240u,
+ 3105954900u,
+ 2786692328u,
+ 3458480699u,
+ 1207173847u,
+ 2051152535u,
+ 2738812911u,
+ 2954646330u,
+ 2774866710u,
+ 2162149150u,
+ 3993372257u,
+ 2868120585u,
+ 3086420190u,
+ 3791115537u,
+ 3226697711u,
+ 1818303409u,
+ 4206013897u,
+ 1245186807u,
+ 1680347447u,
+ 684800149u,
+ 2372078492u,
+ 2566952562u,
+ 3310947940u,
+ 3885964747u,
+ 3270357885u,
+ 2098965232u,
+ 609044652u,
+ 434910954u,
+ 93043847u,
+ 805217072u,
+ 883298424u,
+ 3850995479u,
+ 1840717689u,
+ 124278163u,
+ 4250050101u,
+ 2337070911u,
+ 2576763405u,
+ 2518189119u,
+ 3059082421u,
+ 1532107996u,
+ 2920167825u,
+ 2726963926u,
+ 3951524890u,
+ 1272835728u,
+ 1039392592u,
+ 1237920408u,
+ 1996153268u,
+ 647883626u,
+ 4064365193u,
+ 355588474u,
+ 3625797533u,
+ 1209959194u,
+ 503163662u,
+ 530295589u,
+ 1668578780u,
+ 969028048u,
+ 2489337768u,
+ 841218738u,
+ 14126306u,
+ 1854884627u,
+ 3617055808u,
+ 202224793u,
+ 1744552899u,
+ 1559016256u,
+ 3455976027u,
+ 1064269942u,
+ 2990703287u,
+ 1169718685u,
+ 1411804743u,
+ 290849805u,
+ 756035681u,
+ 1505272475u,
+ 1426658932u,
+ 16045749u,
+ 3900455443u,
+ 108521850u,
+ 1009491914u,
+ 3928801938u,
+ 1022079325u,
+ 3076867150u,
+ 4268343543u,
+ 2886814247u,
+ 2005055376u,
+ 1649037732u,
+ 1954533894u,
+ 3779223482u,
+ 1093746989u,
+ 2376482601u,
+ 3561720470u,
+ 1870836501u,
+ 651953759u,
+ 1504660027u,
+ 2097900540u,
+ 2252668945u,
+ 2469849023u,
+ 1986217648u,
+ 2026387757u,
+ 131611273u,
+ 1467981299u,
+ 3440588252u,
+ 1916199579u,
+ 959039804u,
+ 2895114746u,
+ 3292235117u,
+ 649379239u,
+ 28649189u,
+ 3121113086u,
+ 3829761771u,
+ 1675837301u,
+ 1636154723u,
+ 3737794169u,
+ 4082428060u,
+ 1904712095u,
+ 2483810990u,
+ 979972563u,
+ 1269082707u,
+ 370986843u,
+ 1233170438u,
+ 3008501783u,
+ 3905837878u,
+ 1566704758u,
+ 2380919351u,
+ 159980022u,
+ 1334100319u,
+ 2492554074u,
+ 137995234u,
+ 2318192908u,
+ 2608964837u,
+ 1061756617u,
+ 2760140790u,
+ 4069446576u,
+ 1995030350u,
+ 1037005594u,
+ 3489306635u,
+ 1588786838u,
+ 513304862u,
+ 3305490303u,
+ 2264317975u,
+ 3441620307u,
+ 4116970950u,
+ 3121104936u,
+ 1889858928u,
+ 2336693483u,
+ 3906421686u,
+ 2112501080u,
+ 2916376262u,
+ 2244436629u,
+ 663123276u,
+ 774309763u,
+ 258379821u,
+ 3845948150u,
+ 3747409682u,
+ 275936617u,
+ 563064995u,
+ 4049677403u,
+ 2099547498u,
+ 699768412u,
+ 1193153383u,
+ 4289059706u,
+ 3228950241u,
+ 1258043728u,
+ 1334659727u,
+ 3780523664u,
+ 1150773584u,
+ 2509712235u,
+ 2088544320u,
+ 1610096547u,
+ 3486280247u,
+ 1737969289u,
+ 1530372860u,
+ 2563496419u,
+ 2535243890u,
+ 998106254u,
+ 816066803u,
+ 1138534811u,
+ 1405672211u,
+ 2094652173u,
+ 1516292650u,
+ 2618233360u,
+ 3603340340u,
+ 247950637u,
+ 119238855u,
+ 1858201484u,
+ 3459729922u,
+ 157759693u,
+ 8278624u,
+ 3223944237u,
+ 3937209237u,
+ 3820737454u,
+ 839194830u,
+ 2385155004u,
+ 3872251779u,
+ 1375779033u,
+ 2333521764u,
+ 4025446588u,
+ 3839106064u,
+ 374878047u,
+ 1312756310u,
+ 1661068116u,
+ 1321601295u,
+ 4254646350u,
+ 3813168945u,
+ 134103711u,
+ 1535586498u,
+ 82369644u,
+ 411323516u,
+ 761969086u,
+ 819179215u,
+ 582595825u,
+ 3212591411u,
+ 665647256u,
+ 2372804634u,
+ 2378814089u,
+ 801724318u,
+ 658137482u,
+ 2084329677u,
+ 2512952888u,
+ 1573871611u,
+ 570440739u,
+ 3791634131u,
+ 1754412850u,
+ 406040873u,
+ 2576963615u,
+ 535767962u,
+ 1405150444u,
+ 3050488583u,
+ 3870648463u,
+ 2201665400u,
+ 178518008u,
+ 1050761986u,
+ 1635790851u,
+ 2757604743u,
+ 1194306620u,
+ 3895813535u,
+ 259506203u,
+ 1836108753u,
+ 555242075u,
+ 2574778399u,
+ 777988603u,
+ 2306149504u,
+ 2810362568u,
+ 402408487u,
+ 2163697780u,
+ 1982851065u,
+ 153191404u,
+ 1346605886u,
+ 197579289u,
+ 3847665347u,
+ 2437615293u,
+ 819252195u,
+ 3379927756u,
+ 1375088563u,
+ 2650550959u,
+ 2949512074u,
+ 3616578300u,
+ 1616680753u,
+ 1943918335u,
+ 2372676669u,
+ 599487215u,
+ 2422499758u,
+ 3164569986u,
+ 594265585u,
+ 667867933u,
+ 2382753501u,
+ 1213715652u,
+ 1470661916u,
+ 566771851u,
+ 463440918u,
+ 3056034602u,
+ 4101174909u,
+ 130576467u,
+ 2390765932u,
+ 1878895359u,
+ 2047260663u,
+ 3236801323u,
+ 1417182786u,
+ 2650291174u,
+ 541535507u,
+ 2050658788u,
+ 1497955566u,
+ 2322165653u,
+ 2177087336u,
+ 1286897331u,
+ 1168276780u,
+ 2296212785u,
+ 865258239u,
+ 1996766009u,
+ 2012854679u,
+ 1601388981u,
+ 2613134235u,
+ 1657591526u,
+ 2928355430u,
+ 3608354462u,
+ 744304148u,
+ 4205438799u,
+ 3436255438u,
+ 2852837451u,
+ 3546154475u,
+ 2198801660u,
+ 2941229067u,
+ 1725744406u,
+ 1576016233u,
+ 326273484u,
+ 3350602572u,
+ 2525026956u,
+ 529269391u,
+ 742537386u,
+ 966948684u,
+ 4207482684u,
+ 1647708147u,
+ 772473614u,
+ 4100132656u,
+ 2071821864u,
+ 1304991378u,
+ 2104686786u,
+ 494532571u,
+ 1596637043u,
+ 3530310572u,
+ 3844404338u,
+ 311529967u,
+ 2146085784u,
+ 1023590767u,
+ 3264294551u,
+ 1868912500u,
+ 1616049700u,
+ 4044971489u,
+ 226083499u,
+ 2644402452u,
+ 671262u,
+ 3856282165u,
+ 2788249556u,
+ 2975877350u,
+ 3022011519u,
+ 482463024u,
+ 3197313892u,
+ 2458947070u,
+ 213085732u,
+ 3423982376u,
+ 1127434251u,
+ 3003351323u,
+ 3859782824u,
+ 1452447943u,
+ 1377205388u,
+ 294467710u,
+ 4017757977u,
+ 4176004933u,
+ 1973840971u,
+ 1057204069u,
+ 2631053578u,
+ 1518315828u,
+ 1733084351u,
+ 2897935365u,
+ 371135589u,
+ 2166429075u,
+ 1316999184u,
+ 917942378u,
+ 4234919037u,
+ 3994887147u,
+ 202839671u,
+ 2611806597u,
+ 1763402132u,
+ 2528354843u,
+ 2928374144u,
+ 4287461088u,
+ 3374274817u,
+ 2515840515u,
+ 1174711579u,
+ 1526125414u,
+ 1328334421u,
+ 1467789564u,
+ 746112865u,
+ 2522923249u,
+ 2846786366u,
+ 785624778u,
+ 3640382502u,
+ 699425627u,
+ 2333340032u,
+ 879149811u,
+ 1012137370u,
+ 3671295088u,
+ 1115225691u,
+ 2008076767u,
+ 3224593008u,
+ 409074767u,
+ 3405081375u,
+ 1732184447u,
+ 4131742042u,
+ 2887579728u,
+ 411122719u,
+ 49575303u,
+ 2452487329u,
+ 132404436u,
+ 2634269867u,
+ 628865612u,
+ 2089064207u,
+ 3493619675u,
+ 573570698u,
+ 2803401952u,
+ 1846326706u,
+ 2776480783u,
+ 3202282367u,
+ 161406647u,
+ 555882857u,
+ 3002347158u,
+ 3646590134u,
+ 3970439001u,
+ 3593229755u,
+ 589030935u,
+ 1156189491u,
+ 4233262968u,
+ 1884160487u,
+ 1538393768u,
+ 2259575756u,
+ 1419917258u,
+ 658738179u,
+ 2762821193u,
+ 3753817926u,
+ 760570680u,
+ 900223123u,
+ 3199204483u,
+ 3152387802u,
+ 3518662321u,
+ 1138026800u,
+ 4166103824u,
+ 4256962887u,
+ 3860671603u,
+ 2476911454u,
+ 336216996u,
+ 708885235u,
+ 725397672u,
+ 1803116762u,
+ 2785555576u,
+ 101740015u,
+ 4078718445u,
+ 1955237214u,
+ 9650972u,
+ 449296169u,
+ 584729435u,
+ 3295180521u,
+ 589654348u,
+ 4256205129u,
+ 3872811168u,
+ 1159848257u,
+ 3914402308u,
+ 739056677u,
+ 2654817235u,
+ 2975781832u,
+ 2945335776u,
+ 2792662538u,
+ 4124362519u,
+ 1578034244u,
+ 347127450u,
+ 818851140u,
+ 2127100315u,
+ 2486499071u,
+ 4198130806u,
+ 1869105609u,
+ 1961961717u,
+ 1651285423u,
+ 376774848u,
+ 2681263019u,
+ 1185959234u,
+ 1674813864u,
+ 32812913u,
+ 3511671436u,
+ 3250344299u,
+ 2961919237u,
+ 722029715u,
+ 3677835234u,
+ 3534013806u,
+ 2896926420u,
+ 2405611392u,
+ 1523923100u,
+ 538451356u,
+ 2872548905u,
+ 3122230170u,
+ 337087364u,
+ 2659340735u,
+ 3849128055u,
+ 556114376u,
+ 1997152544u,
+ 3761450839u,
+ 3143779940u,
+ 3256759779u,
+ 2844565122u,
+ 228442897u,
+ 3589092287u,
+ 786119294u,
+ 4089515771u,
+ 3720982051u,
+ 1236422652u,
+ 2002271241u,
+ 98809947u,
+ 1925281885u,
+ 3856119646u,
+ 3522402037u,
+ 2119723860u,
+ 3500067577u,
+ 3688915105u,
+ 443441159u,
+ 1795715271u,
+ 2772968214u,
+ 921416086u,
+ 4274010930u,
+ 3123194886u,
+ 4156595625u,
+ 2153773382u,
+ 1880645824u,
+ 1783695477u,
+ 2639075904u,
+ 2369609874u,
+ 2020298024u,
+ 3035677150u,
+ 20152938u,
+ 3700162244u,
+ 2301383878u,
+ 704787941u,
+ 1912605772u,
+ 801557569u,
+ 3080244537u,
+ 2116665331u,
+ 2452111071u,
+ 3506260614u,
+ 862540580u,
+ 1275699972u,
+ 66210903u,
+ 106773917u,
+ 3693457478u,
+ 2402783622u,
+ 1239121180u,
+ 676003037u,
+ 2603048829u,
+ 1725001637u,
+ 1220274379u,
+ 24507488u,
+ 903764486u,
+ 4189545897u,
+ 1702746631u,
+ 3218068652u,
+ 3306659191u,
+ 790973134u,
+ 1265526960u,
+ 3431804268u,
+ 3325211765u,
+ 3605213000u,
+ 2877687268u,
+ 2252987926u,
+ 2380945092u,
+ 858624424u,
+ 1002964636u,
+ 1862801950u,
+ 1624111941u,
+ 2506763607u,
+ 760658520u,
+ 2734479345u,
+ 3411969548u,
+ 771362694u,
+ 3655222003u,
+ 2713412965u,
+ 2617767046u,
+ 1779451182u,
+ 3696950253u,
+ 1494085808u,
+ 1423735456u,
+ 800705781u,
+ 3797847307u,
+ 3518984231u,
+ 196474988u,
+ 1813335502u,
+ 2243046583u,
+ 2578707704u,
+ 2592488572u,
+ 4085007200u,
+ 3609770110u,
+ 2731535571u,
+ 3190540952u,
+ 1865257805u,
+ 1804143221u,
+ 3166875197u,
+ 1184225570u,
+ 2013135819u,
+ 3678444101u,
+ 2569887572u,
+ 3559018477u,
+ 3823772506u,
+ 1537738480u,
+ 713705243u,
+ 792081862u,
+ 1581340885u,
+ 3140030205u,
+ 3435723625u,
+ 3093218524u,
+ 3683643763u,
+ 753869336u,
+ 590258834u,
+ 608176704u,
+ 180732483u,
+ 31365344u,
+ 29753898u,
+ 2899243456u,
+ 1020423361u,
+ 152655309u,
+ 3809554076u,
+ 2069071231u,
+ 4000441303u,
+ 3046501174u,
+ 1897816893u,
+ 1610689080u,
+ 2580357110u,
+ 255270539u,
+ 3363490012u,
+ 3711397066u,
+ 3983751767u,
+ 1725231855u,
+ 172296475u,
+ 2179003295u,
+ 660196982u,
+ 526538193u,
+ 2137670317u,
+ 2219075701u,
+ 1987239722u,
+ 856404486u,
+ 2976933454u,
+ 3678014122u,
+ 2713682703u,
+ 3329090001u,
+ 2248358519u,
+ 3254616418u,
+ 1747030903u,
+ 1620566606u,
+ 880370315u,
+ 2337236788u,
+ 2883145755u
+ };
+ const int n = 768;
+ unsigned b[n] = {0};
+ unsigned v[] = {3, 5, 7};
+ const int size = sizeof(v)/sizeof(v[0]);
+ std::seed_seq s(v, v + size);
+ s.generate(b, b + n);
+ for (int i = 0; i < n; ++i)
+ assert(a[i] == b[i]);
+ }
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/initializer_list.pass.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/initializer_list.pass.cpp
new file mode 100644
index 00000000000..d4ee9c14d52
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/initializer_list.pass.cpp
@@ -0,0 +1,33 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// class seed_seq;
+
+// template<class T>
+// seed_seq(initializer_list<T> il);
+
+#include <random>
+#include <cassert>
+
+int main()
+{
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+ std::seed_seq s= {5, 4, 3, 2, 1};
+ assert(s.size() == 5);
+ unsigned b[5] = {0};
+ s.param(b);
+ assert(b[0] == 5);
+ assert(b[1] == 4);
+ assert(b[2] == 3);
+ assert(b[3] == 2);
+ assert(b[4] == 1);
+#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/iterator.pass.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/iterator.pass.cpp
new file mode 100644
index 00000000000..2214dca8aea
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/iterator.pass.cpp
@@ -0,0 +1,32 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// class seed_seq;
+
+// template<class InputIterator>
+// seed_seq(InputIterator begin, InputIterator end);
+
+#include <random>
+#include <cassert>
+
+int main()
+{
+ unsigned a[5] = {5, 4, 3, 2, 1};
+ std::seed_seq s(a, a+5);
+ assert(s.size() == 5);
+ unsigned b[5] = {0};
+ s.param(b);
+ assert(b[0] == 5);
+ assert(b[1] == 4);
+ assert(b[2] == 3);
+ assert(b[3] == 2);
+ assert(b[4] == 1);
+}
diff --git a/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/types.pass.cpp b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/types.pass.cpp
new file mode 100644
index 00000000000..430d9b781d2
--- /dev/null
+++ b/libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/types.pass.cpp
@@ -0,0 +1,24 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <random>
+
+// class seed_seq
+// {
+// public:
+// // types
+// typedef uint_least32_t result_type;
+
+#include <random>
+#include <type_traits>
+
+int main()
+{
+ static_assert((std::is_same<std::seed_seq::result_type, std::uint_least32_t>::value), "");
+}
OpenPOWER on IntegriCloud