#include #include #include TEST(randperm, default_rng_reproduce_identity) { int n = 100; Eigen::VectorXi I1, I2; std::srand(6); igl::randperm(100, I1); std::srand(6); igl::randperm(100, I2); test_common::assert_eq(I1, I2); } namespace randperm { template void test_reproduce() { int n = 100; Eigen::VectorXi I1, I2; URBG rng1(6); URBG rng2(6); igl::randperm(100, I1, rng1); igl::randperm(100, I2, rng2); test_common::assert_eq(I1, I2); } } TEST(randperm, minstd_rand0_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, minstd_rand_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, mt19937_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, mt19937_64_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, ranlux24_base_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, ranlux48_base_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, ranlux24_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, ranlux48_reproduce_identity) { randperm::test_reproduce(); } TEST(randperm, knuth_b_reproduce_identity) { randperm::test_reproduce(); }