1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant// The LLVM Compiler Infrastructure 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// <random> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// template<class Engine, size_t k> 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// class shuffle_order_engine 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// explicit shuffle_order_engine(result_type s = default_seed); 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <random> 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <sstream> 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <cassert> 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantvoid 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnanttest1() 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const char* a = "1771550148 168070 677268843 1194115201 1259501992 " 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "703671065 407145426 1010275440 1693606898 1702877348 745024267 " 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1793193459 416963415 664975744 742430420 1148079870 637806795 " 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1527921388 165317290 1791337459 1435426120 375508442 1863429808 " 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1910758855 653618747 991426424 578291095 1974930990 1157900898 " 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "343583572 25567821 221638147 1335692731 1341167826 1019292670 " 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "774852571 606325389 700907908 1211405961 1955012967 1403137269 " 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1010152376 1772753897 486628401 1145807831 1106352968 1560917450 " 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "679350398 1819071734 1561434646 781928982 1427964481 1669276942 " 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "811199786 1608612146 1272705739 1428231253 1857946652 2097152784 " 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "197742477 1300609030 99924397 97128425 349867255 408729299 1860625187 " 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "2018133942 1420442476 1948474080 1025729457 1583749330 15184745 " 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1806938869 1655319056 296727307 638820415 1383963552 880037807 " 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1075545360 1321008721 1507631161 597371974 544717293 340756290 " 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1899563128 1465595994 634440068 777915521 545718511 2135841687 " 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1902073804 712854586 135760289 1095544109 285050585 1956649285 " 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "987446484 259432572 891434194 1488577086 330596852 801096775 " 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1458514382 1872871416 1682074633 1153627723 1538775345 51662594 " 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "709823970 739804705 2114844452 1188863267 1037076781 1172179215 " 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1948572574 533634468 902793804 1283497773 273836696 315894151 " 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "653420473 1954002600 1601768276 64415940 306945492 577163950 " 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "210874151 813838307 857078006 1737226413 376658679 1868110244 " 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1117951768 1080937173 1746896638 1842856729 1883887269 2141922362 " 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1020763473 1872318475 978729834 1935067665 1189895487 1205729145 " 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1034046923 1788963337 188263312 898072753 1393688555 1119406056 " 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1900835472 1375045132 1312008157 559007303 2142269543 413383599 " 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "628550348 573639243 1100665718 464587168 65992084 1027393936 " 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1641360472 1918007189 69800406 609352380 35938117 569027612 902394793 " 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1019770837 221470752 669768613 1839284764 1979413630 1335703733 " 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1526078440 1403144959 1139398206 753967943 1785700701 1187714882 " 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1063522909 1123137582 192083544 680202567 1109090588 327456556 " 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1709233078 191596027 1076438936 1306955024 1530346852 127901445 " 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "8455468 377129974 1199230721 1336700752 1103107597 703058228 " 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "844612202 530372344 1910850558 47387421 1871435357 1168551137 " 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1101007744 1918050856 803711675 309982095 73743043 301259382 " 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1647477295 1644236294 859823662 638826571 1487427444 335916581 " 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "15468904 140348241 895842081 410006250 1847504174 536600445 " 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1359845362 1400027760 288242141 1910039802 1453396858 1761991428 " 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "2137921913 357210187 1414819544 1933136424 943782705 841706193 " 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1081202962 1919045067 333546776 988345562 337850989 314809455 " 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1750287624 853099962 1450233962 142805884 1399258689 247367726 " 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "2128513937 1151147433 654730608 351121428 12778440 18876380 " 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant "1575222551 587014441 411835569 380613902 1771550148"; 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::knuth_b e1(10); 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::ostringstream os; 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant os << e1; 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(os.str() == a); 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantint main() 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test1(); 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 77