1 // { dg-do run { target c++11 } } 2 // { dg-require-cstdint "" } 3 // 4 // 2008-12-03 Edward M. Smith-Rowland <3dw4rd@verizon.net> 5 // 6 // Copyright (C) 2008-2018 Free Software Foundation, Inc. 7 // 8 // This file is part of the GNU ISO C++ Library. This library is free 9 // software; you can redistribute it and/or modify it under the 10 // terms of the GNU General Public License as published by the 11 // Free Software Foundation; either version 3, or (at your option) 12 // any later version. 13 // 14 // This library is distributed in the hope that it will be useful, 15 // but WITHOUT ANY WARRANTY; without even the implied warranty of 16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 // GNU General Public License for more details. 18 // 19 // You should have received a copy of the GNU General Public License along 20 // with this library; see the file COPYING3. If not see 21 // <http://www.gnu.org/licenses/>. 22 23 // 26.4.8.5.1 Class template discrete_distribution [rand.dist.samp.discrete] 24 // 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist] 25 26 #include <random> 27 #include <testsuite_hooks.h> 28 29 void test01()30test01() 31 { 32 std::vector<double> wt = {0.5, 1.0, 2.5, 1.5, 0.5}; 33 std::discrete_distribution<> u(wt.begin(), wt.end()); 34 std::vector<double> probablility = u.probabilities(); 35 VERIFY( probablility.size() == 5 ); 36 VERIFY( probablility[0] == 0.5 / 6.0 ); 37 VERIFY( probablility[2] == 2.5 / 6.0 ); 38 } 39 main()40int main() 41 { 42 test01(); 43 return 0; 44 } 45