Created
March 16, 2023 01:36
-
-
Save andanteyk/013739dde1669162ff30200b1ab96879 to your computer and use it in GitHub Desktop.
LXM PRNG test vectors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.VisualStudio.TestTools.UnitTesting; | |
using RngLab.Rng.Generators; | |
using System.Linq; | |
namespace RngLab.UnitTest.Generators; | |
[TestClass] | |
public class LxmTest | |
{ | |
[TestMethod] | |
public void L32X64Mix() | |
{ | |
var rng = new L32X64Mix(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0x2a162bd60afba596, | |
0x4873895bf8b54e56, | |
0xd225cfec3c126b35, | |
0x8bc32086f289f5a4, | |
0xbbe0056312cff6a0, | |
0xc32ef05041339f62, | |
0xcd4f913053887271, | |
0x6c30b015c88f1f4d, | |
0x7bd9cafc4be9f6e4, | |
0x0aea8995ca88e3d2, | |
0xe1ee0b19855a0283, | |
0xe337795ec8646825, | |
0x0ab47580611f54a1, | |
0xa8e41ab2e6f6d472, | |
0x7887ea83d998f697, | |
0xb0a29bbf97583d62, | |
0x6bef7e4791d52713, | |
0x8f074fcc4bb49f17, | |
0xf071b84777c0baeb, | |
0x818d7a97e614e96b, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
[TestMethod] | |
public void L64X128StarStar() | |
{ | |
var rng = new L64X128StarStar(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0x9360c5e0b424dcb1, | |
0x6b3b9fa3ba05ac32, | |
0x8db81a115e97f8f5, | |
0x6c9325490d43eca5, | |
0xd69cb502803698e9, | |
0x642d6430a3e99611, | |
0xab20fbc1fc2b1ca2, | |
0x34384b3fb750d9c5, | |
0xf4b25692d649eec8, | |
0x11e97110bfb3724d, | |
0x7b667cb30bc5666d, | |
0x427cc8f07b7e24e7, | |
0xfed5b272d9908b36, | |
0xdc1718fe00788828, | |
0x08ff70f1ab30b82c, | |
0xb3c4239f9fcbb99a, | |
0x37a00cbd08be7967, | |
0x6d0082abed9644a8, | |
0xef0a648c01638104, | |
0x2573eef7f308cf14, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
[TestMethod] | |
public void L64X128Mix() | |
{ | |
var rng = new L64X128Mix(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0xb2482ded0ba7ac12, | |
0xabc6a30a803e9910, | |
0xb52050e95869e138, | |
0xd0bb322ded7531ec, | |
0x882b4c1e1da17c8a, | |
0x1c59ac3fd001527e, | |
0x8a34cb2e8f0c35cf, | |
0xe557452feb44d812, | |
0x2a10676878351b11, | |
0xfa4919641f499dd4, | |
0x2bfdd7a1879ce27a, | |
0xe116dbfe0de7c847, | |
0x52873f5d9ff5c03c, | |
0xa389183105007524, | |
0xeb3db2882678cefd, | |
0xfbd1718c64e1047c, | |
0xa03b4214224aa416, | |
0x8f3e51879bc7f10b, | |
0xf9fe583aa0f722cb, | |
0xb5d7a44c708beb63, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
[TestMethod] | |
public void L64X256Mix() | |
{ | |
var rng = new L64X256Mix(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0xb2482ded0ba7ac12, | |
0xc316ee8cfd72e9cc, | |
0x7e7e6ffec1d2f289, | |
0xe37240b563aaaa71, | |
0x952d861ef8dd204a, | |
0xed9a06a32108e7a3, | |
0xafaa1f627e0f8d59, | |
0x71f6218656a6d81f, | |
0xf47f016f6c319422, | |
0x502db5e9608385d1, | |
0x2a4264893fa9530e, | |
0x33c194c541425485, | |
0x6d73caba3b229481, | |
0xa6074842aef4ef4c, | |
0x1aa0432531fe78bc, | |
0xe017e306ff38b590, | |
0x0463f47cfd5eed6d, | |
0xb0b375e6cc99590c, | |
0xe3261fa06d6a084e, | |
0xcb1dad0338f31470, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
[TestMethod] | |
public void L64X1024Mix() | |
{ | |
var rng = new L64X1024Mix(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0xb2482ded0ba7ac12, | |
0xc0fe7b0a5cc7a49d, | |
0x7fe43bff36afdf31, | |
0xc220f444fabdcd1c, | |
0x5d7472f4bf9df9f9, | |
0x25cc529168c5d527, | |
0xe3e399f395ee0fe8, | |
0xb9faf3cf89b5de55, | |
0x829e424a22e0bc28, | |
0x36573f974a49efea, | |
0xe36b3fc838f8da88, | |
0xbc33705275ac8c34, | |
0xce891d413749ba3a, | |
0xb70531d89c9c4d0b, | |
0x90ce9371d470a501, | |
0x38ce9c6a16c5d932, | |
0xb1d8dd41aef136e5, | |
0xed4410e3bbb6b95c, | |
0x782d4b61ca091e94, | |
0x461c54dfedecc89a, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
[TestMethod] | |
public void L128X128Mix() | |
{ | |
var rng = new L128X128Mix(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0x30b8341f3b1ed3cb, | |
0xf1c0d98bdfab3d05, | |
0x7623be27e6460d11, | |
0x8a5bdc9126baf706, | |
0x5ac5e43c5939bfa4, | |
0xac0a4d34489b9faf, | |
0x9e875864fd8d795b, | |
0x13f8fffe6ae374fb, | |
0x73267a4be1597734, | |
0x461bba2dca20f2c2, | |
0x97cc1074f77e99a5, | |
0xf9f5a13b63ef2b74, | |
0x410616bd63d1aa8e, | |
0x64778b7209fa1fd6, | |
0x305e02e3cd2e0020, | |
0x710ee020b51ac835, | |
0xa6e87d668e8fa5d2, | |
0xd75ac6167122929c, | |
0x5ba3c87d062260f9, | |
0x5c5837cfa219abd8, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
[TestMethod] | |
public void L128X256Mix() | |
{ | |
var rng = new L128X256Mix(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0x30b8341f3b1ed3cb, | |
0xf47c4ab5743b9050, | |
0xc1bbf18c2f46ec1f, | |
0x22846b804f5134ba, | |
0x653c549192331ef8, | |
0x766be9ac7c0d0b88, | |
0x020540760bae4cc0, | |
0x8ee2b43a54e7e276, | |
0x96547c2c7ff99b6c, | |
0x5446b0e94de7790f, | |
0x4a84b974968ed649, | |
0x0ebf3c220e2b2d15, | |
0x1e98cabba772bd72, | |
0xbe8d24234099f099, | |
0x5b122dbcba6119a1, | |
0xfd98ce00fa26847e, | |
0x1ee1d2cfd94c3bd7, | |
0x81ff11e80158323f, | |
0x82c5dede44f94c37, | |
0xe5c530c49f4259cb, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
[TestMethod] | |
public void L128X1024Mix() | |
{ | |
var rng = new L128X1024Mix(42); | |
CollectionAssert.AreEqual(new ulong[] { | |
0x30b8341f3b1ed3cb, | |
0x8fedbf228b3e0151, | |
0x9f6d20712bc587f6, | |
0x9346e839c9262ff3, | |
0xba933e21237f9cd9, | |
0xabe79fb97394b63e, | |
0xb0f602561e0e5019, | |
0x1e025a48de83bb0c, | |
0x98385ce94c95ecb9, | |
0xc74e0b43ed5a5cbf, | |
0xcceec49b825e78f3, | |
0xd9480915eec20097, | |
0x0918c2106f4a08c3, | |
0x2ec1276613f2aac5, | |
0x9e5ee8b96eceb632, | |
0x0c179cb66f81ca89, | |
0x4c484e63c14e542c, | |
0x851054003d953589, | |
0x85bc94f4f889520f, | |
0x9beda0c217a7a701, | |
}, Enumerable.Range(0, 20).Select(_ => rng.Next()).ToArray()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment