diff options
Diffstat (limited to 'libcxx/test/std/numerics/rand/rand.util')
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), ""); +} |